Socket
Socket
Sign inDemoInstall

@eth-optimism/contracts-bedrock

Package Overview
Dependencies
Maintainers
2
Versions
213
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@eth-optimism/contracts-bedrock - npm Package Compare versions

Comparing version 0.17.1 to 0.17.2

forge-artifacts/AddressAliasHelper.sol/AddressAliasHelper.0.8.25.json

2

forge-artifacts/AddressAliasHelper.sol/AddressAliasHelper.0.8.15.json

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"674:1058:221:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;674:1058:221;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"674:1058:221:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/vendor/AddressAliasHelper.sol\":\"AddressAliasHelper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/vendor/AddressAliasHelper.sol":"AddressAliasHelper"},"evmVersion":"london","libraries":{}},"sources":{"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/vendor/AddressAliasHelper.sol","id":101646,"exportedSymbols":{"AddressAliasHelper":[101645]},"nodeType":"SourceUnit","src":"649:1084:221","nodes":[{"id":101594,"nodeType":"PragmaDirective","src":"649:23:221","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":101645,"nodeType":"ContractDefinition","src":"674:1058:221","nodes":[{"id":101600,"nodeType":"VariableDeclaration","src":"707:77:221","nodes":[],"constant":true,"mutability":"constant","name":"offset","nameLocation":"724:6:221","scope":101645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":101595,"name":"uint160","nodeType":"ElementaryTypeName","src":"707:7:221","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"value":{"arguments":[{"hexValue":"307831313131303030303030303030303030303030303030303030303030303030303030303031313131","id":101598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"741:42:221","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x1111000000000000000000000000000000001111"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":101597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"733:7:221","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":101596,"name":"uint160","nodeType":"ElementaryTypeName","src":"733:7:221","typeDescriptions":{}}},"id":101599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"733:51:221","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"id":101622,"nodeType":"FunctionDefinition","src":"1072:186:221","nodes":[],"body":{"id":101621,"nodeType":"Block","src":"1159:99:221","nodes":[],"statements":[{"id":101620,"nodeType":"UncheckedBlock","src":"1169:83:221","statements":[{"expression":{"id":101618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":101608,"name":"l2Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101606,"src":"1193:9:221","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":101616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":101613,"name":"l1Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101603,"src":"1221:9:221","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":101612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1213:7:221","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":101611,"name":"uint160","nodeType":"ElementaryTypeName","src":"1213:7:221","typeDescriptions":{}}},"id":101614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1213:18:221","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":101615,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101600,"src":"1234:6:221","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"1213:27:221","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":101610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1205:7:221","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":101609,"name":"address","nodeType":"ElementaryTypeName","src":"1205:7:221","typeDescriptions":{}}},"id":101617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1205:36:221","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1193:48:221","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":101619,"nodeType":"ExpressionStatement","src":"1193:48:221"}]}]},"documentation":{"id":101601,"nodeType":"StructuredDocumentation","src":"791:276:221","text":"@notice Utility function that converts the address in the L1 that submitted a tx to\n the inbox to the msg.sender viewed in the L2\n @param l1Address the address in the L1 that triggered the tx to L2\n @return l2Address L2 address as viewed in msg.sender"},"implemented":true,"kind":"function","modifiers":[],"name":"applyL1ToL2Alias","nameLocation":"1081:16:221","parameters":{"id":101604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101603,"mutability":"mutable","name":"l1Address","nameLocation":"1106:9:221","nodeType":"VariableDeclaration","scope":101622,"src":"1098:17:221","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":101602,"name":"address","nodeType":"ElementaryTypeName","src":"1098:7:221","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1097:19:221"},"returnParameters":{"id":101607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101606,"mutability":"mutable","name":"l2Address","nameLocation":"1148:9:221","nodeType":"VariableDeclaration","scope":101622,"src":"1140:17:221","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":101605,"name":"address","nodeType":"ElementaryTypeName","src":"1140:7:221","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1139:19:221"},"scope":101645,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":101644,"nodeType":"FunctionDefinition","src":"1545:185:221","nodes":[],"body":{"id":101643,"nodeType":"Block","src":"1631:99:221","nodes":[],"statements":[{"id":101642,"nodeType":"UncheckedBlock","src":"1641:83:221","statements":[{"expression":{"id":101640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":101630,"name":"l1Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101628,"src":"1665:9:221","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":101638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":101635,"name":"l2Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101625,"src":"1693:9:221","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":101634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1685:7:221","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":101633,"name":"uint160","nodeType":"ElementaryTypeName","src":"1685:7:221","typeDescriptions":{}}},"id":101636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1685:18:221","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":101637,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101600,"src":"1706:6:221","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"1685:27:221","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":101632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1677:7:221","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":101631,"name":"address","nodeType":"ElementaryTypeName","src":"1677:7:221","typeDescriptions":{}}},"id":101639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1677:36:221","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1665:48:221","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":101641,"nodeType":"ExpressionStatement","src":"1665:48:221"}]}]},"documentation":{"id":101623,"nodeType":"StructuredDocumentation","src":"1264:276:221","text":"@notice Utility function that converts the msg.sender viewed in the L2 to the\n address in the L1 that submitted a tx to the inbox\n @param l2Address L2 address as viewed in msg.sender\n @return l1Address the address in the L1 that triggered the tx to L2"},"implemented":true,"kind":"function","modifiers":[],"name":"undoL1ToL2Alias","nameLocation":"1554:15:221","parameters":{"id":101626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101625,"mutability":"mutable","name":"l2Address","nameLocation":"1578:9:221","nodeType":"VariableDeclaration","scope":101644,"src":"1570:17:221","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":101624,"name":"address","nodeType":"ElementaryTypeName","src":"1570:7:221","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1569:19:221"},"returnParameters":{"id":101629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101628,"mutability":"mutable","name":"l1Address","nameLocation":"1620:9:221","nodeType":"VariableDeclaration","scope":101644,"src":"1612:17:221","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":101627,"name":"address","nodeType":"ElementaryTypeName","src":"1612:7:221","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1611:19:221"},"scope":101645,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"AddressAliasHelper","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[101645],"name":"AddressAliasHelper","nameLocation":"682:18:221","scope":101646,"usedErrors":[]}],"license":"Apache-2.0"},"id":221}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"674:1058:232:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;674:1058:232;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"674:1058:232:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/vendor/AddressAliasHelper.sol\":\"AddressAliasHelper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/vendor/AddressAliasHelper.sol":"AddressAliasHelper"},"evmVersion":"london","libraries":{}},"sources":{"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":232}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"getAddress","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAddress","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddressSet","inputs":[{"name":"name","type":"string","indexed":true,"internalType":"string"},{"name":"newAddress","type":"address","indexed":false,"internalType":"address"},{"name":"oldAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105ef8061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046104fa565b610106565b6100906100da366004610548565b6101d9565b6100746100ed366004610585565b610215565b6100fa6102d1565b6101046000610352565b565b61010e6102d1565b6000610119836103c7565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092559151929350169061017c9085906105a7565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006101e8846103c7565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b61021d6102d1565b73ffffffffffffffffffffffffffffffffffffffff81166102c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ce81610352565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610104576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bc565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016103da91906105a7565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043757600080fd5b813567ffffffffffffffff80821115610452576104526103f7565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610498576104986103f7565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146104f557600080fd5b919050565b6000806040838503121561050d57600080fd5b823567ffffffffffffffff81111561052457600080fd5b61053085828601610426565b92505061053f602084016104d1565b90509250929050565b60006020828403121561055a57600080fd5b813567ffffffffffffffff81111561057157600080fd5b61057d84828501610426565b949350505050565b60006020828403121561059757600080fd5b6105a0826104d1565b9392505050565b6000825160005b818110156105c857602081860181015185830152016105ae565b818111156105d7576000828501525b50919091019291505056fea164736f6c634300080f000a","sourceMap":"508:1576:165:-:0;;;;;;;;;;;;-1:-1:-1;936:32:38;719:10:58;936:18:38;:32::i;:::-;508:1576:165;;2433:187:38;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:38;;;-1:-1:-1;;;;;;2541:17:38;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;508:1576:165:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046104fa565b610106565b6100906100da366004610548565b6101d9565b6100746100ed366004610585565b610215565b6100fa6102d1565b6101046000610352565b565b61010e6102d1565b6000610119836103c7565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092559151929350169061017c9085906105a7565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006101e8846103c7565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b61021d6102d1565b73ffffffffffffffffffffffffffffffffffffffff81166102c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ce81610352565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610104576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bc565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016103da91906105a7565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043757600080fd5b813567ffffffffffffffff80821115610452576104526103f7565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610498576104986103f7565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146104f557600080fd5b919050565b6000806040838503121561050d57600080fd5b823567ffffffffffffffff81111561052457600080fd5b61053085828601610426565b92505061053f602084016104d1565b90509250929050565b60006020828403121561055a57600080fd5b813567ffffffffffffffff81111561057157600080fd5b61057d84828501610426565b949350505050565b60006020828403121561059757600080fd5b6105a0826104d1565b9392505050565b6000825160005b818110156105c857602081860181015185830152016105ae565b818111156105d7576000828501525b50919091019291505056fea164736f6c634300080f000a","sourceMap":"508:1576:165:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:38;;;:::i;:::-;;1201:85;1247:7;1273:6;;;1201:85;;;190:42:334;178:55;;;160:74;;148:2;133:18;1201:85:38;;;;;;;1220:278:165;;;;;;:::i;:::-;;:::i;1682:127::-;;;;;;:::i;:::-;;:::i;2081:198:38:-;;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1220:278:165:-;1094:13:38;:11;:13::i;:::-;1308:16:165::1;1327:19;1340:5;1327:12;:19::i;:::-;1356:18;1377:19:::0;;;:9:::1;:19;::::0;;;;;;;;::::1;1406:30:::0;;::::1;::::0;;::::1;;::::0;;;1452:39;;1308:38;;-1:-1:-1;1377:19:165::1;::::0;1452:39:::1;::::0;1463:5;;1452:39:::1;:::i;:::-;;::::0;;;;;::::1;::::0;;2954:42:334;3023:15;;;3005:34;;3075:15;;3070:2;3055:18;;3048:43;1452:39:165;::::1;::::0;2917:18:334;1452:39:165::1;;;;;;;1298:200;;1220:278:::0;;:::o;1682:127::-;1746:7;1772:9;:30;1782:19;1795:5;1782:12;:19::i;:::-;1772:30;;;;;;;;;;;-1:-1:-1;1772:30:165;;;;;1682:127;-1:-1:-1;;1682:127:165:o;2081:198:38:-;1094:13;:11;:13::i;:::-;2169:22:::1;::::0;::::1;2161:73;;;::::0;::::1;::::0;;3304:2:334;2161:73:38::1;::::0;::::1;3286:21:334::0;3343:2;3323:18;;;3316:30;3382:34;3362:18;;;3355:62;3453:8;3433:18;;;3426:36;3479:19;;2161:73:38::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;1422:23;1273:6;719:10:58;1422:23:38;1414:68;;;;;;;3711:2:334;1414:68:38;;;3693:21:334;;;3730:18;;;3723:30;3789:34;3769:18;;;3762:62;3841:18;;1414:68:38;3509:356:334;2433:187:38;2506:16;2525:6;;;2541:17;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;1949:133:165:-;2015:7;2068:5;2051:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;2041:34;;;;;;2034:41;;1949:133;;;:::o;245:184:334:-;297:77;294:1;287:88;394:4;391:1;384:15;418:4;415:1;408:15;434:778;477:5;530:3;523:4;515:6;511:17;507:27;497:55;;548:1;545;538:12;497:55;584:6;571:20;610:18;647:2;643;640:10;637:36;;;653:18;;:::i;:::-;787:2;781:9;849:4;841:13;;692:66;837:22;;;861:2;833:31;829:40;817:53;;;885:18;;;905:22;;;882:46;879:72;;;931:18;;:::i;:::-;971:10;967:2;960:22;1006:2;998:6;991:18;1052:3;1045:4;1040:2;1032:6;1028:15;1024:26;1021:35;1018:55;;;1069:1;1066;1059:12;1018:55;1133:2;1126:4;1118:6;1114:17;1107:4;1099:6;1095:17;1082:54;1180:1;1173:4;1168:2;1160:6;1156:15;1152:26;1145:37;1200:6;1191:15;;;;;;434:778;;;;:::o;1217:196::-;1285:20;;1345:42;1334:54;;1324:65;;1314:93;;1403:1;1400;1393:12;1314:93;1217:196;;;:::o;1418:396::-;1496:6;1504;1557:2;1545:9;1536:7;1532:23;1528:32;1525:52;;;1573:1;1570;1563:12;1525:52;1613:9;1600:23;1646:18;1638:6;1635:30;1632:50;;;1678:1;1675;1668:12;1632:50;1701;1743:7;1734:6;1723:9;1719:22;1701:50;:::i;:::-;1691:60;;;1770:38;1804:2;1793:9;1789:18;1770:38;:::i;:::-;1760:48;;1418:396;;;;;:::o;1819:322::-;1888:6;1941:2;1929:9;1920:7;1916:23;1912:32;1909:52;;;1957:1;1954;1947:12;1909:52;1997:9;1984:23;2030:18;2022:6;2019:30;2016:50;;;2062:1;2059;2052:12;2016:50;2085;2127:7;2118:6;2107:9;2103:22;2085:50;:::i;:::-;2075:60;1819:322;-1:-1:-1;;;;1819:322:334:o;2146:186::-;2205:6;2258:2;2246:9;2237:7;2233:23;2229:32;2226:52;;;2274:1;2271;2264:12;2226:52;2297:29;2316:9;2297:29;:::i;:::-;2287:39;2146:186;-1:-1:-1;;;2146:186:334:o;2337:428::-;2468:3;2506:6;2500:13;2531:1;2541:129;2555:6;2552:1;2549:13;2541:129;;;2653:4;2637:14;;;2633:25;;2627:32;2614:11;;;2607:53;2570:12;2541:129;;;2688:6;2685:1;2682:13;2679:48;;;2723:1;2714:6;2709:3;2705:16;2698:27;2679:48;-1:-1:-1;2743:16:334;;;;;2337:428;-1:-1:-1;;2337:428:334:o","linkReferences":{}},"methodIdentifiers":{"getAddress(string)":"bf40fac1","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setAddress(string,address)":"9b2ea4bd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"}],\"name\":\"AddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@title AddressManager\",\"events\":{\"AddressSet(string,address,address)\":{\"params\":{\"name\":\"String name being set in the registry.\",\"newAddress\":\"Address set for the given name.\",\"oldAddress\":\"Address that was previously set for the given name.\"}}},\"kind\":\"dev\",\"methods\":{\"getAddress(string)\":{\"params\":{\"_name\":\"Name to retrieve an address for.\"},\"returns\":{\"_0\":\"Address associated with the given name.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAddress(string,address)\":{\"params\":{\"_address\":\"Address to associate with the name.\",\"_name\":\"String name to associate an address with.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"events\":{\"AddressSet(string,address,address)\":{\"notice\":\"Emitted when an address is modified in the registry.\"}},\"kind\":\"user\",\"methods\":{\"getAddress(string)\":{\"notice\":\"Retrieves the address associated with a given name.\"},\"setAddress(string,address)\":{\"notice\":\"Changes the address associated with a particular name.\"}},\"notice\":\"AddressManager is a legacy contract that was used in the old version of the Optimism system to manage a registry of string names to addresses. We now use a more standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/AddressManager.sol\":\"AddressManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/legacy/AddressManager.sol\":{\"keccak256\":\"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34\",\"dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string","indexed":true},{"internalType":"address","name":"newAddress","type":"address","indexed":false},{"internalType":"address","name":"oldAddress","type":"address","indexed":false}],"type":"event","name":"AddressSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"view","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"getAddress(string)":{"params":{"_name":"Name to retrieve an address for."},"returns":{"_0":"Address associated with the given name."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setAddress(string,address)":{"params":{"_address":"Address to associate with the name.","_name":"String name to associate an address with."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"getAddress(string)":{"notice":"Retrieves the address associated with a given name."},"setAddress(string,address)":{"notice":"Changes the address associated with a particular name."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/AddressManager.sol":"AddressManager"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/legacy/AddressManager.sol":{"keccak256":"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19","urls":["bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34","dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"src/legacy/AddressManager.sol:AddressManager","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":91437,"contract":"src/legacy/AddressManager.sol:AddressManager","label":"addresses","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_address)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_address)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address)","numberOfBytes":"32","value":"t_address"}}},"userdoc":{"version":1,"kind":"user","methods":{"getAddress(string)":{"notice":"Retrieves the address associated with a given name."},"setAddress(string,address)":{"notice":"Changes the address associated with a particular name."}},"events":{"AddressSet(string,address,address)":{"notice":"Emitted when an address is modified in the registry."}},"notice":"AddressManager is a legacy contract that was used in the old version of the Optimism system to manage a registry of string names to addresses. We now use a more standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts."},"devdoc":{"version":1,"kind":"dev","methods":{"getAddress(string)":{"params":{"_name":"Name to retrieve an address for."},"returns":{"_0":"Address associated with the given name."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setAddress(string,address)":{"params":{"_address":"Address to associate with the name.","_name":"String name to associate an address with."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"events":{"AddressSet(string,address,address)":{"params":{"name":"String name being set in the registry.","newAddress":"Address set for the given name.","oldAddress":"Address that was previously set for the given name."}}}},"ast":{"absolutePath":"src/legacy/AddressManager.sol","id":91514,"exportedSymbols":{"AddressManager":[91513],"Ownable":[47778]},"nodeType":"SourceUnit","src":"32:2053:165","nodes":[{"id":91427,"nodeType":"PragmaDirective","src":"32:23:165","nodes":[],"literals":["solidity","0.8",".15"]},{"id":91429,"nodeType":"ImportDirective","src":"57:69:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":91514,"sourceUnit":47779,"symbolAliases":[{"foreign":{"id":91428,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47778,"src":"66:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91513,"nodeType":"ContractDefinition","src":"508:1576:165","nodes":[{"id":91437,"nodeType":"VariableDeclaration","src":"617:45:165","nodes":[],"constant":false,"documentation":{"id":91433,"nodeType":"StructuredDocumentation","src":"549:63:165","text":"@notice Mapping of the hashes of string names to addresses."},"mutability":"mutable","name":"addresses","nameLocation":"653:9:165","scope":91513,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":91436,"keyType":{"id":91434,"name":"bytes32","nodeType":"ElementaryTypeName","src":"625:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"617:27:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":91435,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"id":91446,"nodeType":"EventDefinition","src":"939:78:165","nodes":[],"anonymous":false,"documentation":{"id":91438,"nodeType":"StructuredDocumentation","src":"669:265:165","text":"@notice Emitted when an address is modified in the registry.\n @param name String name being set in the registry.\n @param newAddress Address set for the given name.\n @param oldAddress Address that was previously set for the given name."},"eventSelector":"9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c","name":"AddressSet","nameLocation":"945:10:165","parameters":{"id":91445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91440,"indexed":true,"mutability":"mutable","name":"name","nameLocation":"971:4:165","nodeType":"VariableDeclaration","scope":91446,"src":"956:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":91439,"name":"string","nodeType":"ElementaryTypeName","src":"956:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":91442,"indexed":false,"mutability":"mutable","name":"newAddress","nameLocation":"985:10:165","nodeType":"VariableDeclaration","scope":91446,"src":"977:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91441,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91444,"indexed":false,"mutability":"mutable","name":"oldAddress","nameLocation":"1005:10:165","nodeType":"VariableDeclaration","scope":91446,"src":"997:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91443,"name":"address","nodeType":"ElementaryTypeName","src":"997:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"955:61:165"}},{"id":91481,"nodeType":"FunctionDefinition","src":"1220:278:165","nodes":[],"body":{"id":91480,"nodeType":"Block","src":"1298:200:165","nodes":[],"statements":[{"assignments":[91457],"declarations":[{"constant":false,"id":91457,"mutability":"mutable","name":"nameHash","nameLocation":"1316:8:165","nodeType":"VariableDeclaration","scope":91480,"src":"1308:16:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1308:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":91461,"initialValue":{"arguments":[{"id":91459,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91449,"src":"1340:5:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":91458,"name":"_getNameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91512,"src":"1327:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":91460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1327:19:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1308:38:165"},{"assignments":[91463],"declarations":[{"constant":false,"id":91463,"mutability":"mutable","name":"oldAddress","nameLocation":"1364:10:165","nodeType":"VariableDeclaration","scope":91480,"src":"1356:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91462,"name":"address","nodeType":"ElementaryTypeName","src":"1356:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":91467,"initialValue":{"baseExpression":{"id":91464,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91437,"src":"1377:9:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":91466,"indexExpression":{"id":91465,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91457,"src":"1387:8:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1377:19:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1356:40:165"},{"expression":{"id":91472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":91468,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91437,"src":"1406:9:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":91470,"indexExpression":{"id":91469,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91457,"src":"1416:8:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1406:19:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":91471,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91451,"src":"1428:8:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1406:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":91473,"nodeType":"ExpressionStatement","src":"1406:30:165"},{"eventCall":{"arguments":[{"id":91475,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91449,"src":"1463:5:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":91476,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91451,"src":"1470:8:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91477,"name":"oldAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91463,"src":"1480:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":91474,"name":"AddressSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91446,"src":"1452:10:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$","typeString":"function (string memory,address,address)"}},"id":91478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1452:39:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91479,"nodeType":"EmitStatement","src":"1447:44:165"}]},"documentation":{"id":91447,"nodeType":"StructuredDocumentation","src":"1023:192:165","text":"@notice Changes the address associated with a particular name.\n @param _name String name to associate an address with.\n @param _address Address to associate with the name."},"functionSelector":"9b2ea4bd","implemented":true,"kind":"function","modifiers":[{"id":91454,"kind":"modifierInvocation","modifierName":{"id":91453,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":47697,"src":"1288:9:165"},"nodeType":"ModifierInvocation","src":"1288:9:165"}],"name":"setAddress","nameLocation":"1229:10:165","parameters":{"id":91452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91449,"mutability":"mutable","name":"_name","nameLocation":"1254:5:165","nodeType":"VariableDeclaration","scope":91481,"src":"1240:19:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":91448,"name":"string","nodeType":"ElementaryTypeName","src":"1240:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":91451,"mutability":"mutable","name":"_address","nameLocation":"1269:8:165","nodeType":"VariableDeclaration","scope":91481,"src":"1261:16:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91450,"name":"address","nodeType":"ElementaryTypeName","src":"1261:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1239:39:165"},"returnParameters":{"id":91455,"nodeType":"ParameterList","parameters":[],"src":"1298:0:165"},"scope":91513,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":91496,"nodeType":"FunctionDefinition","src":"1682:127:165","nodes":[],"body":{"id":91495,"nodeType":"Block","src":"1755:54:165","nodes":[],"statements":[{"expression":{"baseExpression":{"id":91489,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91437,"src":"1772:9:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":91493,"indexExpression":{"arguments":[{"id":91491,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91484,"src":"1795:5:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":91490,"name":"_getNameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91512,"src":"1782:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":91492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1782:19:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1772:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":91488,"id":91494,"nodeType":"Return","src":"1765:37:165"}]},"documentation":{"id":91482,"nodeType":"StructuredDocumentation","src":"1504:173:165","text":"@notice Retrieves the address associated with a given name.\n @param _name Name to retrieve an address for.\n @return Address associated with the given name."},"functionSelector":"bf40fac1","implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"1691:10:165","parameters":{"id":91485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91484,"mutability":"mutable","name":"_name","nameLocation":"1716:5:165","nodeType":"VariableDeclaration","scope":91496,"src":"1702:19:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":91483,"name":"string","nodeType":"ElementaryTypeName","src":"1702:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1701:21:165"},"returnParameters":{"id":91488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":91496,"src":"1746:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91486,"name":"address","nodeType":"ElementaryTypeName","src":"1746:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1745:9:165"},"scope":91513,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":91512,"nodeType":"FunctionDefinition","src":"1949:133:165","nodes":[],"body":{"id":91511,"nodeType":"Block","src":"2024:58:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":91507,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91499,"src":"2068:5:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":91505,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2051:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":91506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"2051:16:165","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":91508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2051:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":91504,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2041:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":91509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2041:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":91503,"id":91510,"nodeType":"Return","src":"2034:41:165"}]},"documentation":{"id":91497,"nodeType":"StructuredDocumentation","src":"1815:129:165","text":"@notice Computes the hash of a name.\n @param _name Name to compute a hash for.\n @return Hash of the given name."},"implemented":true,"kind":"function","modifiers":[],"name":"_getNameHash","nameLocation":"1958:12:165","parameters":{"id":91500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91499,"mutability":"mutable","name":"_name","nameLocation":"1985:5:165","nodeType":"VariableDeclaration","scope":91512,"src":"1971:19:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":91498,"name":"string","nodeType":"ElementaryTypeName","src":"1971:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1970:21:165"},"returnParameters":{"id":91503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":91512,"src":"2015:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91501,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2015:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2014:9:165"},"scope":91513,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":91431,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":47778,"src":"535:7:165"},"id":91432,"nodeType":"InheritanceSpecifier","src":"535:7:165"}],"canonicalName":"AddressManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":91430,"nodeType":"StructuredDocumentation","src":"128:380:165","text":"@custom:legacy\n @title AddressManager\n @notice AddressManager is a legacy contract that was used in the old version of the Optimism\n system to manage a registry of string names to addresses. We now use a more standard\n proxy system instead, but this contract is still necessary for backwards compatibility\n with several older contracts."},"fullyImplemented":true,"linearizedBaseContracts":[91513,47778,51634],"name":"AddressManager","nameLocation":"517:14:165","scope":91514,"usedErrors":[]}],"license":"MIT"},"id":165}
{"abi":[{"type":"function","name":"getAddress","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAddress","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddressSet","inputs":[{"name":"name","type":"string","indexed":true,"internalType":"string"},{"name":"newAddress","type":"address","indexed":false,"internalType":"address"},{"name":"oldAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105ef8061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046104fa565b610106565b6100906100da366004610548565b6101d9565b6100746100ed366004610585565b610215565b6100fa6102d1565b6101046000610352565b565b61010e6102d1565b6000610119836103c7565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092559151929350169061017c9085906105a7565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006101e8846103c7565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b61021d6102d1565b73ffffffffffffffffffffffffffffffffffffffff81166102c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ce81610352565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610104576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bc565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016103da91906105a7565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043757600080fd5b813567ffffffffffffffff80821115610452576104526103f7565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610498576104986103f7565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146104f557600080fd5b919050565b6000806040838503121561050d57600080fd5b823567ffffffffffffffff81111561052457600080fd5b61053085828601610426565b92505061053f602084016104d1565b90509250929050565b60006020828403121561055a57600080fd5b813567ffffffffffffffff81111561057157600080fd5b61057d84828501610426565b949350505050565b60006020828403121561059757600080fd5b6105a0826104d1565b9392505050565b6000825160005b818110156105c857602081860181015185830152016105ae565b818111156105d7576000828501525b50919091019291505056fea164736f6c634300080f000a","sourceMap":"508:1576:177:-:0;;;;;;;;;;;;-1:-1:-1;936:32:38;719:10:58;936:18:38;:32::i;:::-;508:1576:177;;2433:187:38;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:38;;;-1:-1:-1;;;;;;2541:17:38;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;508:1576:177:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046104fa565b610106565b6100906100da366004610548565b6101d9565b6100746100ed366004610585565b610215565b6100fa6102d1565b6101046000610352565b565b61010e6102d1565b6000610119836103c7565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092559151929350169061017c9085906105a7565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006101e8846103c7565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b61021d6102d1565b73ffffffffffffffffffffffffffffffffffffffff81166102c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ce81610352565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610104576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bc565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016103da91906105a7565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043757600080fd5b813567ffffffffffffffff80821115610452576104526103f7565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610498576104986103f7565b816040528381528660208588010111156104b157600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146104f557600080fd5b919050565b6000806040838503121561050d57600080fd5b823567ffffffffffffffff81111561052457600080fd5b61053085828601610426565b92505061053f602084016104d1565b90509250929050565b60006020828403121561055a57600080fd5b813567ffffffffffffffff81111561057157600080fd5b61057d84828501610426565b949350505050565b60006020828403121561059757600080fd5b6105a0826104d1565b9392505050565b6000825160005b818110156105c857602081860181015185830152016105ae565b818111156105d7576000828501525b50919091019291505056fea164736f6c634300080f000a","sourceMap":"508:1576:177:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:38;;;:::i;:::-;;1201:85;1247:7;1273:6;;;1201:85;;;190:42:350;178:55;;;160:74;;148:2;133:18;1201:85:38;;;;;;;1220:278:177;;;;;;:::i;:::-;;:::i;1682:127::-;;;;;;:::i;:::-;;:::i;2081:198:38:-;;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1220:278:177:-;1094:13:38;:11;:13::i;:::-;1308:16:177::1;1327:19;1340:5;1327:12;:19::i;:::-;1356:18;1377:19:::0;;;:9:::1;:19;::::0;;;;;;;;::::1;1406:30:::0;;::::1;::::0;;::::1;;::::0;;;1452:39;;1308:38;;-1:-1:-1;1377:19:177::1;::::0;1452:39:::1;::::0;1463:5;;1452:39:::1;:::i;:::-;;::::0;;;;;::::1;::::0;;2954:42:350;3023:15;;;3005:34;;3075:15;;3070:2;3055:18;;3048:43;1452:39:177;::::1;::::0;2917:18:350;1452:39:177::1;;;;;;;1298:200;;1220:278:::0;;:::o;1682:127::-;1746:7;1772:9;:30;1782:19;1795:5;1782:12;:19::i;:::-;1772:30;;;;;;;;;;;-1:-1:-1;1772:30:177;;;;;1682:127;-1:-1:-1;;1682:127:177:o;2081:198:38:-;1094:13;:11;:13::i;:::-;2169:22:::1;::::0;::::1;2161:73;;;::::0;::::1;::::0;;3304:2:350;2161:73:38::1;::::0;::::1;3286:21:350::0;3343:2;3323:18;;;3316:30;3382:34;3362:18;;;3355:62;3453:8;3433:18;;;3426:36;3479:19;;2161:73:38::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;1422:23;1273:6;719:10:58;1422:23:38;1414:68;;;;;;;3711:2:350;1414:68:38;;;3693:21:350;;;3730:18;;;3723:30;3789:34;3769:18;;;3762:62;3841:18;;1414:68:38;3509:356:350;2433:187:38;2506:16;2525:6;;;2541:17;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;1949:133:177:-;2015:7;2068:5;2051:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;2041:34;;;;;;2034:41;;1949:133;;;:::o;245:184:350:-;297:77;294:1;287:88;394:4;391:1;384:15;418:4;415:1;408:15;434:778;477:5;530:3;523:4;515:6;511:17;507:27;497:55;;548:1;545;538:12;497:55;584:6;571:20;610:18;647:2;643;640:10;637:36;;;653:18;;:::i;:::-;787:2;781:9;849:4;841:13;;692:66;837:22;;;861:2;833:31;829:40;817:53;;;885:18;;;905:22;;;882:46;879:72;;;931:18;;:::i;:::-;971:10;967:2;960:22;1006:2;998:6;991:18;1052:3;1045:4;1040:2;1032:6;1028:15;1024:26;1021:35;1018:55;;;1069:1;1066;1059:12;1018:55;1133:2;1126:4;1118:6;1114:17;1107:4;1099:6;1095:17;1082:54;1180:1;1173:4;1168:2;1160:6;1156:15;1152:26;1145:37;1200:6;1191:15;;;;;;434:778;;;;:::o;1217:196::-;1285:20;;1345:42;1334:54;;1324:65;;1314:93;;1403:1;1400;1393:12;1314:93;1217:196;;;:::o;1418:396::-;1496:6;1504;1557:2;1545:9;1536:7;1532:23;1528:32;1525:52;;;1573:1;1570;1563:12;1525:52;1613:9;1600:23;1646:18;1638:6;1635:30;1632:50;;;1678:1;1675;1668:12;1632:50;1701;1743:7;1734:6;1723:9;1719:22;1701:50;:::i;:::-;1691:60;;;1770:38;1804:2;1793:9;1789:18;1770:38;:::i;:::-;1760:48;;1418:396;;;;;:::o;1819:322::-;1888:6;1941:2;1929:9;1920:7;1916:23;1912:32;1909:52;;;1957:1;1954;1947:12;1909:52;1997:9;1984:23;2030:18;2022:6;2019:30;2016:50;;;2062:1;2059;2052:12;2016:50;2085;2127:7;2118:6;2107:9;2103:22;2085:50;:::i;:::-;2075:60;1819:322;-1:-1:-1;;;;1819:322:350:o;2146:186::-;2205:6;2258:2;2246:9;2237:7;2233:23;2229:32;2226:52;;;2274:1;2271;2264:12;2226:52;2297:29;2316:9;2297:29;:::i;:::-;2287:39;2146:186;-1:-1:-1;;;2146:186:350:o;2337:428::-;2468:3;2506:6;2500:13;2531:1;2541:129;2555:6;2552:1;2549:13;2541:129;;;2653:4;2637:14;;;2633:25;;2627:32;2614:11;;;2607:53;2570:12;2541:129;;;2688:6;2685:1;2682:13;2679:48;;;2723:1;2714:6;2709:3;2705:16;2698:27;2679:48;-1:-1:-1;2743:16:350;;;;;2337:428;-1:-1:-1;;2337:428:350:o","linkReferences":{}},"methodIdentifiers":{"getAddress(string)":"bf40fac1","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setAddress(string,address)":"9b2ea4bd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"}],\"name\":\"AddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@title AddressManager\",\"events\":{\"AddressSet(string,address,address)\":{\"params\":{\"name\":\"String name being set in the registry.\",\"newAddress\":\"Address set for the given name.\",\"oldAddress\":\"Address that was previously set for the given name.\"}}},\"kind\":\"dev\",\"methods\":{\"getAddress(string)\":{\"params\":{\"_name\":\"Name to retrieve an address for.\"},\"returns\":{\"_0\":\"Address associated with the given name.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAddress(string,address)\":{\"params\":{\"_address\":\"Address to associate with the name.\",\"_name\":\"String name to associate an address with.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"events\":{\"AddressSet(string,address,address)\":{\"notice\":\"Emitted when an address is modified in the registry.\"}},\"kind\":\"user\",\"methods\":{\"getAddress(string)\":{\"notice\":\"Retrieves the address associated with a given name.\"},\"setAddress(string,address)\":{\"notice\":\"Changes the address associated with a particular name.\"}},\"notice\":\"AddressManager is a legacy contract that was used in the old version of the Optimism system to manage a registry of string names to addresses. We now use a more standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/AddressManager.sol\":\"AddressManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/legacy/AddressManager.sol\":{\"keccak256\":\"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34\",\"dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string","indexed":true},{"internalType":"address","name":"newAddress","type":"address","indexed":false},{"internalType":"address","name":"oldAddress","type":"address","indexed":false}],"type":"event","name":"AddressSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"view","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"getAddress(string)":{"params":{"_name":"Name to retrieve an address for."},"returns":{"_0":"Address associated with the given name."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setAddress(string,address)":{"params":{"_address":"Address to associate with the name.","_name":"String name to associate an address with."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"getAddress(string)":{"notice":"Retrieves the address associated with a given name."},"setAddress(string,address)":{"notice":"Changes the address associated with a particular name."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/AddressManager.sol":"AddressManager"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/legacy/AddressManager.sol":{"keccak256":"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19","urls":["bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34","dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"src/legacy/AddressManager.sol:AddressManager","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":98441,"contract":"src/legacy/AddressManager.sol:AddressManager","label":"addresses","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_address)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_address)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address)","numberOfBytes":"32","value":"t_address"}}},"userdoc":{"version":1,"kind":"user","methods":{"getAddress(string)":{"notice":"Retrieves the address associated with a given name."},"setAddress(string,address)":{"notice":"Changes the address associated with a particular name."}},"events":{"AddressSet(string,address,address)":{"notice":"Emitted when an address is modified in the registry."}},"notice":"AddressManager is a legacy contract that was used in the old version of the Optimism system to manage a registry of string names to addresses. We now use a more standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts."},"devdoc":{"version":1,"kind":"dev","methods":{"getAddress(string)":{"params":{"_name":"Name to retrieve an address for."},"returns":{"_0":"Address associated with the given name."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setAddress(string,address)":{"params":{"_address":"Address to associate with the name.","_name":"String name to associate an address with."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"events":{"AddressSet(string,address,address)":{"params":{"name":"String name being set in the registry.","newAddress":"Address set for the given name.","oldAddress":"Address that was previously set for the given name."}}}},"id":177}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_admin","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_version","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"ADMIN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PROOF_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"verify","inputs":[{"name":"_params","type":"tuple","internalType":"struct Faucet.DripParameters","components":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"nonce","type":"bytes32","internalType":"bytes32"}]},{"name":"_id","type":"bytes32","internalType":"bytes32"},{"name":"_proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid_","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6101806040527fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e6101605234801561003657600080fd5b50604051610bd2380380610bd2833981016040819052610055916101b8565b815160209283012081519183019190912060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818801819052818301969096526060810194909452608080850193909352308483018190528151808603909301835260c094850190915281519190950120905291909152610120526001600160a01b03166101405261023a565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011d57600080fd5b81516001600160401b0380821115610137576101376100f6565b604051601f8301601f19908116603f0116810190828211818310171561015f5761015f6100f6565b8160405283815260209250868385880101111561017b57600080fd5b600091505b8382101561019d5785820183015181830184015290820190610180565b838211156101ae5760008385830101525b9695505050505050565b6000806000606084860312156101cd57600080fd5b83516001600160a01b03811681146101e457600080fd5b60208501519093506001600160401b038082111561020157600080fd5b61020d8783880161010c565b9350604086015191508082111561022357600080fd5b506102308682870161010c565b9150509250925092565b60805160a05160c05160e051610100516101205161014051610160516109286102aa60003960008181609c015261011a015260008181604b015260f601526000610481015260006104d0015260006104ab015260006104040152600061042e0152600061045801526109286000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632a0acc6a146100465780638b3e3bf614610097578063f5431ffa146100cc575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100be7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161008e565b6100df6100da366004610722565b6100ef565b604051901515815260200161008e565b60006101a47f000000000000000000000000000000000000000000000000000000000000000061019e7f00000000000000000000000000000000000000000000000000000000000000008760000151886020015188604051602001610183949392919093845273ffffffffffffffffffffffffffffffffffffffff9290921660208401526040830152606082015260800190565b604051602081830303815290604052805190602001206101ac565b8461021b565b949350505050565b60006102156101b96103ea565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b600080600061022a858561051e565b909250905060008160048111156102435761024361082f565b14801561027b57508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561028b576001925050506103e3565b6000808773ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b88886040516024016102c092919061088e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161034991906108e6565b600060405180830381855afa9150503d8060008114610384576040519150601f19603f3d011682016040523d82523d6000602084013e610389565b606091505b509150915081801561039c575080516020145b80156103dc575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906103da9083016020908101908401610902565b145b9450505050505b9392505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561045057507f000000000000000000000000000000000000000000000000000000000000000046145b1561047a57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008082516041036105545760208301516040840151606085015160001a61054887828585610563565b9450945050505061055c565b506000905060025b9250929050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561059a5750600090506003610672565b8460ff16601b141580156105b257508460ff16601c14155b156105c35750600090506004610672565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610617573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661066b57600060019250925050610672565b9150600090505b94509492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156106cd576106cd61067b565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561071a5761071a61067b565b604052919050565b6000806000838503608081121561073857600080fd5b604081121561074657600080fd5b5061074f6106aa565b843573ffffffffffffffffffffffffffffffffffffffff8116811461077357600080fd5b8152602085810135818301529093506040850135925060608501359067ffffffffffffffff808311156107a557600080fd5b828701925087601f8401126107b957600080fd5b8235818111156107cb576107cb61067b565b6107fb837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016106d3565b9150808252888382860101111561081157600080fd5b80838501848401376000838284010152508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60005b83811015610879578181015183820152602001610861565b83811115610888576000848401525b50505050565b82815260406020820152600082518060408401526108b381606085016020870161085e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600082516108f881846020870161085e565b9190910192915050565b60006020828403121561091457600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"521:1556:200:-:0;;;776:62;734:104;;1427:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2541:22:63;;;;;;;2597:25;;;;;;;;;2778;;;;2813:31;;;;2873:13;2854:32;;;;-1:-1:-1;3633:73:63;;2651:117;3633:73;;;2029:25:334;;;2070:18;;;2063:34;;;;-1:-1:-1;2113:18:334;;2106:34;;;;2156:18;;;;2149:34;;;;3700:4:63;2199:19:334;;;2192:61;;;3633:73:63;;;;;;;;;;2001:19:334;;;;3633:73:63;;;3623:84;;;;;;;2896:85;;2991:28;;;;3029:21;;-1:-1:-1;;;;;1534:14:200::1;;::::0;521:1556;;14:127:334;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:334;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:334;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:334:o;1036:729::-;1144:6;1152;1160;1213:2;1201:9;1192:7;1188:23;1184:32;1181:52;;;1229:1;1226;1219:12;1181:52;1255:16;;-1:-1:-1;;;;;1300:31:334;;1290:42;;1280:70;;1346:1;1343;1336:12;1280:70;1418:2;1403:18;;1397:25;1369:5;;-1:-1:-1;;;;;;1471:14:334;;;1468:34;;;1498:1;1495;1488:12;1468:34;1521:61;1574:7;1565:6;1554:9;1550:22;1521:61;:::i;:::-;1511:71;;1628:2;1617:9;1613:18;1607:25;1591:41;;1657:2;1647:8;1644:16;1641:36;;;1673:1;1670;1663:12;1641:36;;1696:63;1751:7;1740:8;1729:9;1725:24;1696:63;:::i;:::-;1686:73;;;1036:729;;;;;:::o;1770:489::-;521:1556:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632a0acc6a146100465780638b3e3bf614610097578063f5431ffa146100cc575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100be7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161008e565b6100df6100da366004610722565b6100ef565b604051901515815260200161008e565b60006101a47f000000000000000000000000000000000000000000000000000000000000000061019e7f00000000000000000000000000000000000000000000000000000000000000008760000151886020015188604051602001610183949392919093845273ffffffffffffffffffffffffffffffffffffffff9290921660208401526040830152606082015260800190565b604051602081830303815290604052805190602001206101ac565b8461021b565b949350505050565b60006102156101b96103ea565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b600080600061022a858561051e565b909250905060008160048111156102435761024361082f565b14801561027b57508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561028b576001925050506103e3565b6000808773ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b88886040516024016102c092919061088e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161034991906108e6565b600060405180830381855afa9150503d8060008114610384576040519150601f19603f3d011682016040523d82523d6000602084013e610389565b606091505b509150915081801561039c575080516020145b80156103dc575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906103da9083016020908101908401610902565b145b9450505050505b9392505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561045057507f000000000000000000000000000000000000000000000000000000000000000046145b1561047a57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008082516041036105545760208301516040840151606085015160001a61054887828585610563565b9450945050505061055c565b506000905060025b9250929050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561059a5750600090506003610672565b8460ff16601b141580156105b257508460ff16601c14155b156105c35750600090506004610672565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610617573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661066b57600060019250925050610672565b9150600090505b94509492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156106cd576106cd61067b565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561071a5761071a61067b565b604052919050565b6000806000838503608081121561073857600080fd5b604081121561074657600080fd5b5061074f6106aa565b843573ffffffffffffffffffffffffffffffffffffffff8116811461077357600080fd5b8152602085810135818301529093506040850135925060608501359067ffffffffffffffff808311156107a557600080fd5b828701925087601f8401126107b957600080fd5b8235818111156107cb576107cb61067b565b6107fb837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016106d3565b9150808252888382860101111561081157600080fd5b80838501848401376000838284010152508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60005b83811015610879578181015183820152602001610861565b83811115610888576000848401525b50505050565b82815260406020820152600082518060408401526108b381606085016020870161085e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600082516108f881846020870161085e565b9190910192915050565b60006020828403121561091457600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"521:1556:200:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;645:30;;;;;;;;190:42:334;178:55;;;160:74;;148:2;133:18;645:30:200;;;;;;;;734:104;;;;;;;;391:25:334;;;379:2;364:18;734:104:200;245:177:334;1599:476:200;;;;;;:::i;:::-;;:::i;:::-;;;2717:14:334;;2710:22;2692:41;;2680:2;2665:18;1599:476:200;2552:187:334;1599:476:200;1764:11;1875:193;1925:5;1944:94;1982:14;1998:7;:17;;;2017:7;:13;;;2032:3;1971:65;;;;;;;;;;2991:25:334;;;3064:42;3052:55;;;;3047:2;3032:18;;3025:83;3139:2;3124:18;;3117:34;3182:2;3167:18;;3160:34;2978:3;2963:19;;2744:456;1971:65:200;;;;;;;;;;;;;1961:76;;;;;;1944:16;:94::i;:::-;2052:6;1875:36;:193::i;:::-;1866:202;1599:476;-1:-1:-1;;;;1599:476:200:o;4339:165:63:-;4416:7;4442:55;4464:20;:18;:20::i;:::-;4486:10;8677:57:61;;4911:66:334;8677:57:61;;;4899:79:334;4994:11;;;4987:27;;;5030:12;;;5023:28;;;8641:7:61;;5067:12:334;;8677:57:61;;;;;;;;;;;;8667:68;;;;;;8660:75;;8548:194;;;;;4442:55:63;4435:62;4339:165;-1:-1:-1;;4339:165:63:o;1039:667:62:-;1175:4;1192:17;1211:24;1239:33;1256:4;1262:9;1239:16;:33::i;:::-;1191:81;;-1:-1:-1;1191:81:62;-1:-1:-1;1295:26:62;1286:5;:35;;;;;;;;:::i;:::-;;:58;;;;;1338:6;1325:19;;:9;:19;;;1286:58;1282:100;;;1367:4;1360:11;;;;;;1282:100;1393:12;1407:19;1430:6;:17;;1484:34;;;1520:4;1526:9;1461:75;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1430:116;;;;1461:75;1430:116;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:154;;;;1564:7;:42;;;;;1587:6;:13;1604:2;1587:19;1564:42;:134;;;;-1:-1:-1;1622:29:62;;1663:34;;1622:29;;;;;;;;;;;;:::i;:::-;:76;1564:134;1556:143;;;;;;1039:667;;;;;;:::o;3143:308:63:-;3196:7;3227:4;3219:29;3236:12;3219:29;;:66;;;;;3269:16;3252:13;:33;3219:66;3215:230;;;-1:-1:-1;3308:24:63;;3143:308::o;3215:230::-;-1:-1:-1;3633:73:63;;;3392:10;3633:73;;;;5349:25:334;;;;3404:12:63;5390:18:334;;;5383:34;3418:15:63;5433:18:334;;;5426:34;3677:13:63;5476:18:334;;;5469:34;3700:4:63;5519:19:334;;;;5512:84;;;;3633:73:63;;;;;;;;;;5321:19:334;;;;3633:73:63;;;3623:84;;;;;;3143:308::o;2243:730:61:-;2324:7;2333:12;2361:9;:16;2381:2;2361:22;2357:610;;2697:4;2682:20;;2676:27;2746:4;2731:20;;2725:27;2803:4;2788:20;;2782:27;2399:9;2774:36;2844:25;2855:4;2774:36;2676:27;2725;2844:10;:25::i;:::-;2837:32;;;;;;;;;2357:610;-1:-1:-1;2916:1:61;;-1:-1:-1;2920:35:61;2357:610;2243:730;;;;;:::o;5167:1603::-;5293:7;;6217:66;6204:79;;6200:161;;;-1:-1:-1;6315:1:61;;-1:-1:-1;6319:30:61;6299:51;;6200:161;6374:1;:7;;6379:2;6374:7;;:18;;;;;6385:1;:7;;6390:2;6385:7;;6374:18;6370:100;;;-1:-1:-1;6424:1:61;;-1:-1:-1;6428:30:61;6408:51;;6370:100;6581:24;;;6564:14;6581:24;;;;;;;;;5834:25:334;;;5907:4;5895:17;;5875:18;;;5868:45;;;;5929:18;;;5922:34;;;5972:18;;;5965:34;;;6581:24:61;;5806:19:334;;6581:24:61;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6581:24:61;;;;;;-1:-1:-1;;6619:20:61;;;6615:101;;6671:1;6675:29;6655:50;;;;;;;6615:101;6734:6;-1:-1:-1;6742:20:61;;-1:-1:-1;5167:1603:61;;;;;;;;:::o;427:184:334:-;479:77;476:1;469:88;576:4;573:1;566:15;600:4;597:1;590:15;616:256;687:4;681:11;;;719:17;;766:18;751:34;;787:22;;;748:62;745:88;;;813:18;;:::i;:::-;849:4;842:24;616:256;:::o;877:334::-;948:2;942:9;1004:2;994:13;;1009:66;990:86;978:99;;1107:18;1092:34;;1128:22;;;1089:62;1086:88;;;1154:18;;:::i;:::-;1190:2;1183:22;877:334;;-1:-1:-1;877:334:334:o;1216:1331::-;1335:6;1343;1351;1395:9;1386:7;1382:23;1425:3;1421:2;1417:12;1414:32;;;1442:1;1439;1432:12;1414:32;1466:4;1462:2;1458:13;1455:33;;;1484:1;1481;1474:12;1455:33;;1510:21;;:::i;:::-;1568:9;1555:23;1622:42;1613:7;1609:56;1600:7;1597:69;1587:97;;1680:1;1677;1670:12;1587:97;1693:22;;1734:2;1781:18;;;1768:32;1752:14;;;1745:56;1700:5;;-1:-1:-1;1872:4:334;1857:20;;1844:34;;-1:-1:-1;1929:2:334;1914:18;;1901:32;;1952:18;1982:14;;;1979:34;;;2009:1;2006;1999:12;1979:34;2047:6;2036:9;2032:22;2022:32;;2092:7;2085:4;2081:2;2077:13;2073:27;2063:55;;2114:1;2111;2104:12;2063:55;2150:2;2137:16;2172:2;2168;2165:10;2162:36;;;2178:18;;:::i;:::-;2220:112;2328:2;2259:66;2252:4;2248:2;2244:13;2240:86;2236:95;2220:112;:::i;:::-;2207:125;;2355:2;2348:5;2341:17;2395:7;2390:2;2385;2381;2377:11;2373:20;2370:33;2367:53;;;2416:1;2413;2406:12;2367:53;2471:2;2466;2462;2458:11;2453:2;2446:5;2442:14;2429:45;2515:1;2510:2;2505;2498:5;2494:14;2490:23;2483:34;;2536:5;2526:15;;;;;1216:1331;;;;;:::o;3205:184::-;3257:77;3254:1;3247:88;3354:4;3351:1;3344:15;3378:4;3375:1;3368:15;3394:258;3466:1;3476:113;3490:6;3487:1;3484:13;3476:113;;;3566:11;;;3560:18;3547:11;;;3540:39;3512:2;3505:10;3476:113;;;3607:6;3604:1;3601:13;3598:48;;;3642:1;3633:6;3628:3;3624:16;3617:27;3598:48;;3394:258;;;:::o;3657:511::-;3832:6;3821:9;3814:25;3875:2;3870;3859:9;3855:18;3848:30;3795:4;3907:6;3901:13;3950:6;3945:2;3934:9;3930:18;3923:34;3966:66;4025:6;4020:2;4009:9;4005:18;4000:2;3992:6;3988:15;3966:66;:::i;:::-;4084:2;4072:15;4089:66;4068:88;4053:104;;;;4159:2;4049:113;;3657:511;-1:-1:-1;;;3657:511:334:o;4173:274::-;4302:3;4340:6;4334:13;4356:53;4402:6;4397:3;4390:4;4382:6;4378:17;4356:53;:::i;:::-;4425:16;;;;;4173:274;-1:-1:-1;;4173:274:334:o;4452:184::-;4522:6;4575:2;4563:9;4554:7;4550:23;4546:32;4543:52;;;4591:1;4588;4581:12;4543:52;-1:-1:-1;4614:16:334;;4452:184;-1:-1:-1;4452:184:334:o","linkReferences":{},"immutableReferences":{"52411":[{"start":1112,"length":32}],"52413":[{"start":1070,"length":32}],"52415":[{"start":1028,"length":32}],"52417":[{"start":1195,"length":32}],"52419":[{"start":1232,"length":32}],"52421":[{"start":1153,"length":32}],"97059":[{"start":75,"length":32},{"start":246,"length":32}],"97065":[{"start":156,"length":32},{"start":282,"length":32}]}},"methodIdentifiers":{"ADMIN()":"2a0acc6a","PROOF_TYPEHASH()":"8b3e3bf6","verify((address,bytes32),bytes32,bytes)":"f5431ffa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_version\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ADMIN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROOF_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"internalType\":\"struct Faucet.DripParameters\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_admin\":\"Admin address that can sign off on drips.\",\"_name\":\"Contract name.\",\"_version\":\"The current major version of the signing domain.\"}},\"verify((address,bytes32),bytes32,bytes)\":{\"params\":{\"_id\":\"Authentication ID to verify.\",\"_params\":\"Drip parameters to verify.\",\"_proof\":\"Authentication proof to verify.\"},\"returns\":{\"valid_\":\"True if the drip parameters are valid.\"}}},\"title\":\"AdminFaucetAuthModule\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ADMIN()\":{\"notice\":\"Admin address that can sign off on drips.\"},\"PROOF_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the Proof type.\"},\"verify((address,bytes32),bytes32,bytes)\":{\"notice\":\"Verifies that the given drip parameters are valid.\"}},\"notice\":\"FaucetAuthModule that allows an admin to sign off on a given faucet drip. Takes an admin as the constructor argument.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol\":\"AdminFaucetAuthModule\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"src/periphery/faucet/Faucet.sol\":{\"keccak256\":\"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727\",\"dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS\"]},\"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol\":{\"keccak256\":\"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7\",\"dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r\"]},\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":{\"keccak256\":\"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850\",\"dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_version","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"ADMIN","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROOF_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Faucet.DripParameters","name":"_params","type":"tuple","components":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"}]},{"internalType":"bytes32","name":"_id","type":"bytes32"},{"internalType":"bytes","name":"_proof","type":"bytes"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"valid_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_admin":"Admin address that can sign off on drips.","_name":"Contract name.","_version":"The current major version of the signing domain."}},"verify((address,bytes32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"valid_":"True if the drip parameters are valid."}}},"version":1},"userdoc":{"kind":"user","methods":{"ADMIN()":{"notice":"Admin address that can sign off on drips."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"verify((address,bytes32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol":"AdminFaucetAuthModule"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"},"src/periphery/faucet/Faucet.sol":{"keccak256":"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb","urls":["bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727","dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS"],"license":"MIT"},"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol":{"keccak256":"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e","urls":["bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7","dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r"],"license":"MIT"},"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":{"keccak256":"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d","urls":["bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850","dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"ADMIN()":{"notice":"Admin address that can sign off on drips."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"verify((address,bytes32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"notice":"FaucetAuthModule that allows an admin to sign off on a given faucet drip. Takes an admin as the constructor argument."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_admin":"Admin address that can sign off on drips.","_name":"Contract name.","_version":"The current major version of the signing domain."}},"verify((address,bytes32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"valid_":"True if the drip parameters are valid."}}},"title":"AdminFaucetAuthModule"},"ast":{"absolutePath":"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol","id":97128,"exportedSymbols":{"AdminFaucetAuthModule":[97127],"EIP712":[52559],"Faucet":[97041],"IFaucetAuthModule":[97146],"SignatureChecker":[52405]},"nodeType":"SourceUnit","src":"32:2046:200","nodes":[{"id":97043,"nodeType":"PragmaDirective","src":"32:23:200","nodes":[],"literals":["solidity","0.8",".15"]},{"id":97045,"nodeType":"ImportDirective","src":"57:85:200","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol","file":"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol","nameLocation":"-1:-1:-1","scope":97128,"sourceUnit":52560,"symbolAliases":[{"foreign":{"id":97044,"name":"EIP712","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52559,"src":"66:6:200","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97047,"nodeType":"ImportDirective","src":"143:99:200","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol","file":"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol","nameLocation":"-1:-1:-1","scope":97128,"sourceUnit":52406,"symbolAliases":[{"foreign":{"id":97046,"name":"SignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52405,"src":"152:16:200","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97049,"nodeType":"ImportDirective","src":"243:60:200","nodes":[],"absolutePath":"src/periphery/faucet/authmodules/IFaucetAuthModule.sol","file":"./IFaucetAuthModule.sol","nameLocation":"-1:-1:-1","scope":97128,"sourceUnit":97147,"symbolAliases":[{"foreign":{"id":97048,"name":"IFaucetAuthModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97146,"src":"252:17:200","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97051,"nodeType":"ImportDirective","src":"304:39:200","nodes":[],"absolutePath":"src/periphery/faucet/Faucet.sol","file":"../Faucet.sol","nameLocation":"-1:-1:-1","scope":97128,"sourceUnit":97042,"symbolAliases":[{"foreign":{"id":97050,"name":"Faucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97041,"src":"313:6:200","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97127,"nodeType":"ContractDefinition","src":"521:1556:200","nodes":[{"id":97059,"nodeType":"VariableDeclaration","src":"645:30:200","nodes":[],"constant":false,"documentation":{"id":97057,"nodeType":"StructuredDocumentation","src":"587:53:200","text":"@notice Admin address that can sign off on drips."},"functionSelector":"2a0acc6a","mutability":"immutable","name":"ADMIN","nameLocation":"670:5:200","scope":97127,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97058,"name":"address","nodeType":"ElementaryTypeName","src":"645:7:200","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":97065,"nodeType":"VariableDeclaration","src":"734:104:200","nodes":[],"constant":false,"documentation":{"id":97060,"nodeType":"StructuredDocumentation","src":"682:47:200","text":"@notice EIP712 typehash for the Proof type."},"functionSelector":"8b3e3bf6","mutability":"immutable","name":"PROOF_TYPEHASH","nameLocation":"759:14:200","scope":97127,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"734:7:200","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"50726f6f66286164647265737320726563697069656e742c62797465733332206e6f6e63652c6279746573333220696429","id":97063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"786:51:200","typeDescriptions":{"typeIdentifier":"t_stringliteral_d4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e","typeString":"literal_string \"Proof(address recipient,bytes32 nonce,bytes32 id)\""},"value":"Proof(address recipient,bytes32 nonce,bytes32 id)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e","typeString":"literal_string \"Proof(address recipient,bytes32 nonce,bytes32 id)\""}],"id":97062,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"776:9:200","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":97064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"776:62:200","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":97072,"nodeType":"StructDefinition","src":"1153:90:200","nodes":[],"canonicalName":"AdminFaucetAuthModule.Proof","members":[{"constant":false,"id":97067,"mutability":"mutable","name":"recipient","nameLocation":"1184:9:200","nodeType":"VariableDeclaration","scope":97072,"src":"1176:17:200","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97066,"name":"address","nodeType":"ElementaryTypeName","src":"1176:7:200","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97069,"mutability":"mutable","name":"nonce","nameLocation":"1211:5:200","nodeType":"VariableDeclaration","scope":97072,"src":"1203:13:200","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1203:7:200","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":97071,"mutability":"mutable","name":"id","nameLocation":"1234:2:200","nodeType":"VariableDeclaration","scope":97072,"src":"1226:10:200","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1226:7:200","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Proof","nameLocation":"1160:5:200","scope":97127,"visibility":"public"},{"id":97091,"nodeType":"FunctionDefinition","src":"1427:128:200","nodes":[],"body":{"id":97090,"nodeType":"Block","src":"1524:31:200","nodes":[],"statements":[{"expression":{"id":97088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97086,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97059,"src":"1534:5:200","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97087,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97075,"src":"1542:6:200","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1534:14:200","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":97089,"nodeType":"ExpressionStatement","src":"1534:14:200"}]},"documentation":{"id":97073,"nodeType":"StructuredDocumentation","src":"1249:173:200","text":"@param _admin Admin address that can sign off on drips.\n @param _name Contract name.\n @param _version The current major version of the signing domain."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":97082,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97077,"src":"1507:5:200","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":97083,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97079,"src":"1514:8:200","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":97084,"kind":"baseConstructorSpecifier","modifierName":{"id":97081,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":52559,"src":"1500:6:200"},"nodeType":"ModifierInvocation","src":"1500:23:200"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":97080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97075,"mutability":"mutable","name":"_admin","nameLocation":"1447:6:200","nodeType":"VariableDeclaration","scope":97091,"src":"1439:14:200","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97074,"name":"address","nodeType":"ElementaryTypeName","src":"1439:7:200","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97077,"mutability":"mutable","name":"_name","nameLocation":"1469:5:200","nodeType":"VariableDeclaration","scope":97091,"src":"1455:19:200","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":97076,"name":"string","nodeType":"ElementaryTypeName","src":"1455:6:200","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":97079,"mutability":"mutable","name":"_version","nameLocation":"1490:8:200","nodeType":"VariableDeclaration","scope":97091,"src":"1476:22:200","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":97078,"name":"string","nodeType":"ElementaryTypeName","src":"1476:6:200","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1438:61:200"},"returnParameters":{"id":97085,"nodeType":"ParameterList","parameters":[],"src":"1524:0:200"},"scope":97127,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":97126,"nodeType":"FunctionDefinition","src":"1599:476:200","nodes":[],"body":{"id":97125,"nodeType":"Block","src":"1781:294:200","nodes":[],"statements":[{"expression":{"id":97123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97104,"name":"valid_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97102,"src":"1866:6:200","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":97107,"name":"ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97059,"src":"1925:5:200","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"arguments":[{"id":97112,"name":"PROOF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97065,"src":"1982:14:200","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":97113,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97095,"src":"1998:7:200","typeDescriptions":{"typeIdentifier":"t_struct$_DripParameters_$96806_memory_ptr","typeString":"struct Faucet.DripParameters memory"}},"id":97114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"recipient","nodeType":"MemberAccess","referencedDeclaration":96803,"src":"1998:17:200","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"expression":{"id":97115,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97095,"src":"2017:7:200","typeDescriptions":{"typeIdentifier":"t_struct$_DripParameters_$96806_memory_ptr","typeString":"struct Faucet.DripParameters memory"}},"id":97116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":96805,"src":"2017:13:200","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":97117,"name":"_id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97097,"src":"2032:3:200","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":97110,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1971:3:200","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":97111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1971:10:200","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":97118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1971:65:200","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":97109,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1961:9:200","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":97119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1961:76:200","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":97108,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52558,"src":"1944:16:200","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":97120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1944:94:200","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":97121,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97099,"src":"2052:6:200","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":97105,"name":"SignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52405,"src":"1875:16:200","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignatureChecker_$52405_$","typeString":"type(library SignatureChecker)"}},"id":97106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isValidSignatureNow","nodeType":"MemberAccess","referencedDeclaration":52404,"src":"1875:36:200","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes memory) view returns (bool)"}},"id":97122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1875:193:200","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1866:202:200","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97124,"nodeType":"ExpressionStatement","src":"1866:202:200"}]},"baseFunctions":[97145],"documentation":{"id":97092,"nodeType":"StructuredDocumentation","src":"1561:33:200","text":"@inheritdoc IFaucetAuthModule"},"functionSelector":"f5431ffa","implemented":true,"kind":"function","modifiers":[],"name":"verify","nameLocation":"1608:6:200","parameters":{"id":97100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97095,"mutability":"mutable","name":"_params","nameLocation":"1653:7:200","nodeType":"VariableDeclaration","scope":97126,"src":"1624:36:200","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DripParameters_$96806_memory_ptr","typeString":"struct Faucet.DripParameters"},"typeName":{"id":97094,"nodeType":"UserDefinedTypeName","pathNode":{"id":97093,"name":"Faucet.DripParameters","nodeType":"IdentifierPath","referencedDeclaration":96806,"src":"1624:21:200"},"referencedDeclaration":96806,"src":"1624:21:200","typeDescriptions":{"typeIdentifier":"t_struct$_DripParameters_$96806_storage_ptr","typeString":"struct Faucet.DripParameters"}},"visibility":"internal"},{"constant":false,"id":97097,"mutability":"mutable","name":"_id","nameLocation":"1678:3:200","nodeType":"VariableDeclaration","scope":97126,"src":"1670:11:200","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97096,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1670:7:200","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":97099,"mutability":"mutable","name":"_proof","nameLocation":"1704:6:200","nodeType":"VariableDeclaration","scope":97126,"src":"1691:19:200","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":97098,"name":"bytes","nodeType":"ElementaryTypeName","src":"1691:5:200","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1614:102:200"},"returnParameters":{"id":97103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97102,"mutability":"mutable","name":"valid_","nameLocation":"1769:6:200","nodeType":"VariableDeclaration","scope":97126,"src":"1764:11:200","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":97101,"name":"bool","nodeType":"ElementaryTypeName","src":"1764:4:200","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1763:13:200"},"scope":97127,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":97053,"name":"IFaucetAuthModule","nodeType":"IdentifierPath","referencedDeclaration":97146,"src":"555:17:200"},"id":97054,"nodeType":"InheritanceSpecifier","src":"555:17:200"},{"baseName":{"id":97055,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":52559,"src":"574:6:200"},"id":97056,"nodeType":"InheritanceSpecifier","src":"574:6:200"}],"canonicalName":"AdminFaucetAuthModule","contractDependencies":[],"contractKind":"contract","documentation":{"id":97052,"nodeType":"StructuredDocumentation","src":"345:176:200","text":"@title AdminFaucetAuthModule\n @notice FaucetAuthModule that allows an admin to sign off on a given faucet drip. Takes an admin\n as the constructor argument."},"fullyImplemented":true,"linearizedBaseContracts":[97127,52559,97146],"name":"AdminFaucetAuthModule","nameLocation":"530:21:200","scope":97128,"usedErrors":[]}],"license":"MIT"},"id":200}
{"abi":[{"type":"constructor","inputs":[{"name":"_admin","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_version","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"ADMIN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PROOF_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"verify","inputs":[{"name":"_params","type":"tuple","internalType":"struct Faucet.DripParameters","components":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"nonce","type":"bytes32","internalType":"bytes32"}]},{"name":"_id","type":"bytes32","internalType":"bytes32"},{"name":"_proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid_","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6101806040527fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e6101605234801561003657600080fd5b50604051610bd2380380610bd2833981016040819052610055916101b8565b815160209283012081519183019190912060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818801819052818301969096526060810194909452608080850193909352308483018190528151808603909301835260c094850190915281519190950120905291909152610120526001600160a01b03166101405261023a565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011d57600080fd5b81516001600160401b0380821115610137576101376100f6565b604051601f8301601f19908116603f0116810190828211818310171561015f5761015f6100f6565b8160405283815260209250868385880101111561017b57600080fd5b600091505b8382101561019d5785820183015181830184015290820190610180565b838211156101ae5760008385830101525b9695505050505050565b6000806000606084860312156101cd57600080fd5b83516001600160a01b03811681146101e457600080fd5b60208501519093506001600160401b038082111561020157600080fd5b61020d8783880161010c565b9350604086015191508082111561022357600080fd5b506102308682870161010c565b9150509250925092565b60805160a05160c05160e051610100516101205161014051610160516109286102aa60003960008181609c015261011a015260008181604b015260f601526000610481015260006104d0015260006104ab015260006104040152600061042e0152600061045801526109286000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632a0acc6a146100465780638b3e3bf614610097578063f5431ffa146100cc575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100be7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161008e565b6100df6100da366004610722565b6100ef565b604051901515815260200161008e565b60006101a47f000000000000000000000000000000000000000000000000000000000000000061019e7f00000000000000000000000000000000000000000000000000000000000000008760000151886020015188604051602001610183949392919093845273ffffffffffffffffffffffffffffffffffffffff9290921660208401526040830152606082015260800190565b604051602081830303815290604052805190602001206101ac565b8461021b565b949350505050565b60006102156101b96103ea565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b600080600061022a858561051e565b909250905060008160048111156102435761024361082f565b14801561027b57508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561028b576001925050506103e3565b6000808773ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b88886040516024016102c092919061088e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161034991906108e6565b600060405180830381855afa9150503d8060008114610384576040519150601f19603f3d011682016040523d82523d6000602084013e610389565b606091505b509150915081801561039c575080516020145b80156103dc575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906103da9083016020908101908401610902565b145b9450505050505b9392505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561045057507f000000000000000000000000000000000000000000000000000000000000000046145b1561047a57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008082516041036105545760208301516040840151606085015160001a61054887828585610563565b9450945050505061055c565b506000905060025b9250929050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561059a5750600090506003610672565b8460ff16601b141580156105b257508460ff16601c14155b156105c35750600090506004610672565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610617573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661066b57600060019250925050610672565b9150600090505b94509492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156106cd576106cd61067b565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561071a5761071a61067b565b604052919050565b6000806000838503608081121561073857600080fd5b604081121561074657600080fd5b5061074f6106aa565b843573ffffffffffffffffffffffffffffffffffffffff8116811461077357600080fd5b8152602085810135818301529093506040850135925060608501359067ffffffffffffffff808311156107a557600080fd5b828701925087601f8401126107b957600080fd5b8235818111156107cb576107cb61067b565b6107fb837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016106d3565b9150808252888382860101111561081157600080fd5b80838501848401376000838284010152508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60005b83811015610879578181015183820152602001610861565b83811115610888576000848401525b50505050565b82815260406020820152600082518060408401526108b381606085016020870161085e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600082516108f881846020870161085e565b9190910192915050565b60006020828403121561091457600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"521:1556:211:-:0;;;776:62;734:104;;1427:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2541:22:63;;;;;;;2597:25;;;;;;;;;2778;;;;2813:31;;;;2873:13;2854:32;;;;-1:-1:-1;3633:73:63;;2651:117;3633:73;;;2029:25:350;;;2070:18;;;2063:34;;;;-1:-1:-1;2113:18:350;;2106:34;;;;2156:18;;;;2149:34;;;;3700:4:63;2199:19:350;;;2192:61;;;3633:73:63;;;;;;;;;;2001:19:350;;;;3633:73:63;;;3623:84;;;;;;;2896:85;;2991:28;;;;3029:21;;-1:-1:-1;;;;;1534:14:211::1;;::::0;521:1556;;14:127:350;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:350;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:350;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:350:o;1036:729::-;1144:6;1152;1160;1213:2;1201:9;1192:7;1188:23;1184:32;1181:52;;;1229:1;1226;1219:12;1181:52;1255:16;;-1:-1:-1;;;;;1300:31:350;;1290:42;;1280:70;;1346:1;1343;1336:12;1280:70;1418:2;1403:18;;1397:25;1369:5;;-1:-1:-1;;;;;;1471:14:350;;;1468:34;;;1498:1;1495;1488:12;1468:34;1521:61;1574:7;1565:6;1554:9;1550:22;1521:61;:::i;:::-;1511:71;;1628:2;1617:9;1613:18;1607:25;1591:41;;1657:2;1647:8;1644:16;1641:36;;;1673:1;1670;1663:12;1641:36;;1696:63;1751:7;1740:8;1729:9;1725:24;1696:63;:::i;:::-;1686:73;;;1036:729;;;;;:::o;1770:489::-;521:1556:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632a0acc6a146100465780638b3e3bf614610097578063f5431ffa146100cc575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100be7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161008e565b6100df6100da366004610722565b6100ef565b604051901515815260200161008e565b60006101a47f000000000000000000000000000000000000000000000000000000000000000061019e7f00000000000000000000000000000000000000000000000000000000000000008760000151886020015188604051602001610183949392919093845273ffffffffffffffffffffffffffffffffffffffff9290921660208401526040830152606082015260800190565b604051602081830303815290604052805190602001206101ac565b8461021b565b949350505050565b60006102156101b96103ea565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b600080600061022a858561051e565b909250905060008160048111156102435761024361082f565b14801561027b57508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561028b576001925050506103e3565b6000808773ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b88886040516024016102c092919061088e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161034991906108e6565b600060405180830381855afa9150503d8060008114610384576040519150601f19603f3d011682016040523d82523d6000602084013e610389565b606091505b509150915081801561039c575080516020145b80156103dc575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906103da9083016020908101908401610902565b145b9450505050505b9392505050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561045057507f000000000000000000000000000000000000000000000000000000000000000046145b1561047a57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008082516041036105545760208301516040840151606085015160001a61054887828585610563565b9450945050505061055c565b506000905060025b9250929050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561059a5750600090506003610672565b8460ff16601b141580156105b257508460ff16601c14155b156105c35750600090506004610672565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610617573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661066b57600060019250925050610672565b9150600090505b94509492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156106cd576106cd61067b565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561071a5761071a61067b565b604052919050565b6000806000838503608081121561073857600080fd5b604081121561074657600080fd5b5061074f6106aa565b843573ffffffffffffffffffffffffffffffffffffffff8116811461077357600080fd5b8152602085810135818301529093506040850135925060608501359067ffffffffffffffff808311156107a557600080fd5b828701925087601f8401126107b957600080fd5b8235818111156107cb576107cb61067b565b6107fb837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016106d3565b9150808252888382860101111561081157600080fd5b80838501848401376000838284010152508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60005b83811015610879578181015183820152602001610861565b83811115610888576000848401525b50505050565b82815260406020820152600082518060408401526108b381606085016020870161085e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600082516108f881846020870161085e565b9190910192915050565b60006020828403121561091457600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"521:1556:211:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;645:30;;;;;;;;190:42:350;178:55;;;160:74;;148:2;133:18;645:30:211;;;;;;;;734:104;;;;;;;;391:25:350;;;379:2;364:18;734:104:211;245:177:350;1599:476:211;;;;;;:::i;:::-;;:::i;:::-;;;2718:14:350;;2711:22;2693:41;;2681:2;2666:18;1599:476:211;2553:187:350;1599:476:211;1764:11;1875:193;1925:5;1944:94;1982:14;1998:7;:17;;;2017:7;:13;;;2032:3;1971:65;;;;;;;;;;2992:25:350;;;3065:42;3053:55;;;;3048:2;3033:18;;3026:83;3140:2;3125:18;;3118:34;3183:2;3168:18;;3161:34;2979:3;2964:19;;2745:456;1971:65:211;;;;;;;;;;;;;1961:76;;;;;;1944:16;:94::i;:::-;2052:6;1875:36;:193::i;:::-;1866:202;1599:476;-1:-1:-1;;;;1599:476:211:o;4339:165:63:-;4416:7;4442:55;4464:20;:18;:20::i;:::-;4486:10;8677:57:61;;4912:66:350;8677:57:61;;;4900:79:350;4995:11;;;4988:27;;;5031:12;;;5024:28;;;8641:7:61;;5068:12:350;;8677:57:61;;;;;;;;;;;;8667:68;;;;;;8660:75;;8548:194;;;;;4442:55:63;4435:62;4339:165;-1:-1:-1;;4339:165:63:o;1039:667:62:-;1175:4;1192:17;1211:24;1239:33;1256:4;1262:9;1239:16;:33::i;:::-;1191:81;;-1:-1:-1;1191:81:62;-1:-1:-1;1295:26:62;1286:5;:35;;;;;;;;:::i;:::-;;:58;;;;;1338:6;1325:19;;:9;:19;;;1286:58;1282:100;;;1367:4;1360:11;;;;;;1282:100;1393:12;1407:19;1430:6;:17;;1484:34;;;1520:4;1526:9;1461:75;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1430:116;;;;1461:75;1430:116;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:154;;;;1564:7;:42;;;;;1587:6;:13;1604:2;1587:19;1564:42;:134;;;;-1:-1:-1;1622:29:62;;1663:34;;1622:29;;;;;;;;;;;;:::i;:::-;:76;1564:134;1556:143;;;;;;1039:667;;;;;;:::o;3143:308:63:-;3196:7;3227:4;3219:29;3236:12;3219:29;;:66;;;;;3269:16;3252:13;:33;3219:66;3215:230;;;-1:-1:-1;3308:24:63;;3143:308::o;3215:230::-;-1:-1:-1;3633:73:63;;;3392:10;3633:73;;;;5350:25:350;;;;3404:12:63;5391:18:350;;;5384:34;3418:15:63;5434:18:350;;;5427:34;3677:13:63;5477:18:350;;;5470:34;3700:4:63;5520:19:350;;;;5513:84;;;;3633:73:63;;;;;;;;;;5322:19:350;;;;3633:73:63;;;3623:84;;;;;;3143:308::o;2243:730:61:-;2324:7;2333:12;2361:9;:16;2381:2;2361:22;2357:610;;2697:4;2682:20;;2676:27;2746:4;2731:20;;2725:27;2803:4;2788:20;;2782:27;2399:9;2774:36;2844:25;2855:4;2774:36;2676:27;2725;2844:10;:25::i;:::-;2837:32;;;;;;;;;2357:610;-1:-1:-1;2916:1:61;;-1:-1:-1;2920:35:61;2357:610;2243:730;;;;;:::o;5167:1603::-;5293:7;;6217:66;6204:79;;6200:161;;;-1:-1:-1;6315:1:61;;-1:-1:-1;6319:30:61;6299:51;;6200:161;6374:1;:7;;6379:2;6374:7;;:18;;;;;6385:1;:7;;6390:2;6385:7;;6374:18;6370:100;;;-1:-1:-1;6424:1:61;;-1:-1:-1;6428:30:61;6408:51;;6370:100;6581:24;;;6564:14;6581:24;;;;;;;;;5835:25:350;;;5908:4;5896:17;;5876:18;;;5869:45;;;;5930:18;;;5923:34;;;5973:18;;;5966:34;;;6581:24:61;;5807:19:350;;6581:24:61;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6581:24:61;;;;;;-1:-1:-1;;6619:20:61;;;6615:101;;6671:1;6675:29;6655:50;;;;;;;6615:101;6734:6;-1:-1:-1;6742:20:61;;-1:-1:-1;5167:1603:61;;;;;;;;:::o;427:184:350:-;479:77;476:1;469:88;576:4;573:1;566:15;600:4;597:1;590:15;616:256;687:4;681:11;;;719:17;;766:18;751:34;;787:22;;;748:62;745:88;;;813:18;;:::i;:::-;849:4;842:24;616:256;:::o;877:334::-;948:2;942:9;1004:2;994:13;;1009:66;990:86;978:99;;1107:18;1092:34;;1128:22;;;1089:62;1086:88;;;1154:18;;:::i;:::-;1190:2;1183:22;877:334;;-1:-1:-1;877:334:350:o;1216:1332::-;1336:6;1344;1352;1396:9;1387:7;1383:23;1426:3;1422:2;1418:12;1415:32;;;1443:1;1440;1433:12;1415:32;1467:4;1463:2;1459:13;1456:33;;;1485:1;1482;1475:12;1456:33;;1511:21;;:::i;:::-;1569:9;1556:23;1623:42;1614:7;1610:56;1601:7;1598:69;1588:97;;1681:1;1678;1671:12;1588:97;1694:22;;1735:2;1782:18;;;1769:32;1753:14;;;1746:56;1701:5;;-1:-1:-1;1873:4:350;1858:20;;1845:34;;-1:-1:-1;1930:2:350;1915:18;;1902:32;;1953:18;1983:14;;;1980:34;;;2010:1;2007;2000:12;1980:34;2048:6;2037:9;2033:22;2023:32;;2093:7;2086:4;2082:2;2078:13;2074:27;2064:55;;2115:1;2112;2105:12;2064:55;2151:2;2138:16;2173:2;2169;2166:10;2163:36;;;2179:18;;:::i;:::-;2221:112;2329:2;2260:66;2253:4;2249:2;2245:13;2241:86;2237:95;2221:112;:::i;:::-;2208:125;;2356:2;2349:5;2342:17;2396:7;2391:2;2386;2382;2378:11;2374:20;2371:33;2368:53;;;2417:1;2414;2407:12;2368:53;2472:2;2467;2463;2459:11;2454:2;2447:5;2443:14;2430:45;2516:1;2511:2;2506;2499:5;2495:14;2491:23;2484:34;;2537:5;2527:15;;;;;1216:1332;;;;;:::o;3206:184::-;3258:77;3255:1;3248:88;3355:4;3352:1;3345:15;3379:4;3376:1;3369:15;3395:258;3467:1;3477:113;3491:6;3488:1;3485:13;3477:113;;;3567:11;;;3561:18;3548:11;;;3541:39;3513:2;3506:10;3477:113;;;3608:6;3605:1;3602:13;3599:48;;;3643:1;3634:6;3629:3;3625:16;3618:27;3599:48;;3395:258;;;:::o;3658:511::-;3833:6;3822:9;3815:25;3876:2;3871;3860:9;3856:18;3849:30;3796:4;3908:6;3902:13;3951:6;3946:2;3935:9;3931:18;3924:34;3967:66;4026:6;4021:2;4010:9;4006:18;4001:2;3993:6;3989:15;3967:66;:::i;:::-;4085:2;4073:15;4090:66;4069:88;4054:104;;;;4160:2;4050:113;;3658:511;-1:-1:-1;;;3658:511:350:o;4174:274::-;4303:3;4341:6;4335:13;4357:53;4403:6;4398:3;4391:4;4383:6;4379:17;4357:53;:::i;:::-;4426:16;;;;;4174:274;-1:-1:-1;;4174:274:350:o;4453:184::-;4523:6;4576:2;4564:9;4555:7;4551:23;4547:32;4544:52;;;4592:1;4589;4582:12;4544:52;-1:-1:-1;4615:16:350;;4453:184;-1:-1:-1;4453:184:350:o","linkReferences":{},"immutableReferences":{"103937":[{"start":75,"length":32},{"start":246,"length":32}],"103943":[{"start":156,"length":32},{"start":282,"length":32}],"52411":[{"start":1112,"length":32}],"52413":[{"start":1070,"length":32}],"52415":[{"start":1028,"length":32}],"52417":[{"start":1195,"length":32}],"52419":[{"start":1232,"length":32}],"52421":[{"start":1153,"length":32}]}},"methodIdentifiers":{"ADMIN()":"2a0acc6a","PROOF_TYPEHASH()":"8b3e3bf6","verify((address,bytes32),bytes32,bytes)":"f5431ffa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_version\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ADMIN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROOF_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"internalType\":\"struct Faucet.DripParameters\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_admin\":\"Admin address that can sign off on drips.\",\"_name\":\"Contract name.\",\"_version\":\"The current major version of the signing domain.\"}},\"verify((address,bytes32),bytes32,bytes)\":{\"params\":{\"_id\":\"Authentication ID to verify.\",\"_params\":\"Drip parameters to verify.\",\"_proof\":\"Authentication proof to verify.\"},\"returns\":{\"valid_\":\"True if the drip parameters are valid.\"}}},\"title\":\"AdminFaucetAuthModule\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ADMIN()\":{\"notice\":\"Admin address that can sign off on drips.\"},\"PROOF_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the Proof type.\"},\"verify((address,bytes32),bytes32,bytes)\":{\"notice\":\"Verifies that the given drip parameters are valid.\"}},\"notice\":\"FaucetAuthModule that allows an admin to sign off on a given faucet drip. Takes an admin as the constructor argument.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol\":\"AdminFaucetAuthModule\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"src/periphery/faucet/Faucet.sol\":{\"keccak256\":\"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727\",\"dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS\"]},\"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol\":{\"keccak256\":\"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7\",\"dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r\"]},\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":{\"keccak256\":\"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850\",\"dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_version","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"ADMIN","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROOF_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Faucet.DripParameters","name":"_params","type":"tuple","components":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"}]},{"internalType":"bytes32","name":"_id","type":"bytes32"},{"internalType":"bytes","name":"_proof","type":"bytes"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"valid_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_admin":"Admin address that can sign off on drips.","_name":"Contract name.","_version":"The current major version of the signing domain."}},"verify((address,bytes32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"valid_":"True if the drip parameters are valid."}}},"version":1},"userdoc":{"kind":"user","methods":{"ADMIN()":{"notice":"Admin address that can sign off on drips."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"verify((address,bytes32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol":"AdminFaucetAuthModule"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"},"src/periphery/faucet/Faucet.sol":{"keccak256":"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb","urls":["bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727","dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS"],"license":"MIT"},"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol":{"keccak256":"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e","urls":["bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7","dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r"],"license":"MIT"},"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":{"keccak256":"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d","urls":["bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850","dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"ADMIN()":{"notice":"Admin address that can sign off on drips."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"verify((address,bytes32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"notice":"FaucetAuthModule that allows an admin to sign off on a given faucet drip. Takes an admin as the constructor argument."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_admin":"Admin address that can sign off on drips.","_name":"Contract name.","_version":"The current major version of the signing domain."}},"verify((address,bytes32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"valid_":"True if the drip parameters are valid."}}},"title":"AdminFaucetAuthModule"},"id":211}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_absolutePrestate","type":"bytes32","internalType":"Claim"},{"name":"_oracle","type":"address","internalType":"contract PreimageOracle"}],"stateMutability":"nonpayable"},{"type":"function","name":"oracle","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPreimageOracle"}],"stateMutability":"view"},{"type":"function","name":"step","inputs":[{"name":"_stateData","type":"bytes","internalType":"bytes"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_localContext","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"postState_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x60a060405234801561001057600080fd5b506040516105b43803806105b483398101604081905261002f91610059565b608091909152600080546001600160a01b0319166001600160a01b03909216919091179055610096565b6000806040838503121561006c57600080fd5b825160208401519092506001600160a01b038116811461008b57600080fd5b809150509250929050565b6080516105046100b0600039600060af01526105046000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637dc0d1d01461003b578063e14ced3214610085575b600080fd5b60005461005b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610098610093366004610395565b6100a6565b60405190815260200161007c565b600080600060087f0000000000000000000000000000000000000000000000000000000000000000901b600889896040516100e2929190610409565b6040518091039020901b036101d9576000805473ffffffffffffffffffffffffffffffffffffffff1663e03110e161011b60048861029f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526004810191909152600060248201526044016040805180830381865afa158015610175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101999190610419565b50640ffffffff0607c82901c169350905063ffffffff608082901c1660006101c38a8c018c61043d565b90506101cf8582610485565b9350505050610206565b6101e58789018961049d565b9092509050816101f4816104bf565b9250508080610202906104bf565b9150505b6040805160208101849052908101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001798975050505050505050565b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831617610345818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b60008083601f84011261035e57600080fd5b50813567ffffffffffffffff81111561037657600080fd5b60208301915083602082850101111561038e57600080fd5b9250929050565b6000806000806000606086880312156103ad57600080fd5b853567ffffffffffffffff808211156103c557600080fd5b6103d189838a0161034c565b909750955060208801359150808211156103ea57600080fd5b506103f78882890161034c565b96999598509660400135949350505050565b8183823760009101908152919050565b6000806040838503121561042c57600080fd5b505080516020909101519092909150565b60006020828403121561044f57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561049857610498610456565b500190565b600080604083850312156104b057600080fd5b50508035926020909101359150565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036104f0576104f0610456565b506001019056fea164736f6c634300080f000a","sourceMap":"490:1557:293:-:0;;;615:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;686:37;;;;;733:6;:16;;-1:-1:-1;;;;;;733:16:293;-1:-1:-1;;;;;733:16:293;;;;;;;;;490:1557;;14:402:334;144:6;152;205:2;193:9;184:7;180:23;176:32;173:52;;;221:1;218;211:12;173:52;244:16;;303:2;288:18;;282:25;244:16;;-1:-1:-1;;;;;;336:31:334;;326:42;;316:70;;382:1;379;372:12;316:70;405:5;395:15;;;14:402;;;;;:::o;:::-;490:1557:293;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80637dc0d1d01461003b578063e14ced3214610085575b600080fd5b60005461005b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610098610093366004610395565b6100a6565b60405190815260200161007c565b600080600060087f0000000000000000000000000000000000000000000000000000000000000000901b600889896040516100e2929190610409565b6040518091039020901b036101d9576000805473ffffffffffffffffffffffffffffffffffffffff1663e03110e161011b60048861029f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526004810191909152600060248201526044016040805180830381865afa158015610175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101999190610419565b50640ffffffff0607c82901c169350905063ffffffff608082901c1660006101c38a8c018c61043d565b90506101cf8582610485565b9350505050610206565b6101e58789018961049d565b9092509050816101f4816104bf565b9250508080610202906104bf565b9150505b6040805160208101849052908101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001798975050505050505050565b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831617610345818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b60008083601f84011261035e57600080fd5b50813567ffffffffffffffff81111561037657600080fd5b60208301915083602082850101111561038e57600080fd5b9250929050565b6000806000806000606086880312156103ad57600080fd5b853567ffffffffffffffff808211156103c557600080fd5b6103d189838a0161034c565b909750955060208801359150808211156103ea57600080fd5b506103f78882890161034c565b96999598509660400135949350505050565b8183823760009101908152919050565b6000806040838503121561042c57600080fd5b505080516020909101519092909150565b60006020828403121561044f57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561049857610498610456565b500190565b600080604083850312156104b057600080fd5b50508035926020909101359150565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036104f0576104f0610456565b506001019056fea164736f6c634300080f000a","sourceMap":"490:1557:293:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;579:29;;;;;;;;;;;;215:42:334;203:55;;;185:74;;173:2;158:18;579:29:293;;;;;;;;794:1251;;;;;;:::i;:::-;;:::i;:::-;;;1558:25:334;;;1546:2;1531:18;794:1251:293;1412:177:334;794:1251:293;951:18;985;1013:13;1108:1;1086:17;1073:36;;1066:1;1051:10;;1041:21;;;;;;;:::i;:::-;;;;;;;;:26;;1040:70;1036:803;;1211:11;1227:6;;;;:19;1264:86;5073:4:179;1336:13:293;1264:28;:86::i;:::-;1227:140;;;;;;;;;;;;;2052:25:334;;;;1352:1:293;2093:18:334;;;2086:34;2025:18;;1227:140:293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1474:26:293;;;;;;;-1:-1:-1;1210:157:293;-1:-1:-1;1437:10:293;1430:3;1414:19;;;1413:34;1381:29;1548:33;;;;1559:10;1548:33;:::i;:::-;1514:67;-1:-1:-1;1603:34:293;1627:10;1514:67;1603:34;:::i;:::-;1595:42;;1112:536;;;1036:803;;;1739:42;;;;1750:10;1739:42;:::i;:::-;1717:64;;-1:-1:-1;1717:64:293;-1:-1:-1;1717:64:293;1795:12;1717:64;1795:12;:::i;:::-;;;;1821:7;;;;;:::i;:::-;;;;1036:803;1899:29;;;;;;2052:25:334;;;2093:18;;;2086:34;;;2025:18;;1899:29:293;;;;;;;;;;;;;1889:40;;1899:29;1889:40;;;;1995:19;1979:36;2017:11;1976:53;;794:1251;-1:-1:-1;;;;;;;;794:1251:293:o;552:449:147:-;835:11;860:19;848:32;;832:49;965:29;832:49;980:13;1676:4;1670:11;;1533:21;1787:15;;;1828:8;1822:4;1815:22;1850:27;;;1996:4;1983:18;;;2098:17;;2003:19;1979:44;2025:11;1976:61;;1455:676;965:29;958:36;552:449;-1:-1:-1;;;552:449:147:o;270:347:334:-;321:8;331:6;385:3;378:4;370:6;366:17;362:27;352:55;;403:1;400;393:12;352:55;-1:-1:-1;426:20:334;;469:18;458:30;;455:50;;;501:1;498;491:12;455:50;538:4;530:6;526:17;514:29;;590:3;583:4;574:6;566;562:19;558:30;555:39;552:59;;;607:1;604;597:12;552:59;270:347;;;;;:::o;622:785::-;721:6;729;737;745;753;806:2;794:9;785:7;781:23;777:32;774:52;;;822:1;819;812:12;774:52;862:9;849:23;891:18;932:2;924:6;921:14;918:34;;;948:1;945;938:12;918:34;987:58;1037:7;1028:6;1017:9;1013:22;987:58;:::i;:::-;1064:8;;-1:-1:-1;961:84:334;-1:-1:-1;1152:2:334;1137:18;;1124:32;;-1:-1:-1;1168:16:334;;;1165:36;;;1197:1;1194;1187:12;1165:36;;1236:60;1288:7;1277:8;1266:9;1262:24;1236:60;:::i;:::-;622:785;;;;-1:-1:-1;1315:8:334;1397:2;1382:18;1369:32;;622:785;-1:-1:-1;;;;622:785:334:o;1594:271::-;1777:6;1769;1764:3;1751:33;1733:3;1803:16;;1828:13;;;1803:16;1594:271;-1:-1:-1;1594:271:334:o;2131:245::-;2210:6;2218;2271:2;2259:9;2250:7;2246:23;2242:32;2239:52;;;2287:1;2284;2277:12;2239:52;-1:-1:-1;;2310:16:334;;2366:2;2351:18;;;2345:25;2310:16;;2345:25;;-1:-1:-1;2131:245:334:o;2381:180::-;2440:6;2493:2;2481:9;2472:7;2468:23;2464:32;2461:52;;;2509:1;2506;2499:12;2461:52;-1:-1:-1;2532:23:334;;2381:180;-1:-1:-1;2381:180:334:o;2566:184::-;2618:77;2615:1;2608:88;2715:4;2712:1;2705:15;2739:4;2736:1;2729:15;2755:128;2795:3;2826:1;2822:6;2819:1;2816:13;2813:39;;;2832:18;;:::i;:::-;-1:-1:-1;2868:9:334;;2755:128::o;2888:248::-;2956:6;2964;3017:2;3005:9;2996:7;2992:23;2988:32;2985:52;;;3033:1;3030;3023:12;2985:52;-1:-1:-1;;3056:23:334;;;3126:2;3111:18;;;3098:32;;-1:-1:-1;2888:248:334:o;3141:195::-;3180:3;3211:66;3204:5;3201:77;3198:103;;3281:18;;:::i;:::-;-1:-1:-1;3328:1:334;3317:13;;3141:195::o","linkReferences":{},"immutableReferences":{"172903":[{"start":175,"length":32}]}},"methodIdentifiers":{"oracle()":"7dc0d1d0","step(bytes,bytes,bytes32)":"e14ced32"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"_absolutePrestate\",\"type\":\"bytes32\"},{\"internalType\":\"contract PreimageOracle\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract IPreimageOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_localContext\",\"type\":\"bytes32\"}],\"name\":\"step\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"postState_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A mock VM for the purpose of testing the dispute game infrastructure. Note that this only works for games with an execution trace subgame max depth of 3 (8 instructions per subgame).\",\"kind\":\"dev\",\"methods\":{\"step(bytes,bytes,bytes32)\":{\"params\":{\"_localContext\":\"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.\",\"_proof\":\"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.\",\"_stateData\":\"The raw opaque prestate data.\"},\"returns\":{\"postState_\":\"The hash of the post state witness after the state transition.\"}}},\"title\":\"AlphabetVM\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"oracle()\":{\"notice\":\"Returns the preimage oracle used by the state machine.\"},\"step(bytes,bytes,bytes32)\":{\"notice\":\"Performs the state transition from a given prestate and returns the hash of the post state witness.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/AlphabetVM.sol\":\"AlphabetVM\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/lib-keccak/contracts/lib/LibKeccak.sol\":{\"keccak256\":\"0x8dde9ac5972d35fc752b3aae40491bdd648e6d910bdc3cdba4256f56abafe672\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea269cbccc1eda4a57c6681d3c7648cd1ae3303ce1a3cdc1c703334d4be104f1\",\"dweb:/ipfs/QmRDE2GT8yRebnPbAZLBY9s3CHZt1ZjRXiRm8qufV8gpGx\"]},\"src/cannon/PreimageKeyLib.sol\":{\"keccak256\":\"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc\",\"dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm\"]},\"src/cannon/PreimageOracle.sol\":{\"keccak256\":\"0xf5461ddb6a2488afcc747dbecdb120780030f471f2a995515216a6a5891f9f5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c615f92e1ff5b936ccb0d5f443c8e0471a35c3b4908f80a1de677d2e27171b5\",\"dweb:/ipfs/Qmf7nroVJYL7PYEgBYfybxEDxWyrbCaNmfYQzfuWRuL3wo\"]},\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x66c1a22ff6d8a9ab9f5d12791c15c5273cb7f4421b1b5c6d1a76a166d3af418f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f893baa1ac7eba3e24b80844dd16181dc9824277f896ab1c2eb7af22a096cb99\",\"dweb:/ipfs/QmVtK36UpWdozR7UHEjANi6BVPCDTm5BF2HRhjRZg9MS3e\"]},\"src/cannon/libraries/CannonErrors.sol\":{\"keccak256\":\"0x95914a5c5d79738c7d7859672002466722c32a6c6b259d86e4fbbcbd28a5e777\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4fd6141131456f5784e7af9b959a6df6e751dace4160587abdf23da630ade24\",\"dweb:/ipfs/QmPvCiNQ8eLT4k7XirXy9zD2HBoor8G1MxCm758c4Jf3ue\"]},\"src/cannon/libraries/CannonTypes.sol\":{\"keccak256\":\"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39\",\"dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe\"]},\"src/dispute/interfaces/IBigStepper.sol\":{\"keccak256\":\"0x9c75967a7647640522967e294613191553839cfa56a041ab009c9b0c6edb04f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0188af98bdeaf1b362f3800e844bc9c5b888bd2df8ddbecffdb18c0e35c9be29\",\"dweb:/ipfs/QmUMKsCn56D8qJdhXCHqEHXJmLmdLW322crjS2nbqQJ1EZ\"]},\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]},\"test/mocks/AlphabetVM.sol\":{\"keccak256\":\"0xb8ffc58dbb7cef854ae525291f355704ac6228c58270b11e4c56402d3f2d3341\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dcf5d18e7c768317b10b6ba34bc500c7d15a2acd097fc08b8a04ec7b06c11f49\",\"dweb:/ipfs/QmRcPaFhEG6uQjaTpU1qD88kKVSuSfCMxaCfMyLTViaaRZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"Claim","name":"_absolutePrestate","type":"bytes32"},{"internalType":"contract PreimageOracle","name":"_oracle","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"oracle","outputs":[{"internalType":"contract IPreimageOracle","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_stateData","type":"bytes"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"bytes32","name":"_localContext","type":"bytes32"}],"stateMutability":"view","type":"function","name":"step","outputs":[{"internalType":"bytes32","name":"postState_","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"version":1},"userdoc":{"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/AlphabetVM.sol":"AlphabetVM"},"evmVersion":"london","libraries":{}},"sources":{"lib/lib-keccak/contracts/lib/LibKeccak.sol":{"keccak256":"0x8dde9ac5972d35fc752b3aae40491bdd648e6d910bdc3cdba4256f56abafe672","urls":["bzz-raw://ea269cbccc1eda4a57c6681d3c7648cd1ae3303ce1a3cdc1c703334d4be104f1","dweb:/ipfs/QmRDE2GT8yRebnPbAZLBY9s3CHZt1ZjRXiRm8qufV8gpGx"],"license":"MIT"},"src/cannon/PreimageKeyLib.sol":{"keccak256":"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85","urls":["bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc","dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm"],"license":"MIT"},"src/cannon/PreimageOracle.sol":{"keccak256":"0xf5461ddb6a2488afcc747dbecdb120780030f471f2a995515216a6a5891f9f5c","urls":["bzz-raw://1c615f92e1ff5b936ccb0d5f443c8e0471a35c3b4908f80a1de677d2e27171b5","dweb:/ipfs/Qmf7nroVJYL7PYEgBYfybxEDxWyrbCaNmfYQzfuWRuL3wo"],"license":"MIT"},"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x66c1a22ff6d8a9ab9f5d12791c15c5273cb7f4421b1b5c6d1a76a166d3af418f","urls":["bzz-raw://f893baa1ac7eba3e24b80844dd16181dc9824277f896ab1c2eb7af22a096cb99","dweb:/ipfs/QmVtK36UpWdozR7UHEjANi6BVPCDTm5BF2HRhjRZg9MS3e"],"license":"MIT"},"src/cannon/libraries/CannonErrors.sol":{"keccak256":"0x95914a5c5d79738c7d7859672002466722c32a6c6b259d86e4fbbcbd28a5e777","urls":["bzz-raw://e4fd6141131456f5784e7af9b959a6df6e751dace4160587abdf23da630ade24","dweb:/ipfs/QmPvCiNQ8eLT4k7XirXy9zD2HBoor8G1MxCm758c4Jf3ue"],"license":"MIT"},"src/cannon/libraries/CannonTypes.sol":{"keccak256":"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de","urls":["bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39","dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe"],"license":"MIT"},"src/dispute/interfaces/IBigStepper.sol":{"keccak256":"0x9c75967a7647640522967e294613191553839cfa56a041ab009c9b0c6edb04f1","urls":["bzz-raw://0188af98bdeaf1b362f3800e844bc9c5b888bd2df8ddbecffdb18c0e35c9be29","dweb:/ipfs/QmUMKsCn56D8qJdhXCHqEHXJmLmdLW322crjS2nbqQJ1EZ"],"license":"MIT"},"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"},"test/mocks/AlphabetVM.sol":{"keccak256":"0xb8ffc58dbb7cef854ae525291f355704ac6228c58270b11e4c56402d3f2d3341","urls":["bzz-raw://dcf5d18e7c768317b10b6ba34bc500c7d15a2acd097fc08b8a04ec7b06c11f49","dweb:/ipfs/QmRcPaFhEG6uQjaTpU1qD88kKVSuSfCMxaCfMyLTViaaRZ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":172906,"contract":"test/mocks/AlphabetVM.sol:AlphabetVM","label":"oracle","offset":0,"slot":"0","type":"t_contract(IPreimageOracle)87827"}],"types":{"t_contract(IPreimageOracle)87827":{"encoding":"inplace","label":"contract IPreimageOracle","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}}},"devdoc":{"version":1,"kind":"dev","details":"A mock VM for the purpose of testing the dispute game infrastructure. Note that this only works for games with an execution trace subgame max depth of 3 (8 instructions per subgame).","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"title":"AlphabetVM"},"ast":{"absolutePath":"test/mocks/AlphabetVM.sol","id":173040,"exportedSymbols":{"AlphabetVM":[173039],"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"IBigStepper":[90440],"IPreimageOracle":[87827],"LibClaim":[91135],"LibClock":[91122],"LibDuration":[91148],"LibGameId":[90831],"LibGameType":[91200],"LibHash":[91161],"LibHashing":[90853],"LibPosition":[91067],"LibTimestamp":[91174],"LibVMStatus":[91187],"LocalPreimageKey":[93134],"Position":[93052],"PreimageKeyLib":[86417],"PreimageOracle":[87765],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:2016:293","nodes":[{"id":172890,"nodeType":"PragmaDirective","src":"32:24:293","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":172893,"nodeType":"ImportDirective","src":"58:86:293","nodes":[],"absolutePath":"src/dispute/interfaces/IBigStepper.sol","file":"src/dispute/interfaces/IBigStepper.sol","nameLocation":"-1:-1:-1","scope":173040,"sourceUnit":90441,"symbolAliases":[{"foreign":{"id":172891,"name":"IBigStepper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90440,"src":"67:11:293","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":172892,"name":"IPreimageOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87827,"src":"80:15:293","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":172896,"nodeType":"ImportDirective","src":"145:79:293","nodes":[],"absolutePath":"src/cannon/PreimageOracle.sol","file":"src/cannon/PreimageOracle.sol","nameLocation":"-1:-1:-1","scope":173040,"sourceUnit":87766,"symbolAliases":[{"foreign":{"id":172894,"name":"PreimageOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87765,"src":"154:14:293","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":172895,"name":"PreimageKeyLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86417,"src":"170:14:293","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":172897,"nodeType":"ImportDirective","src":"225:40:293","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":173040,"sourceUnit":93135,"symbolAliases":[],"unitAlias":""},{"id":173039,"nodeType":"ContractDefinition","src":"490:1557:293","nodes":[{"id":172903,"nodeType":"VariableDeclaration","src":"531:42:293","nodes":[],"constant":false,"mutability":"immutable","name":"ABSOLUTE_PRESTATE","nameLocation":"556:17:293","scope":173039,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":172902,"nodeType":"UserDefinedTypeName","pathNode":{"id":172901,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"531:5:293"},"referencedDeclaration":93038,"src":"531:5:293","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"},{"id":172906,"nodeType":"VariableDeclaration","src":"579:29:293","nodes":[],"baseFunctions":[90439],"constant":false,"functionSelector":"7dc0d1d0","mutability":"mutable","name":"oracle","nameLocation":"602:6:293","scope":173039,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$87827","typeString":"contract IPreimageOracle"},"typeName":{"id":172905,"nodeType":"UserDefinedTypeName","pathNode":{"id":172904,"name":"IPreimageOracle","nodeType":"IdentifierPath","referencedDeclaration":87827,"src":"579:15:293"},"referencedDeclaration":87827,"src":"579:15:293","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$87827","typeString":"contract IPreimageOracle"}},"visibility":"public"},{"id":172924,"nodeType":"FunctionDefinition","src":"615:141:293","nodes":[],"body":{"id":172923,"nodeType":"Block","src":"676:80:293","nodes":[],"statements":[{"expression":{"id":172917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":172915,"name":"ABSOLUTE_PRESTATE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172903,"src":"686:17:293","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":172916,"name":"_absolutePrestate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172909,"src":"706:17:293","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"src":"686:37:293","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"id":172918,"nodeType":"ExpressionStatement","src":"686:37:293"},{"expression":{"id":172921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":172919,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172906,"src":"733:6:293","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$87827","typeString":"contract IPreimageOracle"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":172920,"name":"_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172912,"src":"742:7:293","typeDescriptions":{"typeIdentifier":"t_contract$_PreimageOracle_$87765","typeString":"contract PreimageOracle"}},"src":"733:16:293","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$87827","typeString":"contract IPreimageOracle"}},"id":172922,"nodeType":"ExpressionStatement","src":"733:16:293"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":172913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":172909,"mutability":"mutable","name":"_absolutePrestate","nameLocation":"633:17:293","nodeType":"VariableDeclaration","scope":172924,"src":"627:23:293","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":172908,"nodeType":"UserDefinedTypeName","pathNode":{"id":172907,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"627:5:293"},"referencedDeclaration":93038,"src":"627:5:293","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":172912,"mutability":"mutable","name":"_oracle","nameLocation":"667:7:293","nodeType":"VariableDeclaration","scope":172924,"src":"652:22:293","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PreimageOracle_$87765","typeString":"contract PreimageOracle"},"typeName":{"id":172911,"nodeType":"UserDefinedTypeName","pathNode":{"id":172910,"name":"PreimageOracle","nodeType":"IdentifierPath","referencedDeclaration":87765,"src":"652:14:293"},"referencedDeclaration":87765,"src":"652:14:293","typeDescriptions":{"typeIdentifier":"t_contract$_PreimageOracle_$87765","typeString":"contract PreimageOracle"}},"visibility":"internal"}],"src":"626:49:293"},"returnParameters":{"id":172914,"nodeType":"ParameterList","parameters":[],"src":"676:0:293"},"scope":173039,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":173038,"nodeType":"FunctionDefinition","src":"794:1251:293","nodes":[],"body":{"id":173037,"nodeType":"Block","src":"975:1070:293","nodes":[],"statements":[{"assignments":[172937],"declarations":[{"constant":false,"id":172937,"mutability":"mutable","name":"traceIndex","nameLocation":"993:10:293","nodeType":"VariableDeclaration","scope":173037,"src":"985:18:293","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":172936,"name":"uint256","nodeType":"ElementaryTypeName","src":"985:7:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":172938,"nodeType":"VariableDeclarationStatement","src":"985:18:293"},{"assignments":[172940],"declarations":[{"constant":false,"id":172940,"mutability":"mutable","name":"claim","nameLocation":"1021:5:293","nodeType":"VariableDeclaration","scope":173037,"src":"1013:13:293","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":172939,"name":"uint256","nodeType":"ElementaryTypeName","src":"1013:7:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":172941,"nodeType":"VariableDeclarationStatement","src":"1013:13:293"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":172955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":172946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":172943,"name":"_stateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172927,"src":"1051:10:293","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":172942,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1041:9:293","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":172944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1041:21:293","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":172945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1066:1:293","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1041:26:293","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":172947,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1040:28:293","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":172953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":172950,"name":"ABSOLUTE_PRESTATE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172903,"src":"1086:17:293","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}],"expression":{"id":172948,"name":"Claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93038,"src":"1073:5:293","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Claim_$93038_$","typeString":"type(Claim)"}},"id":172949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"unwrap","nodeType":"MemberAccess","src":"1073:12:293","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_Claim_$93038_$returns$_t_bytes32_$","typeString":"function (Claim) pure returns (bytes32)"}},"id":172951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1073:31:293","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":172952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1108:1:293","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1073:36:293","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":172954,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1072:38:293","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1040:70:293","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":173024,"nodeType":"Block","src":"1654:185:293","statements":[{"expression":{"id":173016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":173004,"name":"traceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172937,"src":"1718:10:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":173005,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172940,"src":"1730:5:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":173006,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1717:19:293","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":173009,"name":"_stateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172927,"src":"1750:10:293","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":173011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1763:7:293","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":173010,"name":"uint256","nodeType":"ElementaryTypeName","src":"1763:7:293","typeDescriptions":{}}},{"id":173013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1772:7:293","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":173012,"name":"uint256","nodeType":"ElementaryTypeName","src":"1772:7:293","typeDescriptions":{}}}],"id":173014,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1762:18:293","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256))"}],"expression":{"id":173007,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1739:3:293","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":173008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"1739:10:293","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":173015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1739:42:293","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"1717:64:293","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173017,"nodeType":"ExpressionStatement","src":"1717:64:293"},{"expression":{"id":173019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1795:12:293","subExpression":{"id":173018,"name":"traceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172937,"src":"1795:10:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":173020,"nodeType":"ExpressionStatement","src":"1795:12:293"},{"expression":{"id":173022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1821:7:293","subExpression":{"id":173021,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172940,"src":"1821:5:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":173023,"nodeType":"ExpressionStatement","src":"1821:7:293"}]},"id":173025,"nodeType":"IfStatement","src":"1036:803:293","trueBody":{"id":173003,"nodeType":"Block","src":"1112:536:293","statements":[{"assignments":[172957,null],"declarations":[{"constant":false,"id":172957,"mutability":"mutable","name":"dat","nameLocation":"1219:3:293","nodeType":"VariableDeclaration","scope":173003,"src":"1211:11:293","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":172956,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1211:7:293","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},null],"id":172968,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":172962,"name":"LocalPreimageKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93134,"src":"1293:16:293","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LocalPreimageKey_$93134_$","typeString":"type(library LocalPreimageKey)"}},"id":172963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"STARTING_L2_BLOCK_NUMBER","nodeType":"MemberAccess","referencedDeclaration":93129,"src":"1293:41:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":172964,"name":"_localContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172931,"src":"1336:13:293","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":172960,"name":"PreimageKeyLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86417,"src":"1264:14:293","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PreimageKeyLib_$86417_$","typeString":"type(library PreimageKeyLib)"}},"id":172961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"localizeIdent","nodeType":"MemberAccess","referencedDeclaration":86394,"src":"1264:28:293","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32) view returns (bytes32)"}},"id":172965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1264:86:293","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":172966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1352:1:293","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":172958,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172906,"src":"1227:6:293","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$87827","typeString":"contract IPreimageOracle"}},"id":172959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"readPreimage","nodeType":"MemberAccess","referencedDeclaration":87780,"src":"1227:19:293","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$_t_uint256_$","typeString":"function (bytes32,uint256) view external returns (bytes32,uint256)"}},"id":172967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1227:140:293","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_uint256_$","typeString":"tuple(bytes32,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1210:157:293"},{"assignments":[172970],"declarations":[{"constant":false,"id":172970,"mutability":"mutable","name":"startingL2BlockNumber","nameLocation":"1389:21:293","nodeType":"VariableDeclaration","scope":173003,"src":"1381:29:293","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":172969,"name":"uint256","nodeType":"ElementaryTypeName","src":"1381:7:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":172980,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":172979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":172976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":172973,"name":"dat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172957,"src":"1422:3:293","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":172972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1414:7:293","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":172971,"name":"uint256","nodeType":"ElementaryTypeName","src":"1414:7:293","typeDescriptions":{}}},"id":172974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:12:293","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":172975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1430:3:293","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"1414:19:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":172977,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1413:21:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784646464646464646","id":172978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1437:10:293","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xFFFFFFFF"},"src":"1413:34:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1381:66:293"},{"expression":{"id":172985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":172981,"name":"traceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172937,"src":"1461:10:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":172984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":172982,"name":"startingL2BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172970,"src":"1474:21:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":172983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1499:1:293","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1474:26:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1461:39:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":172986,"nodeType":"ExpressionStatement","src":"1461:39:293"},{"assignments":[172988],"declarations":[{"constant":false,"id":172988,"mutability":"mutable","name":"absolutePrestateClaim","nameLocation":"1523:21:293","nodeType":"VariableDeclaration","scope":173003,"src":"1515:29:293","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":172987,"name":"uint256","nodeType":"ElementaryTypeName","src":"1515:7:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":172996,"initialValue":{"arguments":[{"id":172991,"name":"_stateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172927,"src":"1559:10:293","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":172993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1572:7:293","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":172992,"name":"uint256","nodeType":"ElementaryTypeName","src":"1572:7:293","typeDescriptions":{}}}],"id":172994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1571:9:293","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":172989,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1548:3:293","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":172990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"1548:10:293","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":172995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1548:33:293","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1514:67:293"},{"expression":{"id":173001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":172997,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172940,"src":"1595:5:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":173000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":172998,"name":"absolutePrestateClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172988,"src":"1603:21:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":172999,"name":"traceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172937,"src":"1627:10:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1603:34:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1595:42:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":173002,"nodeType":"ExpressionStatement","src":"1595:42:293"}]}},{"expression":{"id":173034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173026,"name":"postState_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172934,"src":"1876:10:293","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":173030,"name":"traceIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172937,"src":"1910:10:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":173031,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172940,"src":"1922:5:293","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":173028,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1899:3:293","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":173029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1899:10:293","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":173032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1899:29:293","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173027,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1889:9:293","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":173033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1889:40:293","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1876:53:293","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":173035,"nodeType":"ExpressionStatement","src":"1876:53:293"},{"AST":{"nodeType":"YulBlock","src":"1948:91:293","statements":[{"nodeType":"YulAssignment","src":"1962:67:293","value":{"arguments":[{"arguments":[{"name":"postState_","nodeType":"YulIdentifier","src":"1983:10:293"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2003:3:293","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"2008:4:293","type":"","value":"0xFF"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1999:3:293"},"nodeType":"YulFunctionCall","src":"1999:14:293"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1995:3:293"},"nodeType":"YulFunctionCall","src":"1995:19:293"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1979:3:293"},"nodeType":"YulFunctionCall","src":"1979:36:293"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2021:3:293","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"2026:1:293","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2017:3:293"},"nodeType":"YulFunctionCall","src":"2017:11:293"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1976:2:293"},"nodeType":"YulFunctionCall","src":"1976:53:293"},"variableNames":[{"name":"postState_","nodeType":"YulIdentifier","src":"1962:10:293"}]}]},"evmVersion":"london","externalReferences":[{"declaration":172934,"isOffset":false,"isSlot":false,"src":"1962:10:293","valueSize":1},{"declaration":172934,"isOffset":false,"isSlot":false,"src":"1983:10:293","valueSize":1}],"id":173036,"nodeType":"InlineAssembly","src":"1939:100:293"}]},"baseFunctions":[90432],"documentation":{"id":172925,"nodeType":"StructuredDocumentation","src":"762:27:293","text":"@inheritdoc IBigStepper"},"functionSelector":"e14ced32","implemented":true,"kind":"function","modifiers":[],"name":"step","nameLocation":"803:4:293","parameters":{"id":172932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":172927,"mutability":"mutable","name":"_stateData","nameLocation":"832:10:293","nodeType":"VariableDeclaration","scope":173038,"src":"817:25:293","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":172926,"name":"bytes","nodeType":"ElementaryTypeName","src":"817:5:293","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":172929,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":173038,"src":"852:14:293","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":172928,"name":"bytes","nodeType":"ElementaryTypeName","src":"852:5:293","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":172931,"mutability":"mutable","name":"_localContext","nameLocation":"884:13:293","nodeType":"VariableDeclaration","scope":173038,"src":"876:21:293","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":172930,"name":"bytes32","nodeType":"ElementaryTypeName","src":"876:7:293","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"807:96:293"},"returnParameters":{"id":172935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":172934,"mutability":"mutable","name":"postState_","nameLocation":"959:10:293","nodeType":"VariableDeclaration","scope":173038,"src":"951:18:293","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":172933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"951:7:293","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"950:20:293"},"scope":173039,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":172899,"name":"IBigStepper","nodeType":"IdentifierPath","referencedDeclaration":90440,"src":"513:11:293"},"id":172900,"nodeType":"InheritanceSpecifier","src":"513:11:293"}],"canonicalName":"AlphabetVM","contractDependencies":[],"contractKind":"contract","documentation":{"id":172898,"nodeType":"StructuredDocumentation","src":"267:223:293","text":"@title AlphabetVM\n @dev A mock VM for the purpose of testing the dispute game infrastructure. Note that this only works\n for games with an execution trace subgame max depth of 3 (8 instructions per subgame)."},"fullyImplemented":true,"linearizedBaseContracts":[173039,90440],"name":"AlphabetVM","nameLocation":"499:10:293","scope":173040,"usedErrors":[]}],"license":"MIT"},"id":293}
{"abi":[{"type":"constructor","inputs":[{"name":"_absolutePrestate","type":"bytes32","internalType":"Claim"},{"name":"_oracle","type":"address","internalType":"contract PreimageOracle"}],"stateMutability":"nonpayable"},{"type":"function","name":"oracle","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPreimageOracle"}],"stateMutability":"view"},{"type":"function","name":"step","inputs":[{"name":"_stateData","type":"bytes","internalType":"bytes"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_localContext","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"postState_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x60a060405234801561001057600080fd5b506040516105d23803806105d283398101604081905261002f91610059565b608091909152600080546001600160a01b0319166001600160a01b03909216919091179055610096565b6000806040838503121561006c57600080fd5b825160208401519092506001600160a01b038116811461008b57600080fd5b809150509250929050565b6080516105226100b0600039600060af01526105226000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637dc0d1d01461003b578063e14ced3214610085575b600080fd5b60005461005b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61009861009336600461039c565b6100a6565b60405190815260200161007c565b600080600060087f0000000000000000000000000000000000000000000000000000000000000000901b600889896040516100e2929190610410565b6040518091039020901b036101e0576000805473ffffffffffffffffffffffffffffffffffffffff1663e03110e161011b6004886102a6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526004810191909152600060248201526044016040805180830381865afa158015610175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101999190610420565b50905060006101b3600163ffffffff608085901c16610473565b600481901b9450905060006101ca8a8c018c61048a565b90506101d685826104a3565b935050505061020d565b6101ec878901896104bb565b9092509050816101fb816104dd565b9250508080610209906104dd565b9150505b6040805160208101849052908101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001798975050505050505050565b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83161761034c818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000606086880312156103b457600080fd5b853567ffffffffffffffff808211156103cc57600080fd5b6103d889838a01610353565b909750955060208801359150808211156103f157600080fd5b506103fe88828901610353565b96999598509660400135949350505050565b8183823760009101908152919050565b6000806040838503121561043357600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561048557610485610444565b500390565b60006020828403121561049c57600080fd5b5035919050565b600082198211156104b6576104b6610444565b500190565b600080604083850312156104ce57600080fd5b50508035926020909101359150565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361050e5761050e610444565b506001019056fea164736f6c634300080f000a","sourceMap":"490:1563:309:-:0;;;615:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;686:37;;;;;733:6;:16;;-1:-1:-1;;;;;;733:16:309;-1:-1:-1;;;;;733:16:309;;;;;;;;;490:1563;;14:402:350;144:6;152;205:2;193:9;184:7;180:23;176:32;173:52;;;221:1;218;211:12;173:52;244:16;;303:2;288:18;;282:25;244:16;;-1:-1:-1;;;;;;336:31:350;;326:42;;316:70;;382:1;379;372:12;316:70;405:5;395:15;;;14:402;;;;;:::o;:::-;490:1563:309;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80637dc0d1d01461003b578063e14ced3214610085575b600080fd5b60005461005b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61009861009336600461039c565b6100a6565b60405190815260200161007c565b600080600060087f0000000000000000000000000000000000000000000000000000000000000000901b600889896040516100e2929190610410565b6040518091039020901b036101e0576000805473ffffffffffffffffffffffffffffffffffffffff1663e03110e161011b6004886102a6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526004810191909152600060248201526044016040805180830381865afa158015610175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101999190610420565b50905060006101b3600163ffffffff608085901c16610473565b600481901b9450905060006101ca8a8c018c61048a565b90506101d685826104a3565b935050505061020d565b6101ec878901896104bb565b9092509050816101fb816104dd565b9250508080610209906104dd565b9150505b6040805160208101849052908101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001798975050505050505050565b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83161761034c818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000606086880312156103b457600080fd5b853567ffffffffffffffff808211156103cc57600080fd5b6103d889838a01610353565b909750955060208801359150808211156103f157600080fd5b506103fe88828901610353565b96999598509660400135949350505050565b8183823760009101908152919050565b6000806040838503121561043357600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561048557610485610444565b500390565b60006020828403121561049c57600080fd5b5035919050565b600082198211156104b6576104b6610444565b500190565b600080604083850312156104ce57600080fd5b50508035926020909101359150565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361050e5761050e610444565b506001019056fea164736f6c634300080f000a","sourceMap":"490:1563:309:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;579:29;;;;;;;;;;;;215:42:350;203:55;;;185:74;;173:2;158:18;579:29:309;;;;;;;;794:1257;;;;;;:::i;:::-;;:::i;:::-;;;1558:25:350;;;1546:2;1531:18;794:1257:309;1412:177:350;794:1257:309;951:18;985;1013:13;1108:1;1086:17;1073:36;;1066:1;1051:10;;1041:21;;;;;;;:::i;:::-;;;;;;;;:26;;1040:70;1036:809;;1211:11;1227:6;;;;:19;1264:86;5504:4:190;1336:13:309;1264:28;:86::i;:::-;1227:140;;;;;;;;;;;;;2052:25:350;;;;1352:1:309;2093:18:350;;;2086:34;2025:18;;1227:140:309;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1210:157:309;-1:-1:-1;1381:29:309;1413:40;1452:1;1438:10;1431:3;1415:19;;;1414:34;1413:40;:::i;:::-;1505:1;1480:26;;;;-1:-1:-1;1381:72:309;-1:-1:-1;1521:29:309;1554:33;;;;1565:10;1554:33;:::i;:::-;1520:67;-1:-1:-1;1609:34:309;1633:10;1520:67;1609:34;:::i;:::-;1601:42;;1112:542;;;1036:809;;;1745:42;;;;1756:10;1745:42;:::i;:::-;1723:64;;-1:-1:-1;1723:64:309;-1:-1:-1;1723:64:309;1801:12;1723:64;1801:12;:::i;:::-;;;;1827:7;;;;;:::i;:::-;;;;1036:809;1905:29;;;;;;2052:25:350;;;2093:18;;;2086:34;;;2025:18;;1905:29:309;;;;;;;;;;;;;1895:40;;1905:29;1895:40;;;;2001:19;1985:36;2023:11;1982:53;;794:1257;-1:-1:-1;;;;;;;;794:1257:309:o;552:449:152:-;835:11;860:19;848:32;;832:49;965:29;832:49;980:13;1676:4;1670:11;;1533:21;1787:15;;;1828:8;1822:4;1815:22;1850:27;;;1996:4;1983:18;;;2098:17;;2003:19;1979:44;2025:11;1976:61;;1455:676;965:29;958:36;552:449;-1:-1:-1;;;552:449:152:o;270:347:350:-;321:8;331:6;385:3;378:4;370:6;366:17;362:27;352:55;;403:1;400;393:12;352:55;-1:-1:-1;426:20:350;;469:18;458:30;;455:50;;;501:1;498;491:12;455:50;538:4;530:6;526:17;514:29;;590:3;583:4;574:6;566;562:19;558:30;555:39;552:59;;;607:1;604;597:12;552:59;270:347;;;;;:::o;622:785::-;721:6;729;737;745;753;806:2;794:9;785:7;781:23;777:32;774:52;;;822:1;819;812:12;774:52;862:9;849:23;891:18;932:2;924:6;921:14;918:34;;;948:1;945;938:12;918:34;987:58;1037:7;1028:6;1017:9;1013:22;987:58;:::i;:::-;1064:8;;-1:-1:-1;961:84:350;-1:-1:-1;1152:2:350;1137:18;;1124:32;;-1:-1:-1;1168:16:350;;;1165:36;;;1197:1;1194;1187:12;1165:36;;1236:60;1288:7;1277:8;1266:9;1262:24;1236:60;:::i;:::-;622:785;;;;-1:-1:-1;1315:8:350;1397:2;1382:18;1369:32;;622:785;-1:-1:-1;;;;622:785:350:o;1594:271::-;1777:6;1769;1764:3;1751:33;1733:3;1803:16;;1828:13;;;1803:16;1594:271;-1:-1:-1;1594:271:350:o;2131:245::-;2210:6;2218;2271:2;2259:9;2250:7;2246:23;2242:32;2239:52;;;2287:1;2284;2277:12;2239:52;-1:-1:-1;;2310:16:350;;2366:2;2351:18;;;2345:25;2310:16;;2345:25;;-1:-1:-1;2131:245:350:o;2381:184::-;2433:77;2430:1;2423:88;2530:4;2527:1;2520:15;2554:4;2551:1;2544:15;2570:125;2610:4;2638:1;2635;2632:8;2629:34;;;2643:18;;:::i;:::-;-1:-1:-1;2680:9:350;;2570:125::o;2700:180::-;2759:6;2812:2;2800:9;2791:7;2787:23;2783:32;2780:52;;;2828:1;2825;2818:12;2780:52;-1:-1:-1;2851:23:350;;2700:180;-1:-1:-1;2700:180:350:o;2885:128::-;2925:3;2956:1;2952:6;2949:1;2946:13;2943:39;;;2962:18;;:::i;:::-;-1:-1:-1;2998:9:350;;2885:128::o;3018:248::-;3086:6;3094;3147:2;3135:9;3126:7;3122:23;3118:32;3115:52;;;3163:1;3160;3153:12;3115:52;-1:-1:-1;;3186:23:350;;;3256:2;3241:18;;;3228:32;;-1:-1:-1;3018:248:350:o;3271:195::-;3310:3;3341:66;3334:5;3331:77;3328:103;;3411:18;;:::i;:::-;-1:-1:-1;3458:1:350;3447:13;;3271:195::o","linkReferences":{},"immutableReferences":{"191159":[{"start":175,"length":32}]}},"methodIdentifiers":{"oracle()":"7dc0d1d0","step(bytes,bytes,bytes32)":"e14ced32"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"_absolutePrestate\",\"type\":\"bytes32\"},{\"internalType\":\"contract PreimageOracle\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract IPreimageOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_localContext\",\"type\":\"bytes32\"}],\"name\":\"step\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"postState_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A mock VM for the purpose of testing the dispute game infrastructure. Note that this only works for games with an execution trace subgame max depth of 3 (8 instructions per subgame).\",\"kind\":\"dev\",\"methods\":{\"step(bytes,bytes,bytes32)\":{\"params\":{\"_localContext\":\"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.\",\"_proof\":\"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.\",\"_stateData\":\"The raw opaque prestate data.\"},\"returns\":{\"postState_\":\"The hash of the post state witness after the state transition.\"}}},\"title\":\"AlphabetVM\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"oracle()\":{\"notice\":\"Returns the preimage oracle used by the state machine.\"},\"step(bytes,bytes,bytes32)\":{\"notice\":\"Performs the state transition from a given prestate and returns the hash of the post state witness.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/AlphabetVM.sol\":\"AlphabetVM\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/lib-keccak/contracts/lib/LibKeccak.sol\":{\"keccak256\":\"0x8dde9ac5972d35fc752b3aae40491bdd648e6d910bdc3cdba4256f56abafe672\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea269cbccc1eda4a57c6681d3c7648cd1ae3303ce1a3cdc1c703334d4be104f1\",\"dweb:/ipfs/QmRDE2GT8yRebnPbAZLBY9s3CHZt1ZjRXiRm8qufV8gpGx\"]},\"src/cannon/PreimageKeyLib.sol\":{\"keccak256\":\"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc\",\"dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm\"]},\"src/cannon/PreimageOracle.sol\":{\"keccak256\":\"0x1116ac9bc3d1fd37f51ccc96582884e83442fb7287472e6538aa8c337cde9053\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97afc2cd248515221efb422bac44609957a76f87ae613099e35432840c021\",\"dweb:/ipfs/Qmb9iSSYYScYiLFnDbLtecytVV7DN6fzZT3dmPUNK3CmGQ\"]},\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af\",\"dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1\"]},\"src/cannon/libraries/CannonErrors.sol\":{\"keccak256\":\"0xfc111a4e6853f5b2e02eb1cda915f8ade9e1930d181f819c801c0f8510a7405b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c30334352094e8c78e2b673b8b28a944e48be622f66a0d84986f724b7c2bfd25\",\"dweb:/ipfs/QmeiSc8Hkfg7hXsmU5UXWHHfCuFhweeUDwuREeYXRz3Qx8\"]},\"src/cannon/libraries/CannonTypes.sol\":{\"keccak256\":\"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39\",\"dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe\"]},\"src/dispute/interfaces/IBigStepper.sol\":{\"keccak256\":\"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884\",\"dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75\"]},\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"test/mocks/AlphabetVM.sol\":{\"keccak256\":\"0xbef9553bb48db6d37cb1855dd149a73e256156a2f5f5ce45040f39f5aa32dddd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b02402f79fd62a08bf7264b2866688410c86e87af4145d196e9378f9945f86ce\",\"dweb:/ipfs/QmWrRnqbfWF4AKibziRrZFZqWoNrrQgJiTHPGEZoitDop5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"Claim","name":"_absolutePrestate","type":"bytes32"},{"internalType":"contract PreimageOracle","name":"_oracle","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"oracle","outputs":[{"internalType":"contract IPreimageOracle","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_stateData","type":"bytes"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"bytes32","name":"_localContext","type":"bytes32"}],"stateMutability":"view","type":"function","name":"step","outputs":[{"internalType":"bytes32","name":"postState_","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"version":1},"userdoc":{"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/AlphabetVM.sol":"AlphabetVM"},"evmVersion":"london","libraries":{}},"sources":{"lib/lib-keccak/contracts/lib/LibKeccak.sol":{"keccak256":"0x8dde9ac5972d35fc752b3aae40491bdd648e6d910bdc3cdba4256f56abafe672","urls":["bzz-raw://ea269cbccc1eda4a57c6681d3c7648cd1ae3303ce1a3cdc1c703334d4be104f1","dweb:/ipfs/QmRDE2GT8yRebnPbAZLBY9s3CHZt1ZjRXiRm8qufV8gpGx"],"license":"MIT"},"src/cannon/PreimageKeyLib.sol":{"keccak256":"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85","urls":["bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc","dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm"],"license":"MIT"},"src/cannon/PreimageOracle.sol":{"keccak256":"0x1116ac9bc3d1fd37f51ccc96582884e83442fb7287472e6538aa8c337cde9053","urls":["bzz-raw://20a97afc2cd248515221efb422bac44609957a76f87ae613099e35432840c021","dweb:/ipfs/Qmb9iSSYYScYiLFnDbLtecytVV7DN6fzZT3dmPUNK3CmGQ"],"license":"MIT"},"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f","urls":["bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af","dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1"],"license":"MIT"},"src/cannon/libraries/CannonErrors.sol":{"keccak256":"0xfc111a4e6853f5b2e02eb1cda915f8ade9e1930d181f819c801c0f8510a7405b","urls":["bzz-raw://c30334352094e8c78e2b673b8b28a944e48be622f66a0d84986f724b7c2bfd25","dweb:/ipfs/QmeiSc8Hkfg7hXsmU5UXWHHfCuFhweeUDwuREeYXRz3Qx8"],"license":"MIT"},"src/cannon/libraries/CannonTypes.sol":{"keccak256":"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de","urls":["bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39","dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe"],"license":"MIT"},"src/dispute/interfaces/IBigStepper.sol":{"keccak256":"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a","urls":["bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884","dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75"],"license":"MIT"},"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"test/mocks/AlphabetVM.sol":{"keccak256":"0xbef9553bb48db6d37cb1855dd149a73e256156a2f5f5ce45040f39f5aa32dddd","urls":["bzz-raw://b02402f79fd62a08bf7264b2866688410c86e87af4145d196e9378f9945f86ce","dweb:/ipfs/QmWrRnqbfWF4AKibziRrZFZqWoNrrQgJiTHPGEZoitDop5"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":191162,"contract":"test/mocks/AlphabetVM.sol:AlphabetVM","label":"oracle","offset":0,"slot":"0","type":"t_contract(IPreimageOracle)93444"}],"types":{"t_contract(IPreimageOracle)93444":{"encoding":"inplace","label":"contract IPreimageOracle","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}}},"devdoc":{"version":1,"kind":"dev","details":"A mock VM for the purpose of testing the dispute game infrastructure. Note that this only works for games with an execution trace subgame max depth of 3 (8 instructions per subgame).","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"title":"AlphabetVM"},"id":309}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"291:979:173:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;291:979:173;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"291:979:173:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Arithmetic\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Even more math than before.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Arithmetic.sol\":\"Arithmetic\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Arithmetic.sol":"Arithmetic"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Even more math than before."},"devdoc":{"version":1,"kind":"dev","title":"Arithmetic"},"ast":{"absolutePath":"src/libraries/Arithmetic.sol","id":92522,"exportedSymbols":{"Arithmetic":[92521],"FixedPointMathLib":[61703],"SignedMath":[55249]},"nodeType":"SourceUnit","src":"32:1239:173","nodes":[{"id":92460,"nodeType":"PragmaDirective","src":"32:23:173","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":92462,"nodeType":"ImportDirective","src":"57:79:173","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","file":"@openzeppelin/contracts/utils/math/SignedMath.sol","nameLocation":"-1:-1:-1","scope":92522,"sourceUnit":55250,"symbolAliases":[{"foreign":{"id":92461,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55249,"src":"66:10:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92464,"nodeType":"ImportDirective","src":"137:90:173","nodes":[],"absolutePath":"lib/solmate/src/utils/FixedPointMathLib.sol","file":"@rari-capital/solmate/src/utils/FixedPointMathLib.sol","nameLocation":"-1:-1:-1","scope":92522,"sourceUnit":61704,"symbolAliases":[{"foreign":{"id":92463,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61703,"src":"146:17:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92521,"nodeType":"ContractDefinition","src":"291:979:173","nodes":[{"id":92488,"nodeType":"FunctionDefinition","src":"537:161:173","nodes":[],"body":{"id":92487,"nodeType":"Block","src":"624:74:173","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":92481,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92468,"src":"671:6:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":92482,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92470,"src":"679:4:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":92479,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55249,"src":"656:10:173","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$55249_$","typeString":"type(library SignedMath)"}},"id":92480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":55165,"src":"656:14:173","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":92483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"656:28:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":92484,"name":"_max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92472,"src":"686:4:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":92477,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55249,"src":"641:10:173","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$55249_$","typeString":"type(library SignedMath)"}},"id":92478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":55183,"src":"641:14:173","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":92485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"641:50:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":92476,"id":92486,"nodeType":"Return","src":"634:57:173"}]},"documentation":{"id":92466,"nodeType":"StructuredDocumentation","src":"316:216:173","text":"@notice Clamps a value between a minimum and maximum.\n @param _value The value to clamp.\n @param _min The minimum value.\n @param _max The maximum value.\n @return The clamped value."},"implemented":true,"kind":"function","modifiers":[],"name":"clamp","nameLocation":"546:5:173","parameters":{"id":92473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92468,"mutability":"mutable","name":"_value","nameLocation":"559:6:173","nodeType":"VariableDeclaration","scope":92488,"src":"552:13:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":92467,"name":"int256","nodeType":"ElementaryTypeName","src":"552:6:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":92470,"mutability":"mutable","name":"_min","nameLocation":"574:4:173","nodeType":"VariableDeclaration","scope":92488,"src":"567:11:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":92469,"name":"int256","nodeType":"ElementaryTypeName","src":"567:6:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":92472,"mutability":"mutable","name":"_max","nameLocation":"587:4:173","nodeType":"VariableDeclaration","scope":92488,"src":"580:11:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":92471,"name":"int256","nodeType":"ElementaryTypeName","src":"580:6:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"551:41:173"},"returnParameters":{"id":92476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92475,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":92488,"src":"616:6:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":92474,"name":"int256","nodeType":"ElementaryTypeName","src":"616:6:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"615:8:173"},"scope":92521,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":92520,"nodeType":"FunctionDefinition","src":"1040:228:173","nodes":[],"body":{"id":92519,"nodeType":"Block","src":"1146:122:173","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":92517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":92514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":92500,"name":"_coefficient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92491,"src":"1164:12:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":92508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31653138","id":92503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1205:4:173","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":92506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31653138","id":92504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1213:4:173","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":92505,"name":"_denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92493,"src":"1220:12:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1213:19:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":92507,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1212:21:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1205:28:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":92511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":92509,"name":"_exponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92495,"src":"1235:9:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":92510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1247:4:173","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"1235:16:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":92501,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61703,"src":"1180:17:173","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$61703_$","typeString":"type(library FixedPointMathLib)"}},"id":92502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":61218,"src":"1180:24:173","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":92512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1180:72:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":92513,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1179:74:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1164:89:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":92515,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1163:91:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31653138","id":92516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1257:4:173","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"1163:98:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":92499,"id":92518,"nodeType":"Return","src":"1156:105:173"}]},"documentation":{"id":92489,"nodeType":"StructuredDocumentation","src":"704:331:173","text":"@notice (c)oefficient (d)enominator (exp)onentiation function.\n Returns the result of: c * (1 - 1/d)^exp.\n @param _coefficient Coefficient of the function.\n @param _denominator Fractional denominator.\n @param _exponent Power function exponent.\n @return Result of c * (1 - 1/d)^exp."},"implemented":true,"kind":"function","modifiers":[],"name":"cdexp","nameLocation":"1049:5:173","parameters":{"id":92496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92491,"mutability":"mutable","name":"_coefficient","nameLocation":"1062:12:173","nodeType":"VariableDeclaration","scope":92520,"src":"1055:19:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":92490,"name":"int256","nodeType":"ElementaryTypeName","src":"1055:6:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":92493,"mutability":"mutable","name":"_denominator","nameLocation":"1083:12:173","nodeType":"VariableDeclaration","scope":92520,"src":"1076:19:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":92492,"name":"int256","nodeType":"ElementaryTypeName","src":"1076:6:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":92495,"mutability":"mutable","name":"_exponent","nameLocation":"1104:9:173","nodeType":"VariableDeclaration","scope":92520,"src":"1097:16:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":92494,"name":"int256","nodeType":"ElementaryTypeName","src":"1097:6:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1054:60:173"},"returnParameters":{"id":92499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":92520,"src":"1138:6:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":92497,"name":"int256","nodeType":"ElementaryTypeName","src":"1138:6:173","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1137:8:173"},"scope":92521,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Arithmetic","contractDependencies":[],"contractKind":"library","documentation":{"id":92465,"nodeType":"StructuredDocumentation","src":"229:62:173","text":"@title Arithmetic\n @notice Even more math than before."},"fullyImplemented":true,"linearizedBaseContracts":[92521],"name":"Arithmetic","nameLocation":"299:10:173","scope":92522,"usedErrors":[]}],"license":"MIT"},"id":173}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"291:979:184:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;291:979:184;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"291:979:184:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Arithmetic\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Even more math than before.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Arithmetic.sol\":\"Arithmetic\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Arithmetic.sol":"Arithmetic"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Even more math than before."},"devdoc":{"version":1,"kind":"dev","title":"Arithmetic"},"id":184}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"attest","inputs":[{"name":"_attestations","type":"tuple[]","internalType":"struct AttestationStation.AttestationData[]","components":[{"name":"about","type":"address","internalType":"address"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"val","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attest","inputs":[{"name":"_about","type":"address","internalType":"address"},{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_val","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attestations","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"AttestationCreated","inputs":[{"name":"creator","type":"address","indexed":true,"internalType":"address"},{"name":"about","type":"address","indexed":true,"internalType":"address"},{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107d9806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806329b42cb51461005157806354fd4d501461007a5780635eb5ea10146100b6578063702b9dee146100cb575b600080fd5b61006461005f3660046102c0565b6100de565b6040516100719190610367565b60405180910390f35b6100646040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b6100c96100c4366004610381565b610188565b005b6100c96100d93660046104d0565b6101eb565b600060208181529381526040808220855292815282812090935282529020805461010790610527565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610527565b80156101805780601f1061015557610100808354040283529160200191610180565b820191906000526020600020905b81548152906001019060200180831161016357829003601f168201915b505050505081565b8060005b818110156101e55760008484838181106101a8576101a861057a565b90506020028101906101ba91906105a9565b6101c3906105e7565b90506101dc8160000151826020015183604001516101eb565b5060010161018c565b50505050565b3360009081526020818152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320858452909152902061022b82826106b2565b50818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f28710dfecab43d1e29e02aa56b2e1e610c0bae19135c9cf7a83a1adb6df96d858460405161028a9190610367565b60405180910390a4505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102bb57600080fd5b919050565b6000806000606084860312156102d557600080fd5b6102de84610297565b92506102ec60208501610297565b9150604084013590509250925092565b6000815180845260005b8181101561032257602081850181015186830182015201610306565b81811115610334576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061037a60208301846102fc565b9392505050565b6000806020838503121561039457600080fd5b823567ffffffffffffffff808211156103ac57600080fd5b818501915085601f8301126103c057600080fd5b8135818111156103cf57600080fd5b8660208260051b85010111156103e457600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043657600080fd5b813567ffffffffffffffff80821115610451576104516103f6565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610497576104976103f6565b816040528381528660208588010111156104b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156104e557600080fd5b6104ee84610297565b925060208401359150604084013567ffffffffffffffff81111561051157600080fd5b61051d86828701610425565b9150509250925092565b600181811c9082168061053b57607f821691505b602082108103610574577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126105dd57600080fd5b9190910192915050565b6000606082360312156105f957600080fd5b6040516060810167ffffffffffffffff828210818311171561061d5761061d6103f6565b8160405261062a85610297565b835260208501356020840152604085013591508082111561064a57600080fd5b5061065736828601610425565b60408301525092915050565b601f8211156106ad57600081815260208120601f850160051c8101602086101561068a5750805b601f850160051c820191505b818110156106a957828155600101610696565b5050505b505050565b815167ffffffffffffffff8111156106cc576106cc6103f6565b6106e0816106da8454610527565b84610663565b602080601f83116001811461073357600084156106fd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106a9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561078057888601518255948401946001909101908401610761565b50858210156107bc57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c634300080f000a","sourceMap":"230:2022:202:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806329b42cb51461005157806354fd4d501461007a5780635eb5ea10146100b6578063702b9dee146100cb575b600080fd5b61006461005f3660046102c0565b6100de565b6040516100719190610367565b60405180910390f35b6100646040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b6100c96100c4366004610381565b610188565b005b6100c96100d93660046104d0565b6101eb565b600060208181529381526040808220855292815282812090935282529020805461010790610527565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610527565b80156101805780601f1061015557610100808354040283529160200191610180565b820191906000526020600020905b81548152906001019060200180831161016357829003601f168201915b505050505081565b8060005b818110156101e55760008484838181106101a8576101a861057a565b90506020028101906101ba91906105a9565b6101c3906105e7565b90506101dc8160000151826020015183604001516101eb565b5060010161018c565b50505050565b3360009081526020818152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320858452909152902061022b82826106b2565b50818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f28710dfecab43d1e29e02aa56b2e1e610c0bae19135c9cf7a83a1adb6df96d858460405161028a9190610367565b60405180910390a4505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102bb57600080fd5b919050565b6000806000606084860312156102d557600080fd5b6102de84610297565b92506102ec60208501610297565b9150604084013590509250925092565b6000815180845260005b8181101561032257602081850181015186830182015201610306565b81811115610334576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061037a60208301846102fc565b9392505050565b6000806020838503121561039457600080fd5b823567ffffffffffffffff808211156103ac57600080fd5b818501915085601f8301126103c057600080fd5b8135818111156103cf57600080fd5b8660208260051b85010111156103e457600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043657600080fd5b813567ffffffffffffffff80821115610451576104516103f6565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610497576104976103f6565b816040528381528660208588010111156104b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156104e557600080fd5b6104ee84610297565b925060208401359150604084013567ffffffffffffffff81111561051157600080fd5b61051d86828701610425565b9150509250925092565b600181811c9082168061053b57607f821691505b602082108103610574577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126105dd57600080fd5b9190910192915050565b6000606082360312156105f957600080fd5b6040516060810167ffffffffffffffff828210818311171561061d5761061d6103f6565b8160405261062a85610297565b835260208501356020840152604085013591508082111561064a57600080fd5b5061065736828601610425565b60408301525092915050565b601f8211156106ad57600081815260208120601f850160051c8101602086101561068a5750805b601f850160051c820191505b818110156106a957828155600101610696565b5050505b505050565b815167ffffffffffffffff8111156106cc576106cc6103f6565b6106e0816106da8454610527565b84610663565b602080601f83116001811461073357600084156106fd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106a9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561078057888601518255948401946001909101908401610761565b50858210156107bc57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c634300080f000a","sourceMap":"230:2022:202:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;720:85;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1246:40;;;;;;;;;;;;;;;;;;;;;1875:375;;;;;;:::i;:::-;;:::i;:::-;;1549:200;;;;;;:::i;:::-;;:::i;720:85::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1875:375::-;1969:13;1952:14;1999:245;2023:6;2019:1;:10;1999:245;;;2046:34;2083:13;;2097:1;2083:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2046:53;;;:::i;:::-;;;2114:59;2121:11;:17;;;2140:11;:15;;;2157:11;:15;;;2114:6;:59::i;:::-;-1:-1:-1;2216:3:202;;1999:245;;;;1942:308;1875:375;;:::o;1549:200::-;1644:10;1631:12;:24;;;;;;;;;;;;:32;;;;;;;;;:38;;;;;;;;:45;1672:4;1631:38;:45;:::i;:::-;;1731:4;1723:6;1692:50;;1711:10;1692:50;;;1737:4;1692:50;;;;;;:::i;:::-;;;;;;;;1549:200;;;:::o;14:196:334:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:328::-;292:6;300;308;361:2;349:9;340:7;336:23;332:32;329:52;;;377:1;374;367:12;329:52;400:29;419:9;400:29;:::i;:::-;390:39;;448:38;482:2;471:9;467:18;448:38;:::i;:::-;438:48;;533:2;522:9;518:18;505:32;495:42;;215:328;;;;;:::o;548:530::-;589:3;627:5;621:12;654:6;649:3;642:19;679:1;689:162;703:6;700:1;697:13;689:162;;;765:4;821:13;;;817:22;;811:29;793:11;;;789:20;;782:59;718:12;689:162;;;869:6;866:1;863:13;860:87;;;935:1;928:4;919:6;914:3;910:16;906:27;899:38;860:87;-1:-1:-1;992:2:334;980:15;997:66;976:88;967:98;;;;1067:4;963:109;;548:530;-1:-1:-1;;548:530:334:o;1083:217::-;1230:2;1219:9;1212:21;1193:4;1250:44;1290:2;1279:9;1275:18;1267:6;1250:44;:::i;:::-;1242:52;1083:217;-1:-1:-1;;;1083:217:334:o;1529:651::-;1651:6;1659;1712:2;1700:9;1691:7;1687:23;1683:32;1680:52;;;1728:1;1725;1718:12;1680:52;1768:9;1755:23;1797:18;1838:2;1830:6;1827:14;1824:34;;;1854:1;1851;1844:12;1824:34;1892:6;1881:9;1877:22;1867:32;;1937:7;1930:4;1926:2;1922:13;1918:27;1908:55;;1959:1;1956;1949:12;1908:55;1999:2;1986:16;2025:2;2017:6;2014:14;2011:34;;;2041:1;2038;2031:12;2011:34;2094:7;2089:2;2079:6;2076:1;2072:14;2068:2;2064:23;2060:32;2057:45;2054:65;;;2115:1;2112;2105:12;2054:65;2146:2;2138:11;;;;;2168:6;;-1:-1:-1;1529:651:334;;-1:-1:-1;;;;1529:651:334:o;2185:184::-;2237:77;2234:1;2227:88;2334:4;2331:1;2324:15;2358:4;2355:1;2348:15;2374:777;2416:5;2469:3;2462:4;2454:6;2450:17;2446:27;2436:55;;2487:1;2484;2477:12;2436:55;2523:6;2510:20;2549:18;2586:2;2582;2579:10;2576:36;;;2592:18;;:::i;:::-;2726:2;2720:9;2788:4;2780:13;;2631:66;2776:22;;;2800:2;2772:31;2768:40;2756:53;;;2824:18;;;2844:22;;;2821:46;2818:72;;;2870:18;;:::i;:::-;2910:10;2906:2;2899:22;2945:2;2937:6;2930:18;2991:3;2984:4;2979:2;2971:6;2967:15;2963:26;2960:35;2957:55;;;3008:1;3005;2998:12;2957:55;3072:2;3065:4;3057:6;3053:17;3046:4;3038:6;3034:17;3021:54;3119:1;3112:4;3107:2;3099:6;3095:15;3091:26;3084:37;3139:6;3130:15;;;;;;2374:777;;;;:::o;3156:462::-;3242:6;3250;3258;3311:2;3299:9;3290:7;3286:23;3282:32;3279:52;;;3327:1;3324;3317:12;3279:52;3350:29;3369:9;3350:29;:::i;:::-;3340:39;;3426:2;3415:9;3411:18;3398:32;3388:42;;3481:2;3470:9;3466:18;3453:32;3508:18;3500:6;3497:30;3494:50;;;3540:1;3537;3530:12;3494:50;3563:49;3604:7;3595:6;3584:9;3580:22;3563:49;:::i;:::-;3553:59;;;3156:462;;;;;:::o;3623:437::-;3702:1;3698:12;;;;3745;;;3766:61;;3820:4;3812:6;3808:17;3798:27;;3766:61;3873:2;3865:6;3862:14;3842:18;3839:38;3836:218;;3910:77;3907:1;3900:88;4011:4;4008:1;4001:15;4039:4;4036:1;4029:15;3836:218;;3623:437;;;:::o;4065:184::-;4117:77;4114:1;4107:88;4214:4;4211:1;4204:15;4238:4;4235:1;4228:15;4254:392;4356:4;4414:11;4401:25;4504:66;4493:8;4477:14;4473:29;4469:102;4449:18;4445:127;4435:155;;4586:1;4583;4576:12;4435:155;4607:33;;;;;4254:392;-1:-1:-1;;4254:392:334:o;4651:752::-;4771:9;4830:4;4822:5;4806:14;4802:26;4798:37;4795:57;;;4848:1;4845;4838:12;4795:57;4881:2;4875:9;4923:4;4915:6;4911:17;4947:18;5015:6;5003:10;5000:22;4995:2;4983:10;4980:18;4977:46;4974:72;;;5026:18;;:::i;:::-;5066:10;5062:2;5055:22;5101:25;5120:5;5101:25;:::i;:::-;5093:6;5086:41;5184:2;5177:5;5173:14;5160:28;5155:2;5147:6;5143:15;5136:53;5236:2;5229:5;5225:14;5212:28;5198:42;;5263:2;5255:6;5252:14;5249:34;;;5279:1;5276;5269:12;5249:34;;5316:52;5353:14;5344:6;5337:5;5333:18;5316:52;:::i;:::-;5311:2;5299:15;;5292:77;-1:-1:-1;5303:6:334;4651:752;-1:-1:-1;;4651:752:334:o;5533:544::-;5634:2;5629:3;5626:11;5623:448;;;5670:1;5695:5;5691:2;5684:17;5740:4;5736:2;5726:19;5810:2;5798:10;5794:19;5791:1;5787:27;5781:4;5777:38;5846:4;5834:10;5831:20;5828:47;;;-1:-1:-1;5869:4:334;5828:47;5924:2;5919:3;5915:12;5912:1;5908:20;5902:4;5898:31;5888:41;;5979:82;5997:2;5990:5;5987:13;5979:82;;;6042:17;;;6023:1;6012:13;5979:82;;;5983:3;;;5623:448;5533:544;;;:::o;6313:1467::-;6437:3;6431:10;6464:18;6456:6;6453:30;6450:56;;;6486:18;;:::i;:::-;6515:96;6604:6;6564:38;6596:4;6590:11;6564:38;:::i;:::-;6558:4;6515:96;:::i;:::-;6666:4;;6730:2;6719:14;;6747:1;6742:781;;;;7567:1;7584:6;7581:89;;;-1:-1:-1;7636:19:334;;;7630:26;7581:89;6219:66;6210:1;6206:11;;;6202:84;6198:89;6188:100;6294:1;6290:11;;;6185:117;7683:81;;6712:1062;;6742:781;5480:1;5473:14;;;5517:4;5504:18;;6790:66;6778:79;;;6954:236;6968:7;6965:1;6962:14;6954:236;;;7057:19;;;7051:26;7036:42;;7149:27;;;;7117:1;7105:14;;;;6984:19;;6954:236;;;6958:3;7218:6;7209:7;7206:19;7203:261;;;7279:19;;;7273:26;7380:66;7362:1;7358:14;;;7374:3;7354:24;7350:97;7346:102;7331:118;7316:134;;7203:261;-1:-1:-1;;;;;7510:1:334;7494:14;;;7490:22;7477:36;;-1:-1:-1;6313:1467:334:o","linkReferences":{}},"methodIdentifiers":{"attest((address,bytes32,bytes)[])":"5eb5ea10","attest(address,bytes32,bytes)":"702b9dee","attestations(address,address,bytes32)":"29b42cb5","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"about\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"AttestationCreated\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"about\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"internalType\":\"struct AttestationStation.AttestationData[]\",\"name\":\"_attestations\",\"type\":\"tuple[]\"}],\"name\":\"attest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_about\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_val\",\"type\":\"bytes\"}],\"name\":\"attest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"attestations\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Optimism CollectiveGitcoin\",\"events\":{\"AttestationCreated(address,address,bytes32,bytes)\":{\"params\":{\"about\":\"Address attestation is about.\",\"creator\":\"Address that made the attestation.\",\"key\":\"Key of the attestation.\",\"val\":\"Value of the attestation.\"}}},\"kind\":\"dev\",\"methods\":{\"attest((address,bytes32,bytes)[])\":{\"params\":{\"_attestations\":\"An array of AttestationData structs.\"}},\"attest(address,bytes32,bytes)\":{\"params\":{\"_about\":\"Address that the attestation is about.\",\"_key\":\"A key used to namespace the attestation.\",\"_val\":\"An arbitrary value stored as part of the attestation.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"AttestationStation\",\"version\":1},\"userdoc\":{\"events\":{\"AttestationCreated(address,address,bytes32,bytes)\":{\"notice\":\"Emitted when Attestation is created.\"}},\"kind\":\"user\",\"methods\":{\"attest((address,bytes32,bytes)[])\":{\"notice\":\"Allows anyone to create attestations.\"},\"attest(address,bytes32,bytes)\":{\"notice\":\"Allows anyone to create an attestation.\"},\"attestations(address,address,bytes32)\":{\"notice\":\"Maps addresses to attestations. Creator => About => Key => Value.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"Where attestations live.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/op-nft/AttestationStation.sol\":\"AttestationStation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/op-nft/AttestationStation.sol\":{\"keccak256\":\"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef\",\"dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":true},{"internalType":"address","name":"about","type":"address","indexed":true},{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"AttestationCreated","anonymous":false},{"inputs":[{"internalType":"struct AttestationStation.AttestationData[]","name":"_attestations","type":"tuple[]","components":[{"internalType":"address","name":"about","type":"address"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes","name":"val","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"attest"},{"inputs":[{"internalType":"address","name":"_about","type":"address"},{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes","name":"_val","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"attest"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"attestations","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"attest((address,bytes32,bytes)[])":{"params":{"_attestations":"An array of AttestationData structs."}},"attest(address,bytes32,bytes)":{"params":{"_about":"Address that the attestation is about.","_key":"A key used to namespace the attestation.","_val":"An arbitrary value stored as part of the attestation."}}},"version":1},"userdoc":{"kind":"user","methods":{"attest((address,bytes32,bytes)[])":{"notice":"Allows anyone to create attestations."},"attest(address,bytes32,bytes)":{"notice":"Allows anyone to create an attestation."},"attestations(address,address,bytes32)":{"notice":"Maps addresses to attestations. Creator => About => Key => Value."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/op-nft/AttestationStation.sol":"AttestationStation"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/op-nft/AttestationStation.sol":{"keccak256":"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208","urls":["bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef","dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":97169,"contract":"src/periphery/op-nft/AttestationStation.sol:AttestationStation","label":"attestations","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => mapping(bytes32 => bytes)))","numberOfBytes":"32","value":"t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage))"},"t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => bytes))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bytes_storage)"},"t_mapping(t_bytes32,t_bytes_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"}}},"userdoc":{"version":1,"kind":"user","methods":{"attest((address,bytes32,bytes)[])":{"notice":"Allows anyone to create attestations."},"attest(address,bytes32,bytes)":{"notice":"Allows anyone to create an attestation."},"attestations(address,address,bytes32)":{"notice":"Maps addresses to attestations. Creator => About => Key => Value."},"version()":{"notice":"Semantic version."}},"events":{"AttestationCreated(address,address,bytes32,bytes)":{"notice":"Emitted when Attestation is created."}},"notice":"Where attestations live."},"devdoc":{"version":1,"kind":"dev","author":"Optimism CollectiveGitcoin","methods":{"attest((address,bytes32,bytes)[])":{"params":{"_attestations":"An array of AttestationData structs."}},"attest(address,bytes32,bytes)":{"params":{"_about":"Address that the attestation is about.","_key":"A key used to namespace the attestation.","_val":"An arbitrary value stored as part of the attestation."}}},"events":{"AttestationCreated(address,address,bytes32,bytes)":{"params":{"about":"Address attestation is about.","creator":"Address that made the attestation.","key":"Key of the attestation.","val":"Value of the attestation."}}},"title":"AttestationStation"},"ast":{"absolutePath":"src/periphery/op-nft/AttestationStation.sol","id":97259,"exportedSymbols":{"AttestationStation":[97258],"ISemver":[99149]},"nodeType":"SourceUnit","src":"32:2221:202","nodes":[{"id":97148,"nodeType":"PragmaDirective","src":"32:23:202","nodes":[],"literals":["solidity","0.8",".15"]},{"id":97150,"nodeType":"ImportDirective","src":"57:52:202","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":97259,"sourceUnit":99150,"symbolAliases":[{"foreign":{"id":97149,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99149,"src":"66:7:202","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97258,"nodeType":"ContractDefinition","src":"230:2022:202","nodes":[{"id":97160,"nodeType":"StructDefinition","src":"539:93:202","nodes":[],"canonicalName":"AttestationStation.AttestationData","members":[{"constant":false,"id":97155,"mutability":"mutable","name":"about","nameLocation":"580:5:202","nodeType":"VariableDeclaration","scope":97160,"src":"572:13:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97154,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:202","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97157,"mutability":"mutable","name":"key","nameLocation":"603:3:202","nodeType":"VariableDeclaration","scope":97160,"src":"595:11:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"595:7:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":97159,"mutability":"mutable","name":"val","nameLocation":"622:3:202","nodeType":"VariableDeclaration","scope":97160,"src":"616:9:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":97158,"name":"bytes","nodeType":"ElementaryTypeName","src":"616:5:202","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"AttestationData","nameLocation":"546:15:202","scope":97258,"visibility":"public"},{"id":97169,"nodeType":"VariableDeclaration","src":"720:85:202","nodes":[],"constant":false,"documentation":{"id":97161,"nodeType":"StructuredDocumentation","src":"638:77:202","text":"@notice Maps addresses to attestations. Creator => About => Key => Value."},"functionSelector":"29b42cb5","mutability":"mutable","name":"attestations","nameLocation":"793:12:202","scope":97258,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(bytes32 => bytes)))"},"typeName":{"id":97168,"keyType":{"id":97162,"name":"address","nodeType":"ElementaryTypeName","src":"728:7:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"720:65:202","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(bytes32 => bytes)))"},"valueType":{"id":97167,"keyType":{"id":97163,"name":"address","nodeType":"ElementaryTypeName","src":"747:7:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"739:45:202","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$","typeString":"mapping(address => mapping(bytes32 => bytes))"},"valueType":{"id":97166,"keyType":{"id":97164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"766:7:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"758:25:202","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes_storage_$","typeString":"mapping(bytes32 => bytes)"},"valueType":{"id":97165,"name":"bytes","nodeType":"ElementaryTypeName","src":"777:5:202","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}}}},"visibility":"public"},{"id":97180,"nodeType":"EventDefinition","src":"1072:105:202","nodes":[],"anonymous":false,"documentation":{"id":97170,"nodeType":"StructuredDocumentation","src":"812:255:202","text":"@notice Emitted when Attestation is created.\n @param creator Address that made the attestation.\n @param about Address attestation is about.\n @param key Key of the attestation.\n @param val Value of the attestation."},"eventSelector":"28710dfecab43d1e29e02aa56b2e1e610c0bae19135c9cf7a83a1adb6df96d85","name":"AttestationCreated","nameLocation":"1078:18:202","parameters":{"id":97179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97172,"indexed":true,"mutability":"mutable","name":"creator","nameLocation":"1113:7:202","nodeType":"VariableDeclaration","scope":97180,"src":"1097:23:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97171,"name":"address","nodeType":"ElementaryTypeName","src":"1097:7:202","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97174,"indexed":true,"mutability":"mutable","name":"about","nameLocation":"1138:5:202","nodeType":"VariableDeclaration","scope":97180,"src":"1122:21:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97173,"name":"address","nodeType":"ElementaryTypeName","src":"1122:7:202","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97176,"indexed":true,"mutability":"mutable","name":"key","nameLocation":"1161:3:202","nodeType":"VariableDeclaration","scope":97180,"src":"1145:19:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97175,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1145:7:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":97178,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1172:3:202","nodeType":"VariableDeclaration","scope":97180,"src":"1166:9:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":97177,"name":"bytes","nodeType":"ElementaryTypeName","src":"1166:5:202","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1096:80:202"}},{"id":97184,"nodeType":"VariableDeclaration","src":"1246:40:202","nodes":[],"baseFunctions":[99148],"constant":true,"documentation":{"id":97181,"nodeType":"StructuredDocumentation","src":"1183:58:202","text":"@notice Semantic version.\n @custom:semver 1.2.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1269:7:202","scope":97258,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":97182,"name":"string","nodeType":"ElementaryTypeName","src":"1246:6:202","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e322e30","id":97183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1279:7:202","typeDescriptions":{"typeIdentifier":"t_stringliteral_e374587661e69268352d25204d81b23ce801573f4b09f3545e69536dc085a37a","typeString":"literal_string \"1.2.0\""},"value":"1.2.0"},"visibility":"public"},{"id":97214,"nodeType":"FunctionDefinition","src":"1549:200:202","nodes":[],"body":{"id":97213,"nodeType":"Block","src":"1621:128:202","nodes":[],"statements":[{"expression":{"id":97203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":97194,"name":"attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97169,"src":"1631:12:202","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$_$","typeString":"mapping(address => mapping(address => mapping(bytes32 => bytes storage ref)))"}},"id":97199,"indexExpression":{"expression":{"id":97195,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1644:3:202","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":97196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1644:10:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1631:24:202","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes_storage_$_$","typeString":"mapping(address => mapping(bytes32 => bytes storage ref))"}},"id":97200,"indexExpression":{"id":97197,"name":"_about","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97187,"src":"1656:6:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1631:32:202","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes_storage_$","typeString":"mapping(bytes32 => bytes storage ref)"}},"id":97201,"indexExpression":{"id":97198,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97189,"src":"1664:4:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1631:38:202","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97202,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97191,"src":"1672:4:202","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1631:45:202","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":97204,"nodeType":"ExpressionStatement","src":"1631:45:202"},{"eventCall":{"arguments":[{"expression":{"id":97206,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1711:3:202","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":97207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1711:10:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97208,"name":"_about","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97187,"src":"1723:6:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97209,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97189,"src":"1731:4:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":97210,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97191,"src":"1737:4:202","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":97205,"name":"AttestationCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97180,"src":"1692:18:202","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,bytes32,bytes memory)"}},"id":97211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1692:50:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97212,"nodeType":"EmitStatement","src":"1687:55:202"}]},"documentation":{"id":97185,"nodeType":"StructuredDocumentation","src":"1293:251:202","text":"@notice Allows anyone to create an attestation.\n @param _about Address that the attestation is about.\n @param _key A key used to namespace the attestation.\n @param _val An arbitrary value stored as part of the attestation."},"functionSelector":"702b9dee","implemented":true,"kind":"function","modifiers":[],"name":"attest","nameLocation":"1558:6:202","parameters":{"id":97192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97187,"mutability":"mutable","name":"_about","nameLocation":"1573:6:202","nodeType":"VariableDeclaration","scope":97214,"src":"1565:14:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97186,"name":"address","nodeType":"ElementaryTypeName","src":"1565:7:202","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97189,"mutability":"mutable","name":"_key","nameLocation":"1589:4:202","nodeType":"VariableDeclaration","scope":97214,"src":"1581:12:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1581:7:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":97191,"mutability":"mutable","name":"_val","nameLocation":"1608:4:202","nodeType":"VariableDeclaration","scope":97214,"src":"1595:17:202","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":97190,"name":"bytes","nodeType":"ElementaryTypeName","src":"1595:5:202","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1564:49:202"},"returnParameters":{"id":97193,"nodeType":"ParameterList","parameters":[],"src":"1621:0:202"},"scope":97258,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":97257,"nodeType":"FunctionDefinition","src":"1875:375:202","nodes":[],"body":{"id":97256,"nodeType":"Block","src":"1942:308:202","nodes":[],"statements":[{"assignments":[97223],"declarations":[{"constant":false,"id":97223,"mutability":"mutable","name":"length","nameLocation":"1960:6:202","nodeType":"VariableDeclaration","scope":97256,"src":"1952:14:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97222,"name":"uint256","nodeType":"ElementaryTypeName","src":"1952:7:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":97226,"initialValue":{"expression":{"id":97224,"name":"_attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97219,"src":"1969:13:202","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AttestationData_$97160_calldata_ptr_$dyn_calldata_ptr","typeString":"struct AttestationStation.AttestationData calldata[] calldata"}},"id":97225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1969:20:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1952:37:202"},{"body":{"id":97254,"nodeType":"Block","src":"2032:212:202","statements":[{"assignments":[97236],"declarations":[{"constant":false,"id":97236,"mutability":"mutable","name":"attestation","nameLocation":"2069:11:202","nodeType":"VariableDeclaration","scope":97254,"src":"2046:34:202","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$97160_memory_ptr","typeString":"struct AttestationStation.AttestationData"},"typeName":{"id":97235,"nodeType":"UserDefinedTypeName","pathNode":{"id":97234,"name":"AttestationData","nodeType":"IdentifierPath","referencedDeclaration":97160,"src":"2046:15:202"},"referencedDeclaration":97160,"src":"2046:15:202","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$97160_storage_ptr","typeString":"struct AttestationStation.AttestationData"}},"visibility":"internal"}],"id":97240,"initialValue":{"baseExpression":{"id":97237,"name":"_attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97219,"src":"2083:13:202","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AttestationData_$97160_calldata_ptr_$dyn_calldata_ptr","typeString":"struct AttestationStation.AttestationData calldata[] calldata"}},"id":97239,"indexExpression":{"id":97238,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97228,"src":"2097:1:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2083:16:202","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$97160_calldata_ptr","typeString":"struct AttestationStation.AttestationData calldata"}},"nodeType":"VariableDeclarationStatement","src":"2046:53:202"},{"expression":{"arguments":[{"expression":{"id":97242,"name":"attestation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97236,"src":"2121:11:202","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$97160_memory_ptr","typeString":"struct AttestationStation.AttestationData memory"}},"id":97243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"about","nodeType":"MemberAccess","referencedDeclaration":97155,"src":"2121:17:202","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":97244,"name":"attestation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97236,"src":"2140:11:202","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$97160_memory_ptr","typeString":"struct AttestationStation.AttestationData memory"}},"id":97245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"key","nodeType":"MemberAccess","referencedDeclaration":97157,"src":"2140:15:202","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":97246,"name":"attestation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97236,"src":"2157:11:202","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$97160_memory_ptr","typeString":"struct AttestationStation.AttestationData memory"}},"id":97247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"val","nodeType":"MemberAccess","referencedDeclaration":97159,"src":"2157:15:202","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":97241,"name":"attest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97214,"src":"2114:6:202","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes32,bytes memory)"}},"id":97248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2114:59:202","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97249,"nodeType":"ExpressionStatement","src":"2114:59:202"},{"id":97253,"nodeType":"UncheckedBlock","src":"2188:46:202","statements":[{"expression":{"id":97251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2216:3:202","subExpression":{"id":97250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97228,"src":"2218:1:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":97252,"nodeType":"ExpressionStatement","src":"2216:3:202"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97231,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97228,"src":"2019:1:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":97232,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97223,"src":"2023:6:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2019:10:202","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97255,"initializationExpression":{"assignments":[97228],"declarations":[{"constant":false,"id":97228,"mutability":"mutable","name":"i","nameLocation":"2012:1:202","nodeType":"VariableDeclaration","scope":97255,"src":"2004:9:202","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97227,"name":"uint256","nodeType":"ElementaryTypeName","src":"2004:7:202","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":97230,"initialValue":{"hexValue":"30","id":97229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2016:1:202","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2004:13:202"},"nodeType":"ForStatement","src":"1999:245:202"}]},"documentation":{"id":97215,"nodeType":"StructuredDocumentation","src":"1755:115:202","text":"@notice Allows anyone to create attestations.\n @param _attestations An array of AttestationData structs."},"functionSelector":"5eb5ea10","implemented":true,"kind":"function","modifiers":[],"name":"attest","nameLocation":"1884:6:202","parameters":{"id":97220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97219,"mutability":"mutable","name":"_attestations","nameLocation":"1918:13:202","nodeType":"VariableDeclaration","scope":97257,"src":"1891:40:202","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AttestationData_$97160_calldata_ptr_$dyn_calldata_ptr","typeString":"struct AttestationStation.AttestationData[]"},"typeName":{"baseType":{"id":97217,"nodeType":"UserDefinedTypeName","pathNode":{"id":97216,"name":"AttestationData","nodeType":"IdentifierPath","referencedDeclaration":97160,"src":"1891:15:202"},"referencedDeclaration":97160,"src":"1891:15:202","typeDescriptions":{"typeIdentifier":"t_struct$_AttestationData_$97160_storage_ptr","typeString":"struct AttestationStation.AttestationData"}},"id":97218,"nodeType":"ArrayTypeName","src":"1891:17:202","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AttestationData_$97160_storage_$dyn_storage_ptr","typeString":"struct AttestationStation.AttestationData[]"}},"visibility":"internal"}],"src":"1890:42:202"},"returnParameters":{"id":97221,"nodeType":"ParameterList","parameters":[],"src":"1942:0:202"},"scope":97258,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":97152,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":99149,"src":"261:7:202"},"id":97153,"nodeType":"InheritanceSpecifier","src":"261:7:202"}],"canonicalName":"AttestationStation","contractDependencies":[],"contractKind":"contract","documentation":{"id":97151,"nodeType":"StructuredDocumentation","src":"111:119:202","text":"@title AttestationStation\n @author Optimism Collective\n @author Gitcoin\n @notice Where attestations live."},"fullyImplemented":true,"linearizedBaseContracts":[97258,99149],"name":"AttestationStation","nameLocation":"239:18:202","scope":97259,"usedErrors":[]}],"license":"MIT"},"id":202}
{"abi":[{"type":"function","name":"attest","inputs":[{"name":"_attestations","type":"tuple[]","internalType":"struct AttestationStation.AttestationData[]","components":[{"name":"about","type":"address","internalType":"address"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"val","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attest","inputs":[{"name":"_about","type":"address","internalType":"address"},{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_val","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attestations","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"AttestationCreated","inputs":[{"name":"creator","type":"address","indexed":true,"internalType":"address"},{"name":"about","type":"address","indexed":true,"internalType":"address"},{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107d9806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806329b42cb51461005157806354fd4d501461007a5780635eb5ea10146100b6578063702b9dee146100cb575b600080fd5b61006461005f3660046102c0565b6100de565b6040516100719190610367565b60405180910390f35b6100646040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b6100c96100c4366004610381565b610188565b005b6100c96100d93660046104d0565b6101eb565b600060208181529381526040808220855292815282812090935282529020805461010790610527565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610527565b80156101805780601f1061015557610100808354040283529160200191610180565b820191906000526020600020905b81548152906001019060200180831161016357829003601f168201915b505050505081565b8060005b818110156101e55760008484838181106101a8576101a861057a565b90506020028101906101ba91906105a9565b6101c3906105e7565b90506101dc8160000151826020015183604001516101eb565b5060010161018c565b50505050565b3360009081526020818152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320858452909152902061022b82826106b2565b50818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f28710dfecab43d1e29e02aa56b2e1e610c0bae19135c9cf7a83a1adb6df96d858460405161028a9190610367565b60405180910390a4505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102bb57600080fd5b919050565b6000806000606084860312156102d557600080fd5b6102de84610297565b92506102ec60208501610297565b9150604084013590509250925092565b6000815180845260005b8181101561032257602081850181015186830182015201610306565b81811115610334576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061037a60208301846102fc565b9392505050565b6000806020838503121561039457600080fd5b823567ffffffffffffffff808211156103ac57600080fd5b818501915085601f8301126103c057600080fd5b8135818111156103cf57600080fd5b8660208260051b85010111156103e457600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043657600080fd5b813567ffffffffffffffff80821115610451576104516103f6565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610497576104976103f6565b816040528381528660208588010111156104b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156104e557600080fd5b6104ee84610297565b925060208401359150604084013567ffffffffffffffff81111561051157600080fd5b61051d86828701610425565b9150509250925092565b600181811c9082168061053b57607f821691505b602082108103610574577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126105dd57600080fd5b9190910192915050565b6000606082360312156105f957600080fd5b6040516060810167ffffffffffffffff828210818311171561061d5761061d6103f6565b8160405261062a85610297565b835260208501356020840152604085013591508082111561064a57600080fd5b5061065736828601610425565b60408301525092915050565b601f8211156106ad57600081815260208120601f850160051c8101602086101561068a5750805b601f850160051c820191505b818110156106a957828155600101610696565b5050505b505050565b815167ffffffffffffffff8111156106cc576106cc6103f6565b6106e0816106da8454610527565b84610663565b602080601f83116001811461073357600084156106fd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106a9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561078057888601518255948401946001909101908401610761565b50858210156107bc57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c634300080f000a","sourceMap":"230:2022:213:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806329b42cb51461005157806354fd4d501461007a5780635eb5ea10146100b6578063702b9dee146100cb575b600080fd5b61006461005f3660046102c0565b6100de565b6040516100719190610367565b60405180910390f35b6100646040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b6100c96100c4366004610381565b610188565b005b6100c96100d93660046104d0565b6101eb565b600060208181529381526040808220855292815282812090935282529020805461010790610527565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610527565b80156101805780601f1061015557610100808354040283529160200191610180565b820191906000526020600020905b81548152906001019060200180831161016357829003601f168201915b505050505081565b8060005b818110156101e55760008484838181106101a8576101a861057a565b90506020028101906101ba91906105a9565b6101c3906105e7565b90506101dc8160000151826020015183604001516101eb565b5060010161018c565b50505050565b3360009081526020818152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320858452909152902061022b82826106b2565b50818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f28710dfecab43d1e29e02aa56b2e1e610c0bae19135c9cf7a83a1adb6df96d858460405161028a9190610367565b60405180910390a4505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102bb57600080fd5b919050565b6000806000606084860312156102d557600080fd5b6102de84610297565b92506102ec60208501610297565b9150604084013590509250925092565b6000815180845260005b8181101561032257602081850181015186830182015201610306565b81811115610334576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061037a60208301846102fc565b9392505050565b6000806020838503121561039457600080fd5b823567ffffffffffffffff808211156103ac57600080fd5b818501915085601f8301126103c057600080fd5b8135818111156103cf57600080fd5b8660208260051b85010111156103e457600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261043657600080fd5b813567ffffffffffffffff80821115610451576104516103f6565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610497576104976103f6565b816040528381528660208588010111156104b057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156104e557600080fd5b6104ee84610297565b925060208401359150604084013567ffffffffffffffff81111561051157600080fd5b61051d86828701610425565b9150509250925092565b600181811c9082168061053b57607f821691505b602082108103610574577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126105dd57600080fd5b9190910192915050565b6000606082360312156105f957600080fd5b6040516060810167ffffffffffffffff828210818311171561061d5761061d6103f6565b8160405261062a85610297565b835260208501356020840152604085013591508082111561064a57600080fd5b5061065736828601610425565b60408301525092915050565b601f8211156106ad57600081815260208120601f850160051c8101602086101561068a5750805b601f850160051c820191505b818110156106a957828155600101610696565b5050505b505050565b815167ffffffffffffffff8111156106cc576106cc6103f6565b6106e0816106da8454610527565b84610663565b602080601f83116001811461073357600084156106fd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106a9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561078057888601518255948401946001909101908401610761565b50858210156107bc57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c634300080f000a","sourceMap":"230:2022:213:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;720:85;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1246:40;;;;;;;;;;;;;;;;;;;;;1875:375;;;;;;:::i;:::-;;:::i;:::-;;1549:200;;;;;;:::i;:::-;;:::i;720:85::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1875:375::-;1969:13;1952:14;1999:245;2023:6;2019:1;:10;1999:245;;;2046:34;2083:13;;2097:1;2083:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2046:53;;;:::i;:::-;;;2114:59;2121:11;:17;;;2140:11;:15;;;2157:11;:15;;;2114:6;:59::i;:::-;-1:-1:-1;2216:3:213;;1999:245;;;;1942:308;1875:375;;:::o;1549:200::-;1644:10;1631:12;:24;;;;;;;;;;;;:32;;;;;;;;;:38;;;;;;;;:45;1672:4;1631:38;:45;:::i;:::-;;1731:4;1723:6;1692:50;;1711:10;1692:50;;;1737:4;1692:50;;;;;;:::i;:::-;;;;;;;;1549:200;;;:::o;14:196:350:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:328::-;292:6;300;308;361:2;349:9;340:7;336:23;332:32;329:52;;;377:1;374;367:12;329:52;400:29;419:9;400:29;:::i;:::-;390:39;;448:38;482:2;471:9;467:18;448:38;:::i;:::-;438:48;;533:2;522:9;518:18;505:32;495:42;;215:328;;;;;:::o;548:530::-;589:3;627:5;621:12;654:6;649:3;642:19;679:1;689:162;703:6;700:1;697:13;689:162;;;765:4;821:13;;;817:22;;811:29;793:11;;;789:20;;782:59;718:12;689:162;;;869:6;866:1;863:13;860:87;;;935:1;928:4;919:6;914:3;910:16;906:27;899:38;860:87;-1:-1:-1;992:2:350;980:15;997:66;976:88;967:98;;;;1067:4;963:109;;548:530;-1:-1:-1;;548:530:350:o;1083:217::-;1230:2;1219:9;1212:21;1193:4;1250:44;1290:2;1279:9;1275:18;1267:6;1250:44;:::i;:::-;1242:52;1083:217;-1:-1:-1;;;1083:217:350:o;1529:652::-;1652:6;1660;1713:2;1701:9;1692:7;1688:23;1684:32;1681:52;;;1729:1;1726;1719:12;1681:52;1769:9;1756:23;1798:18;1839:2;1831:6;1828:14;1825:34;;;1855:1;1852;1845:12;1825:34;1893:6;1882:9;1878:22;1868:32;;1938:7;1931:4;1927:2;1923:13;1919:27;1909:55;;1960:1;1957;1950:12;1909:55;2000:2;1987:16;2026:2;2018:6;2015:14;2012:34;;;2042:1;2039;2032:12;2012:34;2095:7;2090:2;2080:6;2077:1;2073:14;2069:2;2065:23;2061:32;2058:45;2055:65;;;2116:1;2113;2106:12;2055:65;2147:2;2139:11;;;;;2169:6;;-1:-1:-1;1529:652:350;;-1:-1:-1;;;;1529:652:350:o;2186:184::-;2238:77;2235:1;2228:88;2335:4;2332:1;2325:15;2359:4;2356:1;2349:15;2375:777;2417:5;2470:3;2463:4;2455:6;2451:17;2447:27;2437:55;;2488:1;2485;2478:12;2437:55;2524:6;2511:20;2550:18;2587:2;2583;2580:10;2577:36;;;2593:18;;:::i;:::-;2727:2;2721:9;2789:4;2781:13;;2632:66;2777:22;;;2801:2;2773:31;2769:40;2757:53;;;2825:18;;;2845:22;;;2822:46;2819:72;;;2871:18;;:::i;:::-;2911:10;2907:2;2900:22;2946:2;2938:6;2931:18;2992:3;2985:4;2980:2;2972:6;2968:15;2964:26;2961:35;2958:55;;;3009:1;3006;2999:12;2958:55;3073:2;3066:4;3058:6;3054:17;3047:4;3039:6;3035:17;3022:54;3120:1;3113:4;3108:2;3100:6;3096:15;3092:26;3085:37;3140:6;3131:15;;;;;;2375:777;;;;:::o;3157:462::-;3243:6;3251;3259;3312:2;3300:9;3291:7;3287:23;3283:32;3280:52;;;3328:1;3325;3318:12;3280:52;3351:29;3370:9;3351:29;:::i;:::-;3341:39;;3427:2;3416:9;3412:18;3399:32;3389:42;;3482:2;3471:9;3467:18;3454:32;3509:18;3501:6;3498:30;3495:50;;;3541:1;3538;3531:12;3495:50;3564:49;3605:7;3596:6;3585:9;3581:22;3564:49;:::i;:::-;3554:59;;;3157:462;;;;;:::o;3624:437::-;3703:1;3699:12;;;;3746;;;3767:61;;3821:4;3813:6;3809:17;3799:27;;3767:61;3874:2;3866:6;3863:14;3843:18;3840:38;3837:218;;3911:77;3908:1;3901:88;4012:4;4009:1;4002:15;4040:4;4037:1;4030:15;3837:218;;3624:437;;;:::o;4066:184::-;4118:77;4115:1;4108:88;4215:4;4212:1;4205:15;4239:4;4236:1;4229:15;4255:393;4358:4;4416:11;4403:25;4506:66;4495:8;4479:14;4475:29;4471:102;4451:18;4447:127;4437:155;;4588:1;4585;4578:12;4437:155;4609:33;;;;;4255:393;-1:-1:-1;;4255:393:350:o;4653:754::-;4775:9;4834:4;4826:5;4810:14;4806:26;4802:37;4799:57;;;4852:1;4849;4842:12;4799:57;4885:2;4879:9;4927:4;4919:6;4915:17;4951:18;5019:6;5007:10;5004:22;4999:2;4987:10;4984:18;4981:46;4978:72;;;5030:18;;:::i;:::-;5070:10;5066:2;5059:22;5105:25;5124:5;5105:25;:::i;:::-;5097:6;5090:41;5188:2;5181:5;5177:14;5164:28;5159:2;5151:6;5147:15;5140:53;5240:2;5233:5;5229:14;5216:28;5202:42;;5267:2;5259:6;5256:14;5253:34;;;5283:1;5280;5273:12;5253:34;;5320:52;5357:14;5348:6;5341:5;5337:18;5320:52;:::i;:::-;5315:2;5303:15;;5296:77;-1:-1:-1;5307:6:350;4653:754;-1:-1:-1;;4653:754:350:o;5537:544::-;5638:2;5633:3;5630:11;5627:448;;;5674:1;5699:5;5695:2;5688:17;5744:4;5740:2;5730:19;5814:2;5802:10;5798:19;5795:1;5791:27;5785:4;5781:38;5850:4;5838:10;5835:20;5832:47;;;-1:-1:-1;5873:4:350;5832:47;5928:2;5923:3;5919:12;5916:1;5912:20;5906:4;5902:31;5892:41;;5983:82;6001:2;5994:5;5991:13;5983:82;;;6046:17;;;6027:1;6016:13;5983:82;;;5987:3;;;5627:448;5537:544;;;:::o;6317:1467::-;6441:3;6435:10;6468:18;6460:6;6457:30;6454:56;;;6490:18;;:::i;:::-;6519:96;6608:6;6568:38;6600:4;6594:11;6568:38;:::i;:::-;6562:4;6519:96;:::i;:::-;6670:4;;6734:2;6723:14;;6751:1;6746:781;;;;7571:1;7588:6;7585:89;;;-1:-1:-1;7640:19:350;;;7634:26;7585:89;6223:66;6214:1;6210:11;;;6206:84;6202:89;6192:100;6298:1;6294:11;;;6189:117;7687:81;;6716:1062;;6746:781;5484:1;5477:14;;;5521:4;5508:18;;6794:66;6782:79;;;6958:236;6972:7;6969:1;6966:14;6958:236;;;7061:19;;;7055:26;7040:42;;7153:27;;;;7121:1;7109:14;;;;6988:19;;6958:236;;;6962:3;7222:6;7213:7;7210:19;7207:261;;;7283:19;;;7277:26;7384:66;7366:1;7362:14;;;7378:3;7358:24;7354:97;7350:102;7335:118;7320:134;;7207:261;-1:-1:-1;;;;;7514:1:350;7498:14;;;7494:22;7481:36;;-1:-1:-1;6317:1467:350:o","linkReferences":{}},"methodIdentifiers":{"attest((address,bytes32,bytes)[])":"5eb5ea10","attest(address,bytes32,bytes)":"702b9dee","attestations(address,address,bytes32)":"29b42cb5","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"about\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"AttestationCreated\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"about\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"internalType\":\"struct AttestationStation.AttestationData[]\",\"name\":\"_attestations\",\"type\":\"tuple[]\"}],\"name\":\"attest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_about\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_val\",\"type\":\"bytes\"}],\"name\":\"attest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"attestations\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Optimism CollectiveGitcoin\",\"events\":{\"AttestationCreated(address,address,bytes32,bytes)\":{\"params\":{\"about\":\"Address attestation is about.\",\"creator\":\"Address that made the attestation.\",\"key\":\"Key of the attestation.\",\"val\":\"Value of the attestation.\"}}},\"kind\":\"dev\",\"methods\":{\"attest((address,bytes32,bytes)[])\":{\"params\":{\"_attestations\":\"An array of AttestationData structs.\"}},\"attest(address,bytes32,bytes)\":{\"params\":{\"_about\":\"Address that the attestation is about.\",\"_key\":\"A key used to namespace the attestation.\",\"_val\":\"An arbitrary value stored as part of the attestation.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"AttestationStation\",\"version\":1},\"userdoc\":{\"events\":{\"AttestationCreated(address,address,bytes32,bytes)\":{\"notice\":\"Emitted when Attestation is created.\"}},\"kind\":\"user\",\"methods\":{\"attest((address,bytes32,bytes)[])\":{\"notice\":\"Allows anyone to create attestations.\"},\"attest(address,bytes32,bytes)\":{\"notice\":\"Allows anyone to create an attestation.\"},\"attestations(address,address,bytes32)\":{\"notice\":\"Maps addresses to attestations. Creator => About => Key => Value.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"Where attestations live.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/op-nft/AttestationStation.sol\":\"AttestationStation\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/op-nft/AttestationStation.sol\":{\"keccak256\":\"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef\",\"dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":true},{"internalType":"address","name":"about","type":"address","indexed":true},{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"AttestationCreated","anonymous":false},{"inputs":[{"internalType":"struct AttestationStation.AttestationData[]","name":"_attestations","type":"tuple[]","components":[{"internalType":"address","name":"about","type":"address"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes","name":"val","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"attest"},{"inputs":[{"internalType":"address","name":"_about","type":"address"},{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes","name":"_val","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"attest"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"attestations","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"attest((address,bytes32,bytes)[])":{"params":{"_attestations":"An array of AttestationData structs."}},"attest(address,bytes32,bytes)":{"params":{"_about":"Address that the attestation is about.","_key":"A key used to namespace the attestation.","_val":"An arbitrary value stored as part of the attestation."}}},"version":1},"userdoc":{"kind":"user","methods":{"attest((address,bytes32,bytes)[])":{"notice":"Allows anyone to create attestations."},"attest(address,bytes32,bytes)":{"notice":"Allows anyone to create an attestation."},"attestations(address,address,bytes32)":{"notice":"Maps addresses to attestations. Creator => About => Key => Value."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/op-nft/AttestationStation.sol":"AttestationStation"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/op-nft/AttestationStation.sol":{"keccak256":"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208","urls":["bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef","dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":104047,"contract":"src/periphery/op-nft/AttestationStation.sol:AttestationStation","label":"attestations","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => mapping(bytes32 => bytes)))","numberOfBytes":"32","value":"t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage))"},"t_mapping(t_address,t_mapping(t_bytes32,t_bytes_storage))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => bytes))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bytes_storage)"},"t_mapping(t_bytes32,t_bytes_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"}}},"userdoc":{"version":1,"kind":"user","methods":{"attest((address,bytes32,bytes)[])":{"notice":"Allows anyone to create attestations."},"attest(address,bytes32,bytes)":{"notice":"Allows anyone to create an attestation."},"attestations(address,address,bytes32)":{"notice":"Maps addresses to attestations. Creator => About => Key => Value."},"version()":{"notice":"Semantic version."}},"events":{"AttestationCreated(address,address,bytes32,bytes)":{"notice":"Emitted when Attestation is created."}},"notice":"Where attestations live."},"devdoc":{"version":1,"kind":"dev","author":"Optimism CollectiveGitcoin","methods":{"attest((address,bytes32,bytes)[])":{"params":{"_attestations":"An array of AttestationData structs."}},"attest(address,bytes32,bytes)":{"params":{"_about":"Address that the attestation is about.","_key":"A key used to namespace the attestation.","_val":"An arbitrary value stored as part of the attestation."}}},"events":{"AttestationCreated(address,address,bytes32,bytes)":{"params":{"about":"Address attestation is about.","creator":"Address that made the attestation.","key":"Key of the attestation.","val":"Value of the attestation."}}},"title":"AttestationStation"},"id":213}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/Base.sol","id":2398,"exportedSymbols":{"CommonBase":[2385],"ScriptBase":[2397],"StdStorage":[8562],"TestBase":[2388],"Vm":[14428],"VmSafe":[13857]},"nodeType":"SourceUnit","src":"32:1761:2","nodes":[{"id":2324,"nodeType":"PragmaDirective","src":"32:31:2","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":2326,"nodeType":"ImportDirective","src":"65:44:2","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":2398,"sourceUnit":10202,"symbolAliases":[{"foreign":{"id":2325,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8562,"src":"73:10:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2329,"nodeType":"ImportDirective","src":"110:36:2","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":2398,"sourceUnit":14429,"symbolAliases":[{"foreign":{"id":2327,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14428,"src":"118:2:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2328,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"122:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2385,"nodeType":"ContractDefinition","src":"148:1493:2","nodes":[{"id":2343,"nodeType":"VariableDeclaration","src":"254:94:2","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2330,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":2338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":2337,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"317:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2335,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:2","typeDescriptions":{}}},"id":2340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"309:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2333,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:2","typeDescriptions":{}}},"id":2341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"301:46:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2331,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:2","typeDescriptions":{}}},"id":2342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"293:55:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":2346,"nodeType":"VariableDeclaration","src":"438:78:2","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2344,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":2345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":2349,"nodeType":"VariableDeclaration","src":"623:86:2","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"649:15:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2347,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":2348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:42:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":2363,"nodeType":"VariableDeclaration","src":"812:105:2","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"838:14:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2350,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":2358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:24:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":2357,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"879:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"879:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"871:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2355,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:2","typeDescriptions":{}}},"id":2360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"871:44:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"863:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2353,"name":"uint160","nodeType":"ElementaryTypeName","src":"863:7:2","typeDescriptions":{}}},"id":2361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"863:53:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"855:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2351,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:2","typeDescriptions":{}}},"id":2362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"855:62:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":2366,"nodeType":"VariableDeclaration","src":"992:92:2","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"1018:21:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2364,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":2365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1042:42:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":2369,"nodeType":"VariableDeclaration","src":"1158:89:2","nodes":[],"constant":true,"mutability":"constant","name":"MULTICALL3_ADDRESS","nameLocation":"1184:18:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2367,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":2368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1205:42:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":2372,"nodeType":"VariableDeclaration","src":"1294:130:2","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"1320:15:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2370,"name":"uint256","nodeType":"ElementaryTypeName","src":"1294:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":2371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1346:78:2","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"internal"},{"id":2375,"nodeType":"VariableDeclaration","src":"1431:126:2","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1457:11:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2373,"name":"uint256","nodeType":"ElementaryTypeName","src":"1431:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":2374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:78:2","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":2381,"nodeType":"VariableDeclaration","src":"1564:40:2","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1585:2:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"},"typeName":{"id":2377,"nodeType":"UserDefinedTypeName","pathNode":{"id":2376,"name":"Vm","nodeType":"IdentifierPath","referencedDeclaration":14428,"src":"1564:2:2"},"referencedDeclaration":14428,"src":"1564:2:2","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"}},"value":{"arguments":[{"id":2379,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2343,"src":"1593:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2378,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14428,"src":"1590:2:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$14428_$","typeString":"type(contract Vm)"}},"id":2380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1590:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"}},"visibility":"internal"},{"id":2384,"nodeType":"VariableDeclaration","src":"1610:28:2","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1630:8:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$8562_storage","typeString":"struct StdStorage"},"typeName":{"id":2383,"nodeType":"UserDefinedTypeName","pathNode":{"id":2382,"name":"StdStorage","nodeType":"IdentifierPath","referencedDeclaration":8562,"src":"1610:10:2"},"referencedDeclaration":8562,"src":"1610:10:2","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$8562_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[2385],"name":"CommonBase","nameLocation":"166:10:2","scope":2398,"usedErrors":[]},{"id":2388,"nodeType":"ContractDefinition","src":"1643:43:2","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":2386,"name":"CommonBase","nodeType":"IdentifierPath","referencedDeclaration":2385,"src":"1673:10:2"},"id":2387,"nodeType":"InheritanceSpecifier","src":"1673:10:2"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[2388,2385],"name":"TestBase","nameLocation":"1661:8:2","scope":2398,"usedErrors":[]},{"id":2397,"nodeType":"ContractDefinition","src":"1688:104:2","nodes":[{"id":2396,"nodeType":"VariableDeclaration","src":"1737:52:2","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1762:6:2","scope":2397,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$13857","typeString":"contract VmSafe"},"typeName":{"id":2392,"nodeType":"UserDefinedTypeName","pathNode":{"id":2391,"name":"VmSafe","nodeType":"IdentifierPath","referencedDeclaration":13857,"src":"1737:6:2"},"referencedDeclaration":13857,"src":"1737:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$13857","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":2394,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2343,"src":"1778:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2393,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"1771:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$13857_$","typeString":"type(contract VmSafe)"}},"id":2395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1771:18:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$13857","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":2389,"name":"CommonBase","nodeType":"IdentifierPath","referencedDeclaration":2385,"src":"1720:10:2"},"id":2390,"nodeType":"InheritanceSpecifier","src":"1720:10:2"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[2397,2385],"name":"ScriptBase","nameLocation":"1706:10:2","scope":2398,"usedErrors":[]}],"license":"MIT"},"id":2}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Base.sol:CommonBase","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":2}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/Base.sol","id":2398,"exportedSymbols":{"CommonBase":[2385],"ScriptBase":[2397],"StdStorage":[8562],"TestBase":[2388],"Vm":[14428],"VmSafe":[13857]},"nodeType":"SourceUnit","src":"32:1761:2","nodes":[{"id":2324,"nodeType":"PragmaDirective","src":"32:31:2","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":2326,"nodeType":"ImportDirective","src":"65:44:2","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":2398,"sourceUnit":10202,"symbolAliases":[{"foreign":{"id":2325,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8562,"src":"73:10:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2329,"nodeType":"ImportDirective","src":"110:36:2","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":2398,"sourceUnit":14429,"symbolAliases":[{"foreign":{"id":2327,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14428,"src":"118:2:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2328,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"122:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2385,"nodeType":"ContractDefinition","src":"148:1493:2","nodes":[{"id":2343,"nodeType":"VariableDeclaration","src":"254:94:2","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2330,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":2338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":2337,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"317:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2335,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:2","typeDescriptions":{}}},"id":2340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"309:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2333,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:2","typeDescriptions":{}}},"id":2341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"301:46:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2331,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:2","typeDescriptions":{}}},"id":2342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"293:55:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":2346,"nodeType":"VariableDeclaration","src":"438:78:2","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2344,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":2345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":2349,"nodeType":"VariableDeclaration","src":"623:86:2","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"649:15:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2347,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":2348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:42:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":2363,"nodeType":"VariableDeclaration","src":"812:105:2","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"838:14:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2350,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":2358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:24:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":2357,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"879:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"879:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"871:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2355,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:2","typeDescriptions":{}}},"id":2360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"871:44:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"863:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2353,"name":"uint160","nodeType":"ElementaryTypeName","src":"863:7:2","typeDescriptions":{}}},"id":2361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"863:53:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"855:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2351,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:2","typeDescriptions":{}}},"id":2362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"855:62:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":2366,"nodeType":"VariableDeclaration","src":"992:92:2","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"1018:21:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2364,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":2365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1042:42:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":2369,"nodeType":"VariableDeclaration","src":"1158:89:2","nodes":[],"constant":true,"mutability":"constant","name":"MULTICALL3_ADDRESS","nameLocation":"1184:18:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2367,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":2368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1205:42:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":2372,"nodeType":"VariableDeclaration","src":"1294:130:2","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"1320:15:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2370,"name":"uint256","nodeType":"ElementaryTypeName","src":"1294:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":2371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1346:78:2","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"internal"},{"id":2375,"nodeType":"VariableDeclaration","src":"1431:126:2","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1457:11:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2373,"name":"uint256","nodeType":"ElementaryTypeName","src":"1431:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":2374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:78:2","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":2381,"nodeType":"VariableDeclaration","src":"1564:40:2","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1585:2:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"},"typeName":{"id":2377,"nodeType":"UserDefinedTypeName","pathNode":{"id":2376,"name":"Vm","nodeType":"IdentifierPath","referencedDeclaration":14428,"src":"1564:2:2"},"referencedDeclaration":14428,"src":"1564:2:2","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"}},"value":{"arguments":[{"id":2379,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2343,"src":"1593:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2378,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14428,"src":"1590:2:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$14428_$","typeString":"type(contract Vm)"}},"id":2380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1590:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"}},"visibility":"internal"},{"id":2384,"nodeType":"VariableDeclaration","src":"1610:28:2","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1630:8:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$8562_storage","typeString":"struct StdStorage"},"typeName":{"id":2383,"nodeType":"UserDefinedTypeName","pathNode":{"id":2382,"name":"StdStorage","nodeType":"IdentifierPath","referencedDeclaration":8562,"src":"1610:10:2"},"referencedDeclaration":8562,"src":"1610:10:2","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$8562_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[2385],"name":"CommonBase","nameLocation":"166:10:2","scope":2398,"usedErrors":[]},{"id":2388,"nodeType":"ContractDefinition","src":"1643:43:2","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":2386,"name":"CommonBase","nodeType":"IdentifierPath","referencedDeclaration":2385,"src":"1673:10:2"},"id":2387,"nodeType":"InheritanceSpecifier","src":"1673:10:2"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[2388,2385],"name":"TestBase","nameLocation":"1661:8:2","scope":2398,"usedErrors":[]},{"id":2397,"nodeType":"ContractDefinition","src":"1688:104:2","nodes":[{"id":2396,"nodeType":"VariableDeclaration","src":"1737:52:2","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1762:6:2","scope":2397,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$13857","typeString":"contract VmSafe"},"typeName":{"id":2392,"nodeType":"UserDefinedTypeName","pathNode":{"id":2391,"name":"VmSafe","nodeType":"IdentifierPath","referencedDeclaration":13857,"src":"1737:6:2"},"referencedDeclaration":13857,"src":"1737:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$13857","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":2394,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2343,"src":"1778:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2393,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"1771:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$13857_$","typeString":"type(contract VmSafe)"}},"id":2395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1771:18:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$13857","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":2389,"name":"CommonBase","nodeType":"IdentifierPath","referencedDeclaration":2385,"src":"1720:10:2"},"id":2390,"nodeType":"InheritanceSpecifier","src":"1720:10:2"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[2397,2385],"name":"ScriptBase","nameLocation":"1706:10:2","scope":2398,"usedErrors":[]}],"license":"MIT"},"id":2}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Base.sol:ScriptBase","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":2}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/Base.sol","id":2398,"exportedSymbols":{"CommonBase":[2385],"ScriptBase":[2397],"StdStorage":[8562],"TestBase":[2388],"Vm":[14428],"VmSafe":[13857]},"nodeType":"SourceUnit","src":"32:1761:2","nodes":[{"id":2324,"nodeType":"PragmaDirective","src":"32:31:2","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":2326,"nodeType":"ImportDirective","src":"65:44:2","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":2398,"sourceUnit":10202,"symbolAliases":[{"foreign":{"id":2325,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8562,"src":"73:10:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2329,"nodeType":"ImportDirective","src":"110:36:2","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":2398,"sourceUnit":14429,"symbolAliases":[{"foreign":{"id":2327,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14428,"src":"118:2:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2328,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"122:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2385,"nodeType":"ContractDefinition","src":"148:1493:2","nodes":[{"id":2343,"nodeType":"VariableDeclaration","src":"254:94:2","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2330,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":2338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":2337,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"317:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2335,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:2","typeDescriptions":{}}},"id":2340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"309:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2333,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:2","typeDescriptions":{}}},"id":2341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"301:46:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2331,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:2","typeDescriptions":{}}},"id":2342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"293:55:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":2346,"nodeType":"VariableDeclaration","src":"438:78:2","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2344,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":2345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":2349,"nodeType":"VariableDeclaration","src":"623:86:2","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"649:15:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2347,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":2348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:42:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":2363,"nodeType":"VariableDeclaration","src":"812:105:2","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"838:14:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2350,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":2358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:24:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":2357,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"879:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"879:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"871:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2355,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:2","typeDescriptions":{}}},"id":2360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"871:44:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"863:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2353,"name":"uint160","nodeType":"ElementaryTypeName","src":"863:7:2","typeDescriptions":{}}},"id":2361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"863:53:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"855:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2351,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:2","typeDescriptions":{}}},"id":2362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"855:62:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":2366,"nodeType":"VariableDeclaration","src":"992:92:2","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"1018:21:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2364,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":2365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1042:42:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":2369,"nodeType":"VariableDeclaration","src":"1158:89:2","nodes":[],"constant":true,"mutability":"constant","name":"MULTICALL3_ADDRESS","nameLocation":"1184:18:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2367,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":2368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1205:42:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":2372,"nodeType":"VariableDeclaration","src":"1294:130:2","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"1320:15:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2370,"name":"uint256","nodeType":"ElementaryTypeName","src":"1294:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":2371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1346:78:2","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"internal"},{"id":2375,"nodeType":"VariableDeclaration","src":"1431:126:2","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1457:11:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2373,"name":"uint256","nodeType":"ElementaryTypeName","src":"1431:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":2374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:78:2","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":2381,"nodeType":"VariableDeclaration","src":"1564:40:2","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1585:2:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"},"typeName":{"id":2377,"nodeType":"UserDefinedTypeName","pathNode":{"id":2376,"name":"Vm","nodeType":"IdentifierPath","referencedDeclaration":14428,"src":"1564:2:2"},"referencedDeclaration":14428,"src":"1564:2:2","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"}},"value":{"arguments":[{"id":2379,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2343,"src":"1593:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2378,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14428,"src":"1590:2:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$14428_$","typeString":"type(contract Vm)"}},"id":2380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1590:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"}},"visibility":"internal"},{"id":2384,"nodeType":"VariableDeclaration","src":"1610:28:2","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1630:8:2","scope":2385,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$8562_storage","typeString":"struct StdStorage"},"typeName":{"id":2383,"nodeType":"UserDefinedTypeName","pathNode":{"id":2382,"name":"StdStorage","nodeType":"IdentifierPath","referencedDeclaration":8562,"src":"1610:10:2"},"referencedDeclaration":8562,"src":"1610:10:2","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$8562_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[2385],"name":"CommonBase","nameLocation":"166:10:2","scope":2398,"usedErrors":[]},{"id":2388,"nodeType":"ContractDefinition","src":"1643:43:2","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":2386,"name":"CommonBase","nodeType":"IdentifierPath","referencedDeclaration":2385,"src":"1673:10:2"},"id":2387,"nodeType":"InheritanceSpecifier","src":"1673:10:2"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[2388,2385],"name":"TestBase","nameLocation":"1661:8:2","scope":2398,"usedErrors":[]},{"id":2397,"nodeType":"ContractDefinition","src":"1688:104:2","nodes":[{"id":2396,"nodeType":"VariableDeclaration","src":"1737:52:2","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1762:6:2","scope":2397,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$13857","typeString":"contract VmSafe"},"typeName":{"id":2392,"nodeType":"UserDefinedTypeName","pathNode":{"id":2391,"name":"VmSafe","nodeType":"IdentifierPath","referencedDeclaration":13857,"src":"1737:6:2"},"referencedDeclaration":13857,"src":"1737:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$13857","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":2394,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2343,"src":"1778:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2393,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"1771:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$13857_$","typeString":"type(contract VmSafe)"}},"id":2395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1771:18:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$13857","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":2389,"name":"CommonBase","nodeType":"IdentifierPath","referencedDeclaration":2385,"src":"1720:10:2"},"id":2390,"nodeType":"InheritanceSpecifier","src":"1720:10:2"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[2397,2385],"name":"ScriptBase","nameLocation":"1706:10:2","scope":2398,"usedErrors":[]}],"license":"MIT"},"id":2}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Base.sol:TestBase","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":2}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_minWithdrawalAmount","type":"uint256","internalType":"uint256"},{"name":"_withdrawalNetwork","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MIN_WITHDRAWAL_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WITHDRAWAL_NETWORK","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"view"},{"type":"function","name":"totalProcessed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawalNetwork","type":"uint8","indexed":false,"internalType":"enum FeeVault.WithdrawalNetwork"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561001057600080fd5b506040516108d13803806108d183398101604081905261002f91610079565b6001600160a01b03831660a0526080829052828282806001811115610056576100566100cc565b60c081600181111561006a5761006a6100cc565b815250505050505050506100e2565b60008060006060848603121561008e57600080fd5b83516001600160a01b03811681146100a557600080fd5b602085015160408601519194509250600281106100c157600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60805160a05160c051610790610141600039600081816101760152818161038901526103c40152600081816087015281816102d801528181610367015281816103fd01526105640152600081816101b701526101db01526107906000f3fe6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"359:649:131:-:0;;;798:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2429:22:209;;;;2461:44;;;;945:10:131;957:20;979:18;;2515:39:209;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2319:242;;;798:208:131;;;359:649;;14:517:334;125:6;133;141;194:2;182:9;173:7;169:23;165:32;162:52;;;210:1;207;200:12;162:52;236:16;;-1:-1:-1;;;;;281:31:334;;271:42;;261:70;;327:1;324;317:12;261:70;395:2;380:18;;374:25;444:2;429:18;;423:25;350:5;;-1:-1:-1;374:25:334;-1:-1:-1;479:1:334;467:14;;457:42;;495:1;492;485:12;457:42;518:7;508:17;;;14:517;;;;;:::o;536:127::-;597:10;592:3;588:20;585:1;578:31;628:4;625:1;618:15;652:4;649:1;642:15;536:127;359:649:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"359:649:131:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:34:209;;;;;;;;;;;;;;;;;;190:42:334;178:55;;;160:74;;148:2;133:18;820:34:209;;;;;;;;2732:832;;;;;;;;;;;;;:::i;:::-;;471:40:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1188:29:209:-;;;;;;;;;;;;;;;;;;;1152:25:334;;;1140:2;1125:18;1188:29:209;1006:177:334;927:53:209;;;;;;;;;;;;;;;;;;;;;;:::i;716:46::-;;;;;;;;;;;;;;;2732:832;2817:21;2792;:46;;2771:167;;;;;;;2116:2:334;2771:167:209;;;2098:21:334;2155:2;2135:18;;;2128:30;2194:34;2174:18;;;2167:62;2265:34;2245:18;;;2238:62;2337:12;2316:19;;;2309:41;2367:19;;2771:167:209;;;;;;;;;2949:13;2965:21;2949:37;;3014:5;2996:14;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;3035:40:209;;;2886:25:334;;;3053:9:209;2930:42:334;3008:15;3003:2;2988:18;;2981:43;3064:10:209;3040:18:334;;;3033:43;3035:40:209;;;;;;;2874:2:334;3035:40:209;;;3090:60;3101:5;3108:9;3119:10;3131:18;3090:60;;;;;;;;;:::i;:::-;;;;;;;;3187:20;3165:18;:42;;;;;;;;:::i;:::-;;3161:397;;3224:12;3241:9;:14;;3264:5;3241:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3223:55;;;3300:7;3292:68;;;;;;;4022:2:334;3292:68:209;;;4004:21:334;4061:2;4041:18;;;4034:30;4100:34;4080:18;;;4073:62;4171:18;4151;;;4144:46;4207:19;;3292:68:209;3820:412:334;3292:68:209;3209:162;2761:803;2732:832::o;3161:397::-;3524:9;;;;;;;;-1:-1:-1;3524:9:209;;3391:156;;;;;635:42:183;;3391:68:209;;3468:5;;3391:156;;3493:9;;1112:6;;3391:156;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:803;2732:832::o;245:531:334:-;287:3;325:5;319:12;352:6;347:3;340:19;377:1;387:162;401:6;398:1;395:13;387:162;;;463:4;519:13;;;515:22;;509:29;491:11;;;487:20;;480:59;416:12;387:162;;;567:6;564:1;561:13;558:87;;;633:1;626:4;617:6;612:3;608:16;604:27;597:38;558:87;-1:-1:-1;690:2:334;678:15;695:66;674:88;665:98;;;;765:4;661:109;;245:531;-1:-1:-1;;245:531:334:o;781:220::-;930:2;919:9;912:21;893:4;950:45;991:2;980:9;976:18;968:6;950:45;:::i;:::-;942:53;781:220;-1:-1:-1;;;781:220:334:o;1188:184::-;1240:77;1237:1;1230:88;1337:4;1334:1;1327:15;1361:4;1358:1;1351:15;1377:302;1466:1;1459:5;1456:12;1446:200;;1502:77;1499:1;1492:88;1603:4;1600:1;1593:15;1631:4;1628:1;1621:15;1446:200;1655:18;;1377:302::o;1684:225::-;1839:2;1824:18;;1851:52;1828:9;1885:6;1851:52;:::i;:::-;1684:225;;;;:::o;2397:282::-;2437:3;2468:1;2464:6;2461:1;2458:13;2455:193;;;2504:77;2501:1;2494:88;2605:4;2602:1;2595:15;2633:4;2630:1;2623:15;2455:193;-1:-1:-1;2664:9:334;;2397:282::o;3087:518::-;3339:25;;;3383:42;3461:15;;;3456:2;3441:18;;3434:43;3513:15;;3508:2;3493:18;;3486:43;3326:3;3311:19;;3538:61;3595:2;3580:18;;3572:6;3538:61;:::i;:::-;3087:518;;;;;;;:::o;4237:424::-;4450:42;4442:6;4438:55;4427:9;4420:74;4542:10;4534:6;4530:23;4525:2;4514:9;4510:18;4503:51;4590:2;4585;4574:9;4570:18;4563:30;4401:4;4610:45;4651:2;4640:9;4636:18;4628:6;4610:45;:::i","linkReferences":{},"immutableReferences":{"98863":[{"start":439,"length":32},{"start":475,"length":32}],"98866":[{"start":135,"length":32},{"start":728,"length":32},{"start":871,"length":32},{"start":1021,"length":32},{"start":1380,"length":32}],"98870":[{"start":374,"length":32},{"start":905,"length":32},{"start":964,"length":32}]}},"methodIdentifiers":{"MIN_WITHDRAWAL_AMOUNT()":"d3e5792b","RECIPIENT()":"0d9019e1","WITHDRAWAL_NETWORK()":"d0e12f90","totalProcessed()":"84411d65","version()":"54fd4d50","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"_withdrawalNetwork\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"withdrawalNetwork\",\"type\":\"uint8\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_WITHDRAWAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECIPIENT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWAL_NETWORK\",\"outputs\":[{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProcessed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000019\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_minWithdrawalAmount\":\"Minimum balance for withdrawals.\",\"_recipient\":\"Wallet that will receive the fees.\",\"_withdrawalNetwork\":\"Network which the recipient will receive fees on.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.4.1\"}},\"title\":\"BaseFeeVault\",\"version\":1},\"userdoc\":{\"events\":{\"Withdrawal(uint256,address,address)\":{\"notice\":\"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter.\"},\"Withdrawal(uint256,address,address,uint8)\":{\"notice\":\"Emitted each time a withdrawal occurs.\"}},\"kind\":\"user\",\"methods\":{\"MIN_WITHDRAWAL_AMOUNT()\":{\"notice\":\"Minimum balance before a withdrawal can be triggered.\"},\"RECIPIENT()\":{\"notice\":\"Wallet that will receive the fees.\"},\"WITHDRAWAL_NETWORK()\":{\"notice\":\"Network which the RECIPIENT will receive fees on.\"},\"constructor\":{\"notice\":\"Constructs the BaseFeeVault contract.\"},\"totalProcessed()\":{\"notice\":\"Total amount of wei processed by the contract.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"withdraw()\":{\"notice\":\"Triggers a withdrawal of funds to the fee wallet on L1 or L2.\"}},\"notice\":\"The BaseFeeVault accumulates the base fee that is paid by transactions.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/BaseFeeVault.sol\":\"BaseFeeVault\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145\",\"dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7\"]},\"src/L2/BaseFeeVault.sol\":{\"keccak256\":\"0x13fafb1402169b294b907ce6ef6df2cabbb6743ec6a68a3d05798ae076260c3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c51342c658956546decd316cd5fbb21d8b8224c4e62aebc868b9e0ce33e56e2\",\"dweb:/ipfs/Qmcwr6r2VPARBr3NdTM4R52ZKcSMUbX2HsRY3u5wMNfTV7\"]},\"src/L2/L2StandardBridge.sol\":{\"keccak256\":\"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570\",\"dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xdd186cc21cfd5eb4404e02382a60674283b55a7fd488d5a3b5e902772644d6f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a03255efeec621c48e60316f38bfd919744c1379c36072e6990d14f20e2186fd\",\"dweb:/ipfs/QmbWjAZXN7sBzZuypMXrH92zKbMtq376NXxGAK1xj5VssB\"]},\"src/universal/FeeVault.sol\":{\"keccak256\":\"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9\",\"dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0xa3755ba03080d3c01c905c0d4d4d9b5105982c3553e7bc512a9df7a9754754a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://218aad18881bfeef187c2cdc132036976310f785b55dc63d7df9034aaff536c5\",\"dweb:/ipfs/QmSDRyWV8nD99Nwp12zMvM4iKRqd7f4sNgkzXYHx7V79Ep\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_minWithdrawalAmount","type":"uint256"},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"_withdrawalNetwork","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"withdrawalNetwork","type":"uint8","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_WITHDRAWAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECIPIENT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WITHDRAWAL_NETWORK","outputs":[{"internalType":"enum FeeVault.WithdrawalNetwork","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalProcessed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"version":1},"userdoc":{"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the BaseFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/BaseFeeVault.sol":"BaseFeeVault"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330","urls":["bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145","dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7"],"license":"MIT"},"src/L2/BaseFeeVault.sol":{"keccak256":"0x13fafb1402169b294b907ce6ef6df2cabbb6743ec6a68a3d05798ae076260c3f","urls":["bzz-raw://7c51342c658956546decd316cd5fbb21d8b8224c4e62aebc868b9e0ce33e56e2","dweb:/ipfs/Qmcwr6r2VPARBr3NdTM4R52ZKcSMUbX2HsRY3u5wMNfTV7"],"license":"MIT"},"src/L2/L2StandardBridge.sol":{"keccak256":"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629","urls":["bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570","dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xdd186cc21cfd5eb4404e02382a60674283b55a7fd488d5a3b5e902772644d6f4","urls":["bzz-raw://a03255efeec621c48e60316f38bfd919744c1379c36072e6990d14f20e2186fd","dweb:/ipfs/QmbWjAZXN7sBzZuypMXrH92zKbMtq376NXxGAK1xj5VssB"],"license":"MIT"},"src/universal/FeeVault.sol":{"keccak256":"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe","urls":["bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9","dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0xa3755ba03080d3c01c905c0d4d4d9b5105982c3553e7bc512a9df7a9754754a1","urls":["bzz-raw://218aad18881bfeef187c2cdc132036976310f785b55dc63d7df9034aaff536c5","dweb:/ipfs/QmSDRyWV8nD99Nwp12zMvM4iKRqd7f4sNgkzXYHx7V79Ep"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":98877,"contract":"src/L2/BaseFeeVault.sol:BaseFeeVault","label":"totalProcessed","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the BaseFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"events":{"Withdrawal(uint256,address,address)":{"notice":"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter."},"Withdrawal(uint256,address,address,uint8)":{"notice":"Emitted each time a withdrawal occurs."}},"notice":"The BaseFeeVault accumulates the base fee that is paid by transactions."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"title":"BaseFeeVault"},"ast":{"absolutePath":"src/L2/BaseFeeVault.sol","id":81225,"exportedSymbols":{"BaseFeeVault":[81224],"FeeVault":[99010],"ISemver":[99149]},"nodeType":"SourceUnit","src":"32:977:131","nodes":[{"id":81193,"nodeType":"PragmaDirective","src":"32:23:131","nodes":[],"literals":["solidity","0.8",".15"]},{"id":81195,"nodeType":"ImportDirective","src":"57:52:131","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":81225,"sourceUnit":99150,"symbolAliases":[{"foreign":{"id":81194,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99149,"src":"66:7:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81197,"nodeType":"ImportDirective","src":"110:54:131","nodes":[],"absolutePath":"src/universal/FeeVault.sol","file":"src/universal/FeeVault.sol","nameLocation":"-1:-1:-1","scope":81225,"sourceUnit":99011,"symbolAliases":[{"foreign":{"id":81196,"name":"FeeVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99010,"src":"119:8:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81224,"nodeType":"ContractDefinition","src":"359:649:131","nodes":[{"id":81206,"nodeType":"VariableDeclaration","src":"471:40:131","nodes":[],"baseFunctions":[99148],"constant":true,"documentation":{"id":81203,"nodeType":"StructuredDocumentation","src":"408:58:131","text":"@notice Semantic version.\n @custom:semver 1.4.1"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"494:7:131","scope":81224,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":81204,"name":"string","nodeType":"ElementaryTypeName","src":"471:6:131","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e342e31","id":81205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"504:7:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_7015c1a48403d132ad83884b326109f1b309c42f752b2abd1db79522ee074673","typeString":"literal_string \"1.4.1\""},"value":"1.4.1"},"visibility":"public"},{"id":81223,"nodeType":"FunctionDefinition","src":"798:208:131","nodes":[],"body":{"id":81222,"nodeType":"Block","src":"1003:3:131","nodes":[],"statements":[]},"documentation":{"id":81207,"nodeType":"StructuredDocumentation","src":"518:275:131","text":"@notice Constructs the BaseFeeVault contract.\n @param _recipient Wallet that will receive the fees.\n @param _minWithdrawalAmount Minimum balance for withdrawals.\n @param _withdrawalNetwork Network which the recipient will receive fees on."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":81217,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81209,"src":"945:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81218,"name":"_minWithdrawalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"957:20:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81219,"name":"_withdrawalNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81214,"src":"979:18:131","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$98860","typeString":"enum FeeVault.WithdrawalNetwork"}}],"id":81220,"kind":"baseConstructorSpecifier","modifierName":{"id":81216,"name":"FeeVault","nodeType":"IdentifierPath","referencedDeclaration":99010,"src":"936:8:131"},"nodeType":"ModifierInvocation","src":"936:62:131"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":81215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81209,"mutability":"mutable","name":"_recipient","nameLocation":"827:10:131","nodeType":"VariableDeclaration","scope":81223,"src":"819:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81208,"name":"address","nodeType":"ElementaryTypeName","src":"819:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81211,"mutability":"mutable","name":"_minWithdrawalAmount","nameLocation":"855:20:131","nodeType":"VariableDeclaration","scope":81223,"src":"847:28:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81210,"name":"uint256","nodeType":"ElementaryTypeName","src":"847:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81214,"mutability":"mutable","name":"_withdrawalNetwork","nameLocation":"903:18:131","nodeType":"VariableDeclaration","scope":81223,"src":"885:36:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$98860","typeString":"enum FeeVault.WithdrawalNetwork"},"typeName":{"id":81213,"nodeType":"UserDefinedTypeName","pathNode":{"id":81212,"name":"WithdrawalNetwork","nodeType":"IdentifierPath","referencedDeclaration":98860,"src":"885:17:131"},"referencedDeclaration":98860,"src":"885:17:131","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$98860","typeString":"enum FeeVault.WithdrawalNetwork"}},"visibility":"internal"}],"src":"809:118:131"},"returnParameters":{"id":81221,"nodeType":"ParameterList","parameters":[],"src":"1003:0:131"},"scope":81224,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":81199,"name":"FeeVault","nodeType":"IdentifierPath","referencedDeclaration":99010,"src":"384:8:131"},"id":81200,"nodeType":"InheritanceSpecifier","src":"384:8:131"},{"baseName":{"id":81201,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":99149,"src":"394:7:131"},"id":81202,"nodeType":"InheritanceSpecifier","src":"394:7:131"}],"canonicalName":"BaseFeeVault","contractDependencies":[],"contractKind":"contract","documentation":{"id":81198,"nodeType":"StructuredDocumentation","src":"166:193:131","text":"@custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000019\n @title BaseFeeVault\n @notice The BaseFeeVault accumulates the base fee that is paid by transactions."},"fullyImplemented":true,"linearizedBaseContracts":[81224,99149,99010],"name":"BaseFeeVault","nameLocation":"368:12:131","scope":81225,"usedErrors":[]}],"license":"MIT"},"id":131}
{"abi":[{"type":"constructor","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_minWithdrawalAmount","type":"uint256","internalType":"uint256"},{"name":"_withdrawalNetwork","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MIN_WITHDRAWAL_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WITHDRAWAL_NETWORK","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"view"},{"type":"function","name":"totalProcessed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawalNetwork","type":"uint8","indexed":false,"internalType":"enum FeeVault.WithdrawalNetwork"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561001057600080fd5b506040516108d13803806108d183398101604081905261002f91610079565b6001600160a01b03831660a0526080829052828282806001811115610056576100566100cc565b60c081600181111561006a5761006a6100cc565b815250505050505050506100e2565b60008060006060848603121561008e57600080fd5b83516001600160a01b03811681146100a557600080fd5b602085015160408601519194509250600281106100c157600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60805160a05160c051610790610141600039600081816101760152818161038901526103c40152600081816087015281816102d801528181610367015281816103fd01526105640152600081816101b701526101db01526107906000f3fe6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"359:649:136:-:0;;;798:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2429:22:220;;;;2461:44;;;;945:10:136;957:20;979:18;;2515:39:220;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2319:242;;;798:208:136;;;359:649;;14:518:350;126:6;134;142;195:2;183:9;174:7;170:23;166:32;163:52;;;211:1;208;201:12;163:52;237:16;;-1:-1:-1;;;;;282:31:350;;272:42;;262:70;;328:1;325;318:12;262:70;396:2;381:18;;375:25;445:2;430:18;;424:25;351:5;;-1:-1:-1;375:25:350;-1:-1:-1;480:1:350;468:14;;458:42;;496:1;493;486:12;458:42;519:7;509:17;;;14:518;;;;;:::o;537:127::-;598:10;593:3;589:20;586:1;579:31;629:4;626:1;619:15;653:4;650:1;643:15;537:127;359:649:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"359:649:136:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:34:220;;;;;;;;;;;;;;;;;;190:42:350;178:55;;;160:74;;148:2;133:18;820:34:220;;;;;;;;2732:832;;;;;;;;;;;;;:::i;:::-;;471:40:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1188:29:220:-;;;;;;;;;;;;;;;;;;;1152:25:350;;;1140:2;1125:18;1188:29:220;1006:177:350;927:53:220;;;;;;;;;;;;;;;;;;;;;;:::i;716:46::-;;;;;;;;;;;;;;;2732:832;2817:21;2792;:46;;2771:167;;;;;;;2117:2:350;2771:167:220;;;2099:21:350;2156:2;2136:18;;;2129:30;2195:34;2175:18;;;2168:62;2266:34;2246:18;;;2239:62;2338:12;2317:19;;;2310:41;2368:19;;2771:167:220;;;;;;;;;2949:13;2965:21;2949:37;;3014:5;2996:14;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;3035:40:220;;;2887:25:350;;;3053:9:220;2931:42:350;3009:15;3004:2;2989:18;;2982:43;3064:10:220;3041:18:350;;;3034:43;3035:40:220;;;;;;;2875:2:350;3035:40:220;;;3090:60;3101:5;3108:9;3119:10;3131:18;3090:60;;;;;;;;;:::i;:::-;;;;;;;;3187:20;3165:18;:42;;;;;;;;:::i;:::-;;3161:397;;3224:12;3241:9;:14;;3264:5;3241:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3223:55;;;3300:7;3292:68;;;;;;;4024:2:350;3292:68:220;;;4006:21:350;4063:2;4043:18;;;4036:30;4102:34;4082:18;;;4075:62;4173:18;4153;;;4146:46;4209:19;;3292:68:220;3822:412:350;3292:68:220;3209:162;2761:803;2732:832::o;3161:397::-;3524:9;;;;;;;;-1:-1:-1;3524:9:220;;3391:156;;;;;635:42:194;;3391:68:220;;3468:5;;3391:156;;3493:9;;1112:6;;3391:156;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:803;2732:832::o;245:531:350:-;287:3;325:5;319:12;352:6;347:3;340:19;377:1;387:162;401:6;398:1;395:13;387:162;;;463:4;519:13;;;515:22;;509:29;491:11;;;487:20;;480:59;416:12;387:162;;;567:6;564:1;561:13;558:87;;;633:1;626:4;617:6;612:3;608:16;604:27;597:38;558:87;-1:-1:-1;690:2:350;678:15;695:66;674:88;665:98;;;;765:4;661:109;;245:531;-1:-1:-1;;245:531:350:o;781:220::-;930:2;919:9;912:21;893:4;950:45;991:2;980:9;976:18;968:6;950:45;:::i;:::-;942:53;781:220;-1:-1:-1;;;781:220:350:o;1188:184::-;1240:77;1237:1;1230:88;1337:4;1334:1;1327:15;1361:4;1358:1;1351:15;1377:302;1466:1;1459:5;1456:12;1446:200;;1502:77;1499:1;1492:88;1603:4;1600:1;1593:15;1631:4;1628:1;1621:15;1446:200;1655:18;;1377:302::o;1684:226::-;1840:2;1825:18;;1852:52;1829:9;1886:6;1852:52;:::i;:::-;1684:226;;;;:::o;2398:282::-;2438:3;2469:1;2465:6;2462:1;2459:13;2456:193;;;2505:77;2502:1;2495:88;2606:4;2603:1;2596:15;2634:4;2631:1;2624:15;2456:193;-1:-1:-1;2665:9:350;;2398:282::o;3088:519::-;3341:25;;;3385:42;3463:15;;;3458:2;3443:18;;3436:43;3515:15;;3510:2;3495:18;;3488:43;3328:3;3313:19;;3540:61;3597:2;3582:18;;3574:6;3540:61;:::i;:::-;3088:519;;;;;;;:::o;4239:424::-;4452:42;4444:6;4440:55;4429:9;4422:74;4544:10;4536:6;4532:23;4527:2;4516:9;4512:18;4505:51;4592:2;4587;4576:9;4572:18;4565:30;4403:4;4612:45;4653:2;4642:9;4638:18;4630:6;4612:45;:::i","linkReferences":{},"immutableReferences":{"105741":[{"start":439,"length":32},{"start":475,"length":32}],"105744":[{"start":135,"length":32},{"start":728,"length":32},{"start":871,"length":32},{"start":1021,"length":32},{"start":1380,"length":32}],"105748":[{"start":374,"length":32},{"start":905,"length":32},{"start":964,"length":32}]}},"methodIdentifiers":{"MIN_WITHDRAWAL_AMOUNT()":"d3e5792b","RECIPIENT()":"0d9019e1","WITHDRAWAL_NETWORK()":"d0e12f90","totalProcessed()":"84411d65","version()":"54fd4d50","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"_withdrawalNetwork\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"withdrawalNetwork\",\"type\":\"uint8\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_WITHDRAWAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECIPIENT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWAL_NETWORK\",\"outputs\":[{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProcessed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000019\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_minWithdrawalAmount\":\"Minimum balance for withdrawals.\",\"_recipient\":\"Wallet that will receive the fees.\",\"_withdrawalNetwork\":\"Network which the recipient will receive fees on.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.4.1\"}},\"title\":\"BaseFeeVault\",\"version\":1},\"userdoc\":{\"events\":{\"Withdrawal(uint256,address,address)\":{\"notice\":\"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter.\"},\"Withdrawal(uint256,address,address,uint8)\":{\"notice\":\"Emitted each time a withdrawal occurs.\"}},\"kind\":\"user\",\"methods\":{\"MIN_WITHDRAWAL_AMOUNT()\":{\"notice\":\"Minimum balance before a withdrawal can be triggered.\"},\"RECIPIENT()\":{\"notice\":\"Wallet that will receive the fees.\"},\"WITHDRAWAL_NETWORK()\":{\"notice\":\"Network which the RECIPIENT will receive fees on.\"},\"constructor\":{\"notice\":\"Constructs the BaseFeeVault contract.\"},\"totalProcessed()\":{\"notice\":\"Total amount of wei processed by the contract.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"withdraw()\":{\"notice\":\"Triggers a withdrawal of funds to the fee wallet on L1 or L2.\"}},\"notice\":\"The BaseFeeVault accumulates the base fee that is paid by transactions.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/BaseFeeVault.sol\":\"BaseFeeVault\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/L2/BaseFeeVault.sol\":{\"keccak256\":\"0x13fafb1402169b294b907ce6ef6df2cabbb6743ec6a68a3d05798ae076260c3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c51342c658956546decd316cd5fbb21d8b8224c4e62aebc868b9e0ce33e56e2\",\"dweb:/ipfs/Qmcwr6r2VPARBr3NdTM4R52ZKcSMUbX2HsRY3u5wMNfTV7\"]},\"src/L2/L2StandardBridge.sol\":{\"keccak256\":\"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570\",\"dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776\",\"dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo\"]},\"src/universal/FeeVault.sol\":{\"keccak256\":\"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9\",\"dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x361e734aa5ac5701e87aaca3c6bd4b78c85c1d4fca2b5e0bfe72ab2ee6ceaf90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25a5a0f8b38600ef006b0c21093727d4d87f6517d428295bee4034a38ae08da4\",\"dweb:/ipfs/Qmb678AjEGt8tWGrzybn7MTvVWBFLuHEzQG2uHqTjCpNPC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_minWithdrawalAmount","type":"uint256"},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"_withdrawalNetwork","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"withdrawalNetwork","type":"uint8","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_WITHDRAWAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECIPIENT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WITHDRAWAL_NETWORK","outputs":[{"internalType":"enum FeeVault.WithdrawalNetwork","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalProcessed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"version":1},"userdoc":{"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the BaseFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/BaseFeeVault.sol":"BaseFeeVault"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/L2/BaseFeeVault.sol":{"keccak256":"0x13fafb1402169b294b907ce6ef6df2cabbb6743ec6a68a3d05798ae076260c3f","urls":["bzz-raw://7c51342c658956546decd316cd5fbb21d8b8224c4e62aebc868b9e0ce33e56e2","dweb:/ipfs/Qmcwr6r2VPARBr3NdTM4R52ZKcSMUbX2HsRY3u5wMNfTV7"],"license":"MIT"},"src/L2/L2StandardBridge.sol":{"keccak256":"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629","urls":["bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570","dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd","urls":["bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776","dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo"],"license":"MIT"},"src/universal/FeeVault.sol":{"keccak256":"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe","urls":["bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9","dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x361e734aa5ac5701e87aaca3c6bd4b78c85c1d4fca2b5e0bfe72ab2ee6ceaf90","urls":["bzz-raw://25a5a0f8b38600ef006b0c21093727d4d87f6517d428295bee4034a38ae08da4","dweb:/ipfs/Qmb678AjEGt8tWGrzybn7MTvVWBFLuHEzQG2uHqTjCpNPC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":105755,"contract":"src/L2/BaseFeeVault.sol:BaseFeeVault","label":"totalProcessed","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the BaseFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"events":{"Withdrawal(uint256,address,address)":{"notice":"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter."},"Withdrawal(uint256,address,address,uint8)":{"notice":"Emitted each time a withdrawal occurs."}},"notice":"The BaseFeeVault accumulates the base fee that is paid by transactions."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"title":"BaseFeeVault"},"id":136}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"114:487:174:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;114:487:174;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"114:487:174:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Burn\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Utilities for burning stuff.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Burn.sol\":\"Burn\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Burn.sol":"Burn"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Utilities for burning stuff."},"devdoc":{"version":1,"kind":"dev","title":"Burn"},"ast":{"absolutePath":"src/libraries/Burn.sol","id":92583,"exportedSymbols":{"Burn":[92566],"Burner":[92582]},"nodeType":"SourceUnit","src":"32:932:174","nodes":[{"id":92523,"nodeType":"PragmaDirective","src":"32:23:174","nodes":[],"literals":["solidity","0.8",".15"]},{"id":92566,"nodeType":"ContractDefinition","src":"114:487:174","nodes":[{"id":92538,"nodeType":"FunctionDefinition","src":"224:86:174","nodes":[],"body":{"id":92537,"nodeType":"Block","src":"263:47:174","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"id":92532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"273:10:174","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$__$returns$_t_contract$_Burner_$92582_$","typeString":"function () payable returns (contract Burner)"},"typeName":{"id":92531,"nodeType":"UserDefinedTypeName","pathNode":{"id":92530,"name":"Burner","nodeType":"IdentifierPath","referencedDeclaration":92582,"src":"277:6:174"},"referencedDeclaration":92582,"src":"277:6:174","typeDescriptions":{"typeIdentifier":"t_contract$_Burner_$92582","typeString":"contract Burner"}}},"id":92534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":92533,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92527,"src":"292:7:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"273:28:174","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$__$returns$_t_contract$_Burner_$92582_$value","typeString":"function () payable returns (contract Burner)"}},"id":92535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"273:30:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Burner_$92582","typeString":"contract Burner"}},"id":92536,"nodeType":"ExpressionStatement","src":"273:30:174"}]},"documentation":{"id":92525,"nodeType":"StructuredDocumentation","src":"133:86:174","text":"@notice Burns a given amount of ETH.\n @param _amount Amount of ETH to burn."},"implemented":true,"kind":"function","modifiers":[],"name":"eth","nameLocation":"233:3:174","parameters":{"id":92528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92527,"mutability":"mutable","name":"_amount","nameLocation":"245:7:174","nodeType":"VariableDeclaration","scope":92538,"src":"237:15:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92526,"name":"uint256","nodeType":"ElementaryTypeName","src":"237:7:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"236:17:174"},"returnParameters":{"id":92529,"nodeType":"ParameterList","parameters":[],"src":"263:0:174"},"scope":92566,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":92565,"nodeType":"FunctionDefinition","src":"407:192:174","nodes":[],"body":{"id":92564,"nodeType":"Block","src":"451:148:174","nodes":[],"statements":[{"assignments":[92545],"declarations":[{"constant":false,"id":92545,"mutability":"mutable","name":"i","nameLocation":"469:1:174","nodeType":"VariableDeclaration","scope":92564,"src":"461:9:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92544,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":92547,"initialValue":{"hexValue":"30","id":92546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"473:1:174","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"461:13:174"},{"assignments":[92549],"declarations":[{"constant":false,"id":92549,"mutability":"mutable","name":"initialGas","nameLocation":"492:10:174","nodeType":"VariableDeclaration","scope":92564,"src":"484:18:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92548,"name":"uint256","nodeType":"ElementaryTypeName","src":"484:7:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":92552,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":92550,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"505:7:174","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":92551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"505:9:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"484:30:174"},{"body":{"id":92562,"nodeType":"Block","src":"565:28:174","statements":[{"expression":{"id":92560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"579:3:174","subExpression":{"id":92559,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92545,"src":"581:1:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":92561,"nodeType":"ExpressionStatement","src":"579:3:174"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":92553,"name":"initialGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92549,"src":"531:10:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":92554,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"544:7:174","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":92555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"544:9:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"531:22:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":92557,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92541,"src":"556:7:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"531:32:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":92563,"nodeType":"WhileStatement","src":"524:69:174"}]},"documentation":{"id":92539,"nodeType":"StructuredDocumentation","src":"316:86:174","text":"@notice Burns a given amount of gas.\n @param _amount Amount of gas to burn."},"implemented":true,"kind":"function","modifiers":[],"name":"gas","nameLocation":"416:3:174","parameters":{"id":92542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92541,"mutability":"mutable","name":"_amount","nameLocation":"428:7:174","nodeType":"VariableDeclaration","scope":92565,"src":"420:15:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92540,"name":"uint256","nodeType":"ElementaryTypeName","src":"420:7:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"419:17:174"},"returnParameters":{"id":92543,"nodeType":"ParameterList","parameters":[],"src":"451:0:174"},"scope":92566,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Burn","contractDependencies":[],"contractKind":"library","documentation":{"id":92524,"nodeType":"StructuredDocumentation","src":"57:57:174","text":"@title Burn\n @notice Utilities for burning stuff."},"fullyImplemented":true,"linearizedBaseContracts":[92566],"name":"Burn","nameLocation":"122:4:174","scope":92583,"usedErrors":[]},{"id":92582,"nodeType":"ContractDefinition","src":"864:99:174","nodes":[{"id":92581,"nodeType":"FunctionDefinition","src":"886:75:174","nodes":[],"body":{"id":92580,"nodeType":"Block","src":"908:53:174","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":92575,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"947:4:174","typeDescriptions":{"typeIdentifier":"t_contract$_Burner_$92582","typeString":"contract Burner"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Burner_$92582","typeString":"contract Burner"}],"id":92574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"939:7:174","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":92573,"name":"address","nodeType":"ElementaryTypeName","src":"939:7:174","typeDescriptions":{}}},"id":92576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"939:13:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":92572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"931:8:174","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":92571,"name":"address","nodeType":"ElementaryTypeName","src":"931:8:174","stateMutability":"payable","typeDescriptions":{}}},"id":92577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"931:22:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":92570,"name":"selfdestruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-21,"src":"918:12:174","typeDescriptions":{"typeIdentifier":"t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":92578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"918:36:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":92579,"nodeType":"ExpressionStatement","src":"918:36:174"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":92568,"nodeType":"ParameterList","parameters":[],"src":"897:2:174"},"returnParameters":{"id":92569,"nodeType":"ParameterList","parameters":[],"src":"908:0:174"},"scope":92582,"stateMutability":"payable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Burner","contractDependencies":[],"contractKind":"contract","documentation":{"id":92567,"nodeType":"StructuredDocumentation","src":"603:261:174","text":"@title Burner\n @notice Burner self-destructs on creation and sends all ETH to itself, removing all ETH given to\n the contract from the circulating supply. Self-destructing is the only way to remove ETH\n from the circulating supply."},"fullyImplemented":true,"linearizedBaseContracts":[92582],"name":"Burner","nameLocation":"873:6:174","scope":92583,"usedErrors":[]}],"license":"MIT"},"id":174}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"114:487:185:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;114:487:185;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"114:487:185:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Burn\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Utilities for burning stuff.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Burn.sol\":\"Burn\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Burn.sol":"Burn"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Utilities for burning stuff."},"devdoc":{"version":1,"kind":"dev","title":"Burn"},"id":185}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x608060405230fffe","sourceMap":"864:99:174:-:0;;;947:4;918:36","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea164736f6c634300080f000a","sourceMap":"864:99:174:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Burner\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Burner self-destructs on creation and sends all ETH to itself, removing all ETH given to the contract from the circulating supply. Self-destructing is the only way to remove ETH from the circulating supply.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Burn.sol\":\"Burner\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Burn.sol":"Burner"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Burner self-destructs on creation and sends all ETH to itself, removing all ETH given to the contract from the circulating supply. Self-destructing is the only way to remove ETH from the circulating supply."},"devdoc":{"version":1,"kind":"dev","title":"Burner"},"ast":{"absolutePath":"src/libraries/Burn.sol","id":92583,"exportedSymbols":{"Burn":[92566],"Burner":[92582]},"nodeType":"SourceUnit","src":"32:932:174","nodes":[{"id":92523,"nodeType":"PragmaDirective","src":"32:23:174","nodes":[],"literals":["solidity","0.8",".15"]},{"id":92566,"nodeType":"ContractDefinition","src":"114:487:174","nodes":[{"id":92538,"nodeType":"FunctionDefinition","src":"224:86:174","nodes":[],"body":{"id":92537,"nodeType":"Block","src":"263:47:174","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"id":92532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"273:10:174","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$__$returns$_t_contract$_Burner_$92582_$","typeString":"function () payable returns (contract Burner)"},"typeName":{"id":92531,"nodeType":"UserDefinedTypeName","pathNode":{"id":92530,"name":"Burner","nodeType":"IdentifierPath","referencedDeclaration":92582,"src":"277:6:174"},"referencedDeclaration":92582,"src":"277:6:174","typeDescriptions":{"typeIdentifier":"t_contract$_Burner_$92582","typeString":"contract Burner"}}},"id":92534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":92533,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92527,"src":"292:7:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"273:28:174","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$__$returns$_t_contract$_Burner_$92582_$value","typeString":"function () payable returns (contract Burner)"}},"id":92535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"273:30:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Burner_$92582","typeString":"contract Burner"}},"id":92536,"nodeType":"ExpressionStatement","src":"273:30:174"}]},"documentation":{"id":92525,"nodeType":"StructuredDocumentation","src":"133:86:174","text":"@notice Burns a given amount of ETH.\n @param _amount Amount of ETH to burn."},"implemented":true,"kind":"function","modifiers":[],"name":"eth","nameLocation":"233:3:174","parameters":{"id":92528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92527,"mutability":"mutable","name":"_amount","nameLocation":"245:7:174","nodeType":"VariableDeclaration","scope":92538,"src":"237:15:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92526,"name":"uint256","nodeType":"ElementaryTypeName","src":"237:7:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"236:17:174"},"returnParameters":{"id":92529,"nodeType":"ParameterList","parameters":[],"src":"263:0:174"},"scope":92566,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":92565,"nodeType":"FunctionDefinition","src":"407:192:174","nodes":[],"body":{"id":92564,"nodeType":"Block","src":"451:148:174","nodes":[],"statements":[{"assignments":[92545],"declarations":[{"constant":false,"id":92545,"mutability":"mutable","name":"i","nameLocation":"469:1:174","nodeType":"VariableDeclaration","scope":92564,"src":"461:9:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92544,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":92547,"initialValue":{"hexValue":"30","id":92546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"473:1:174","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"461:13:174"},{"assignments":[92549],"declarations":[{"constant":false,"id":92549,"mutability":"mutable","name":"initialGas","nameLocation":"492:10:174","nodeType":"VariableDeclaration","scope":92564,"src":"484:18:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92548,"name":"uint256","nodeType":"ElementaryTypeName","src":"484:7:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":92552,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":92550,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"505:7:174","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":92551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"505:9:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"484:30:174"},{"body":{"id":92562,"nodeType":"Block","src":"565:28:174","statements":[{"expression":{"id":92560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"579:3:174","subExpression":{"id":92559,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92545,"src":"581:1:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":92561,"nodeType":"ExpressionStatement","src":"579:3:174"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":92553,"name":"initialGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92549,"src":"531:10:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":92554,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"544:7:174","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":92555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"544:9:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"531:22:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":92557,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92541,"src":"556:7:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"531:32:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":92563,"nodeType":"WhileStatement","src":"524:69:174"}]},"documentation":{"id":92539,"nodeType":"StructuredDocumentation","src":"316:86:174","text":"@notice Burns a given amount of gas.\n @param _amount Amount of gas to burn."},"implemented":true,"kind":"function","modifiers":[],"name":"gas","nameLocation":"416:3:174","parameters":{"id":92542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92541,"mutability":"mutable","name":"_amount","nameLocation":"428:7:174","nodeType":"VariableDeclaration","scope":92565,"src":"420:15:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92540,"name":"uint256","nodeType":"ElementaryTypeName","src":"420:7:174","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"419:17:174"},"returnParameters":{"id":92543,"nodeType":"ParameterList","parameters":[],"src":"451:0:174"},"scope":92566,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Burn","contractDependencies":[],"contractKind":"library","documentation":{"id":92524,"nodeType":"StructuredDocumentation","src":"57:57:174","text":"@title Burn\n @notice Utilities for burning stuff."},"fullyImplemented":true,"linearizedBaseContracts":[92566],"name":"Burn","nameLocation":"122:4:174","scope":92583,"usedErrors":[]},{"id":92582,"nodeType":"ContractDefinition","src":"864:99:174","nodes":[{"id":92581,"nodeType":"FunctionDefinition","src":"886:75:174","nodes":[],"body":{"id":92580,"nodeType":"Block","src":"908:53:174","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":92575,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"947:4:174","typeDescriptions":{"typeIdentifier":"t_contract$_Burner_$92582","typeString":"contract Burner"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Burner_$92582","typeString":"contract Burner"}],"id":92574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"939:7:174","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":92573,"name":"address","nodeType":"ElementaryTypeName","src":"939:7:174","typeDescriptions":{}}},"id":92576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"939:13:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":92572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"931:8:174","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":92571,"name":"address","nodeType":"ElementaryTypeName","src":"931:8:174","stateMutability":"payable","typeDescriptions":{}}},"id":92577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"931:22:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":92570,"name":"selfdestruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-21,"src":"918:12:174","typeDescriptions":{"typeIdentifier":"t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":92578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"918:36:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":92579,"nodeType":"ExpressionStatement","src":"918:36:174"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":92568,"nodeType":"ParameterList","parameters":[],"src":"897:2:174"},"returnParameters":{"id":92569,"nodeType":"ParameterList","parameters":[],"src":"908:0:174"},"scope":92582,"stateMutability":"payable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Burner","contractDependencies":[],"contractKind":"contract","documentation":{"id":92567,"nodeType":"StructuredDocumentation","src":"603:261:174","text":"@title Burner\n @notice Burner self-destructs on creation and sends all ETH to itself, removing all ETH given to\n the contract from the circulating supply. Self-destructing is the only way to remove ETH\n from the circulating supply."},"fullyImplemented":true,"linearizedBaseContracts":[92582],"name":"Burner","nameLocation":"873:6:174","scope":92583,"usedErrors":[]}],"license":"MIT"},"id":174}
{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x608060405230fffe","sourceMap":"864:99:185:-:0;;;947:4;918:36","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea164736f6c634300080f000a","sourceMap":"864:99:185:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Burner\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Burner self-destructs on creation and sends all ETH to itself, removing all ETH given to the contract from the circulating supply. Self-destructing is the only way to remove ETH from the circulating supply.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Burn.sol\":\"Burner\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Burn.sol":"Burner"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Burner self-destructs on creation and sends all ETH to itself, removing all ETH given to the contract from the circulating supply. Self-destructing is the only way to remove ETH from the circulating supply."},"devdoc":{"version":1,"kind":"dev","title":"Burner"},"id":185}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"135:6584:175:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;135:6584:175;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"135:6584:175:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Bytes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Bytes is a library for manipulating byte arrays.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Bytes.sol\":\"Bytes\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Bytes.sol\":{\"keccak256\":\"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782\",\"dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Bytes.sol":"Bytes"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Bytes.sol":{"keccak256":"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859","urls":["bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782","dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Bytes is a library for manipulating byte arrays."},"devdoc":{"version":1,"kind":"dev","title":"Bytes"},"ast":{"absolutePath":"src/libraries/Bytes.sol","id":92700,"exportedSymbols":{"Bytes":[92699]},"nodeType":"SourceUnit","src":"32:6688:175","nodes":[{"id":92584,"nodeType":"PragmaDirective","src":"32:23:175","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":92699,"nodeType":"ContractDefinition","src":"135:6584:175","nodes":[{"id":92633,"nodeType":"FunctionDefinition","src":"660:2816:175","nodes":[],"body":{"id":92632,"nodeType":"Block","src":"766:2710:175","nodes":[],"statements":[{"id":92625,"nodeType":"UncheckedBlock","src":"776:229:175","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":92598,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92592,"src":"808:7:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3331","id":92599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"818:2:175","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"808:12:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":92601,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92592,"src":"824:7:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"808:23:175","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f766572666c6f77","id":92603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"833:16:175","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""},"value":"slice_overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""}],"id":92597,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"800:7:175","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":92604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"800:50:175","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":92605,"nodeType":"ExpressionStatement","src":"800:50:175"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":92607,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92590,"src":"872:6:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":92608,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92592,"src":"881:7:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"872:16:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":92610,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92590,"src":"892:6:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"872:26:175","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f766572666c6f77","id":92612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"900:16:175","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""},"value":"slice_overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""}],"id":92606,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"864:7:175","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":92613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"864:53:175","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":92614,"nodeType":"ExpressionStatement","src":"864:53:175"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":92616,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92588,"src":"939:6:175","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":92617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"939:13:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":92618,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92590,"src":"956:6:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":92619,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92592,"src":"965:7:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"956:16:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"939:33:175","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f75744f66426f756e6473","id":92622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"974:19:175","typeDescriptions":{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""},"value":"slice_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""}],"id":92615,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"931:7:175","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":92623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"931:63:175","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":92624,"nodeType":"ExpressionStatement","src":"931:63:175"}]},{"assignments":[92627],"declarations":[{"constant":false,"id":92627,"mutability":"mutable","name":"tempBytes","nameLocation":"1028:9:175","nodeType":"VariableDeclaration","scope":92632,"src":"1015:22:175","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":92626,"name":"bytes","nodeType":"ElementaryTypeName","src":"1015:5:175","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":92628,"nodeType":"VariableDeclarationStatement","src":"1015:22:175"},{"AST":{"nodeType":"YulBlock","src":"1057:2386:175","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"1113:1924:175","statements":[{"nodeType":"YulAssignment","src":"1269:24:175","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1288:4:175","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1282:5:175"},"nodeType":"YulFunctionCall","src":"1282:11:175"},"variableNames":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"1269:9:175"}]},{"nodeType":"YulVariableDeclaration","src":"1917:33:175","value":{"arguments":[{"name":"_length","nodeType":"YulIdentifier","src":"1938:7:175"},{"kind":"number","nodeType":"YulLiteral","src":"1947:2:175","type":"","value":"31"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1934:3:175"},"nodeType":"YulFunctionCall","src":"1934:16:175"},"variables":[{"name":"lengthmod","nodeType":"YulTypedName","src":"1921:9:175","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2271:70:175","value":{"arguments":[{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"2289:9:175"},{"name":"lengthmod","nodeType":"YulIdentifier","src":"2300:9:175"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2285:3:175"},"nodeType":"YulFunctionCall","src":"2285:25:175"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2316:4:175","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nodeType":"YulIdentifier","src":"2329:9:175"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2322:6:175"},"nodeType":"YulFunctionCall","src":"2322:17:175"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2312:3:175"},"nodeType":"YulFunctionCall","src":"2312:28:175"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2281:3:175"},"nodeType":"YulFunctionCall","src":"2281:60:175"},"variables":[{"name":"mc","nodeType":"YulTypedName","src":"2275:2:175","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2358:27:175","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2373:2:175"},{"name":"_length","nodeType":"YulIdentifier","src":"2377:7:175"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2369:3:175"},"nodeType":"YulFunctionCall","src":"2369:16:175"},"variables":[{"name":"end","nodeType":"YulTypedName","src":"2362:3:175","type":""}]},{"body":{"nodeType":"YulBlock","src":"2767:25:175","statements":[{"expression":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2776:2:175"},{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"2786:2:175"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2780:5:175"},"nodeType":"YulFunctionCall","src":"2780:9:175"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2769:6:175"},"nodeType":"YulFunctionCall","src":"2769:21:175"},"nodeType":"YulExpressionStatement","src":"2769:21:175"}]},"condition":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2658:2:175"},{"name":"end","nodeType":"YulIdentifier","src":"2662:3:175"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2655:2:175"},"nodeType":"YulFunctionCall","src":"2655:11:175"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2667:99:175","statements":[{"nodeType":"YulAssignment","src":"2689:19:175","value":{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"2699:2:175"},{"kind":"number","nodeType":"YulLiteral","src":"2703:4:175","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2695:3:175"},"nodeType":"YulFunctionCall","src":"2695:13:175"},"variableNames":[{"name":"mc","nodeType":"YulIdentifier","src":"2689:2:175"}]},{"nodeType":"YulAssignment","src":"2729:19:175","value":{"arguments":[{"name":"cc","nodeType":"YulIdentifier","src":"2739:2:175"},{"kind":"number","nodeType":"YulLiteral","src":"2743:4:175","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2735:3:175"},"nodeType":"YulFunctionCall","src":"2735:13:175"},"variableNames":[{"name":"cc","nodeType":"YulIdentifier","src":"2729:2:175"}]}]},"pre":{"nodeType":"YulBlock","src":"2407:247:175","statements":[{"nodeType":"YulVariableDeclaration","src":"2556:80:175","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"2578:6:175"},{"name":"lengthmod","nodeType":"YulIdentifier","src":"2586:9:175"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2574:3:175"},"nodeType":"YulFunctionCall","src":"2574:22:175"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2602:4:175","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nodeType":"YulIdentifier","src":"2615:9:175"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2608:6:175"},"nodeType":"YulFunctionCall","src":"2608:17:175"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2598:3:175"},"nodeType":"YulFunctionCall","src":"2598:28:175"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2570:3:175"},"nodeType":"YulFunctionCall","src":"2570:57:175"},{"name":"_start","nodeType":"YulIdentifier","src":"2629:6:175"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2566:3:175"},"nodeType":"YulFunctionCall","src":"2566:70:175"},"variables":[{"name":"cc","nodeType":"YulTypedName","src":"2560:2:175","type":""}]}]},"src":"2403:389:175"},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"2817:9:175"},{"name":"_length","nodeType":"YulIdentifier","src":"2828:7:175"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2810:6:175"},"nodeType":"YulFunctionCall","src":"2810:26:175"},"nodeType":"YulExpressionStatement","src":"2810:26:175"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2991:4:175","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"mc","nodeType":"YulIdentifier","src":"3005:2:175"},{"kind":"number","nodeType":"YulLiteral","src":"3009:2:175","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3001:3:175"},"nodeType":"YulFunctionCall","src":"3001:11:175"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3018:2:175","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3014:3:175"},"nodeType":"YulFunctionCall","src":"3014:7:175"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2997:3:175"},"nodeType":"YulFunctionCall","src":"2997:25:175"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2984:6:175"},"nodeType":"YulFunctionCall","src":"2984:39:175"},"nodeType":"YulExpressionStatement","src":"2984:39:175"}]},"nodeType":"YulCase","src":"1106:1931:175","value":{"kind":"number","nodeType":"YulLiteral","src":"1111:1:175","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"3141:292:175","statements":[{"nodeType":"YulAssignment","src":"3159:24:175","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3178:4:175","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3172:5:175"},"nodeType":"YulFunctionCall","src":"3172:11:175"},"variableNames":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"3159:9:175"}]},{"expression":{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"3354:9:175"},{"kind":"number","nodeType":"YulLiteral","src":"3365:1:175","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3347:6:175"},"nodeType":"YulFunctionCall","src":"3347:20:175"},"nodeType":"YulExpressionStatement","src":"3347:20:175"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3392:4:175","type":"","value":"0x40"},{"arguments":[{"name":"tempBytes","nodeType":"YulIdentifier","src":"3402:9:175"},{"kind":"number","nodeType":"YulLiteral","src":"3413:4:175","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3398:3:175"},"nodeType":"YulFunctionCall","src":"3398:20:175"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3385:6:175"},"nodeType":"YulFunctionCall","src":"3385:34:175"},"nodeType":"YulExpressionStatement","src":"3385:34:175"}]},"nodeType":"YulCase","src":"3133:300:175","value":"default"}],"expression":{"arguments":[{"name":"_length","nodeType":"YulIdentifier","src":"1085:7:175"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1078:6:175"},"nodeType":"YulFunctionCall","src":"1078:15:175"},"nodeType":"YulSwitch","src":"1071:2362:175"}]},"evmVersion":"london","externalReferences":[{"declaration":92588,"isOffset":false,"isSlot":false,"src":"2578:6:175","valueSize":1},{"declaration":92592,"isOffset":false,"isSlot":false,"src":"1085:7:175","valueSize":1},{"declaration":92592,"isOffset":false,"isSlot":false,"src":"1938:7:175","valueSize":1},{"declaration":92592,"isOffset":false,"isSlot":false,"src":"2377:7:175","valueSize":1},{"declaration":92592,"isOffset":false,"isSlot":false,"src":"2828:7:175","valueSize":1},{"declaration":92590,"isOffset":false,"isSlot":false,"src":"2629:6:175","valueSize":1},{"declaration":92627,"isOffset":false,"isSlot":false,"src":"1269:9:175","valueSize":1},{"declaration":92627,"isOffset":false,"isSlot":false,"src":"2289:9:175","valueSize":1},{"declaration":92627,"isOffset":false,"isSlot":false,"src":"2817:9:175","valueSize":1},{"declaration":92627,"isOffset":false,"isSlot":false,"src":"3159:9:175","valueSize":1},{"declaration":92627,"isOffset":false,"isSlot":false,"src":"3354:9:175","valueSize":1},{"declaration":92627,"isOffset":false,"isSlot":false,"src":"3402:9:175","valueSize":1}],"id":92629,"nodeType":"InlineAssembly","src":"1048:2395:175"},{"expression":{"id":92630,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92627,"src":"3460:9:175","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":92596,"id":92631,"nodeType":"Return","src":"3453:16:175"}]},"documentation":{"id":92586,"nodeType":"StructuredDocumentation","src":"155:500:175","text":"@custom:attribution https://github.com/GNSPS/solidity-bytes-utils\n @notice Slices a byte array with a given starting index and length. Returns a new byte array\n as opposed to a pointer to the original array. Will throw if trying to slice more\n bytes than exist in the array.\n @param _bytes Byte array to slice.\n @param _start Starting index of the slice.\n @param _length Length of the slice.\n @return Slice of the input byte array."},"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"669:5:175","parameters":{"id":92593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92588,"mutability":"mutable","name":"_bytes","nameLocation":"688:6:175","nodeType":"VariableDeclaration","scope":92633,"src":"675:19:175","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":92587,"name":"bytes","nodeType":"ElementaryTypeName","src":"675:5:175","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":92590,"mutability":"mutable","name":"_start","nameLocation":"704:6:175","nodeType":"VariableDeclaration","scope":92633,"src":"696:14:175","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92589,"name":"uint256","nodeType":"ElementaryTypeName","src":"696:7:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":92592,"mutability":"mutable","name":"_length","nameLocation":"720:7:175","nodeType":"VariableDeclaration","scope":92633,"src":"712:15:175","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92591,"name":"uint256","nodeType":"ElementaryTypeName","src":"712:7:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"674:54:175"},"returnParameters":{"id":92596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":92633,"src":"752:12:175","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":92594,"name":"bytes","nodeType":"ElementaryTypeName","src":"752:5:175","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"751:14:175"},"scope":92699,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":92664,"nodeType":"FunctionDefinition","src":"3805:237:175","nodes":[],"body":{"id":92663,"nodeType":"Block","src":"3894:148:175","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":92643,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92638,"src":"3908:6:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":92644,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92636,"src":"3918:6:175","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":92645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3918:13:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3908:23:175","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":92653,"nodeType":"IfStatement","src":"3904:70:175","trueBody":{"id":92652,"nodeType":"Block","src":"3933:41:175","statements":[{"expression":{"arguments":[{"hexValue":"","id":92649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3960:2:175","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":92648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3954:5:175","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":92647,"name":"bytes","nodeType":"ElementaryTypeName","src":"3954:5:175","typeDescriptions":{}}},"id":92650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3954:9:175","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":92642,"id":92651,"nodeType":"Return","src":"3947:16:175"}]}},{"expression":{"arguments":[{"id":92655,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92636,"src":"3996:6:175","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":92656,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92638,"src":"4004:6:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":92657,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92636,"src":"4012:6:175","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":92658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4012:13:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":92659,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92638,"src":"4028:6:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4012:22:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":92654,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[92633,92664],"referencedDeclaration":92633,"src":"3990:5:175","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256,uint256) pure returns (bytes memory)"}},"id":92661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3990:45:175","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":92642,"id":92662,"nodeType":"Return","src":"3983:52:175"}]},"documentation":{"id":92634,"nodeType":"StructuredDocumentation","src":"3482:318:175","text":"@notice Slices a byte array with a given starting index up to the end of the original byte\n array. Returns a new array rathern than a pointer to the original.\n @param _bytes Byte array to slice.\n @param _start Starting index of the slice.\n @return Slice of the input byte array."},"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"3814:5:175","parameters":{"id":92639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92636,"mutability":"mutable","name":"_bytes","nameLocation":"3833:6:175","nodeType":"VariableDeclaration","scope":92664,"src":"3820:19:175","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":92635,"name":"bytes","nodeType":"ElementaryTypeName","src":"3820:5:175","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":92638,"mutability":"mutable","name":"_start","nameLocation":"3849:6:175","nodeType":"VariableDeclaration","scope":92664,"src":"3841:14:175","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92637,"name":"uint256","nodeType":"ElementaryTypeName","src":"3841:7:175","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3819:37:175"},"returnParameters":{"id":92642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92641,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":92664,"src":"3880:12:175","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":92640,"name":"bytes","nodeType":"ElementaryTypeName","src":"3880:5:175","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3879:14:175"},"scope":92699,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":92679,"nodeType":"FunctionDefinition","src":"4332:1978:175","nodes":[],"body":{"id":92678,"nodeType":"Block","src":"4409:1901:175","nodes":[],"statements":[{"assignments":[92673],"declarations":[{"constant":false,"id":92673,"mutability":"mutable","name":"_nibbles","nameLocation":"4432:8:175","nodeType":"VariableDeclaration","scope":92678,"src":"4419:21:175","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":92672,"name":"bytes","nodeType":"ElementaryTypeName","src":"4419:5:175","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":92674,"nodeType":"VariableDeclarationStatement","src":"4419:21:175"},{"AST":{"nodeType":"YulBlock","src":"4459:1820:175","statements":[{"nodeType":"YulAssignment","src":"4532:23:175","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4550:4:175","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4544:5:175"},"nodeType":"YulFunctionCall","src":"4544:11:175"},"variableNames":[{"name":"_nibbles","nodeType":"YulIdentifier","src":"4532:8:175"}]},{"nodeType":"YulVariableDeclaration","src":"4638:32:175","value":{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"4663:6:175"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4657:5:175"},"nodeType":"YulFunctionCall","src":"4657:13:175"},"variables":[{"name":"bytesLength","nodeType":"YulTypedName","src":"4642:11:175","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4805:43:175","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4830:4:175","type":"","value":"0x01"},{"name":"bytesLength","nodeType":"YulIdentifier","src":"4836:11:175"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4826:3:175"},"nodeType":"YulFunctionCall","src":"4826:22:175"},"variables":[{"name":"nibblesLength","nodeType":"YulTypedName","src":"4809:13:175","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5141:4:175","type":"","value":"0x40"},{"arguments":[{"name":"_nibbles","nodeType":"YulIdentifier","src":"5151:8:175"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5169:4:175","type":"","value":"0x1F"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5165:3:175"},"nodeType":"YulFunctionCall","src":"5165:9:175"},{"arguments":[{"name":"nibblesLength","nodeType":"YulIdentifier","src":"5180:13:175"},{"kind":"number","nodeType":"YulLiteral","src":"5195:4:175","type":"","value":"0x3F"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5176:3:175"},"nodeType":"YulFunctionCall","src":"5176:24:175"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5161:3:175"},"nodeType":"YulFunctionCall","src":"5161:40:175"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5147:3:175"},"nodeType":"YulFunctionCall","src":"5147:55:175"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5134:6:175"},"nodeType":"YulFunctionCall","src":"5134:69:175"},"nodeType":"YulExpressionStatement","src":"5134:69:175"},{"expression":{"arguments":[{"name":"_nibbles","nodeType":"YulIdentifier","src":"5283:8:175"},{"name":"nibblesLength","nodeType":"YulIdentifier","src":"5293:13:175"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5276:6:175"},"nodeType":"YulFunctionCall","src":"5276:31:175"},"nodeType":"YulExpressionStatement","src":"5276:31:175"},{"nodeType":"YulVariableDeclaration","src":"5404:35:175","value":{"arguments":[{"name":"_bytes","nodeType":"YulIdentifier","src":"5426:6:175"},{"kind":"number","nodeType":"YulLiteral","src":"5434:4:175","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5422:3:175"},"nodeType":"YulFunctionCall","src":"5422:17:175"},"variables":[{"name":"bytesStart","nodeType":"YulTypedName","src":"5408:10:175","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5537:39:175","value":{"arguments":[{"name":"_nibbles","nodeType":"YulIdentifier","src":"5561:8:175"},{"kind":"number","nodeType":"YulLiteral","src":"5571:4:175","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5557:3:175"},"nodeType":"YulFunctionCall","src":"5557:19:175"},"variables":[{"name":"nibblesStart","nodeType":"YulTypedName","src":"5541:12:175","type":""}]},{"body":{"nodeType":"YulBlock","src":"5710:559:175","statements":[{"nodeType":"YulVariableDeclaration","src":"5812:45:175","value":{"arguments":[{"name":"nibblesStart","nodeType":"YulIdentifier","src":"5830:12:175"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5848:4:175","type":"","value":"0x01"},{"name":"i","nodeType":"YulIdentifier","src":"5854:1:175"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5844:3:175"},"nodeType":"YulFunctionCall","src":"5844:12:175"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5826:3:175"},"nodeType":"YulFunctionCall","src":"5826:31:175"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5816:6:175","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5954:46:175","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5968:4:175","type":"","value":"0x00"},{"arguments":[{"arguments":[{"name":"bytesStart","nodeType":"YulIdentifier","src":"5984:10:175"},{"name":"i","nodeType":"YulIdentifier","src":"5996:1:175"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5980:3:175"},"nodeType":"YulFunctionCall","src":"5980:18:175"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5974:5:175"},"nodeType":"YulFunctionCall","src":"5974:25:175"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"5963:4:175"},"nodeType":"YulFunctionCall","src":"5963:37:175"},"variables":[{"name":"b","nodeType":"YulTypedName","src":"5958:1:175","type":""}]},{"expression":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6101:6:175"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6113:4:175","type":"","value":"0x04"},{"name":"b","nodeType":"YulIdentifier","src":"6119:1:175"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6109:3:175"},"nodeType":"YulFunctionCall","src":"6109:12:175"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"6093:7:175"},"nodeType":"YulFunctionCall","src":"6093:29:175"},"nodeType":"YulExpressionStatement","src":"6093:29:175"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6227:6:175"},{"kind":"number","nodeType":"YulLiteral","src":"6235:4:175","type":"","value":"0x01"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6223:3:175"},"nodeType":"YulFunctionCall","src":"6223:17:175"},{"arguments":[{"name":"b","nodeType":"YulIdentifier","src":"6246:1:175"},{"kind":"number","nodeType":"YulLiteral","src":"6249:4:175","type":"","value":"0x0F"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6242:3:175"},"nodeType":"YulFunctionCall","src":"6242:12:175"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"6215:7:175"},"nodeType":"YulFunctionCall","src":"6215:40:175"},"nodeType":"YulExpressionStatement","src":"6215:40:175"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5672:1:175"},{"name":"bytesLength","nodeType":"YulIdentifier","src":"5675:11:175"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5669:2:175"},"nodeType":"YulFunctionCall","src":"5669:18:175"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5688:21:175","statements":[{"nodeType":"YulAssignment","src":"5690:17:175","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5699:1:175"},{"kind":"number","nodeType":"YulLiteral","src":"5702:4:175","type":"","value":"0x01"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5695:3:175"},"nodeType":"YulFunctionCall","src":"5695:12:175"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5690:1:175"}]}]},"pre":{"nodeType":"YulBlock","src":"5651:17:175","statements":[{"nodeType":"YulVariableDeclaration","src":"5653:13:175","value":{"kind":"number","nodeType":"YulLiteral","src":"5662:4:175","type":"","value":"0x00"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5657:1:175","type":""}]}]},"src":"5647:622:175"}]},"evmVersion":"london","externalReferences":[{"declaration":92667,"isOffset":false,"isSlot":false,"src":"4663:6:175","valueSize":1},{"declaration":92667,"isOffset":false,"isSlot":false,"src":"5426:6:175","valueSize":1},{"declaration":92673,"isOffset":false,"isSlot":false,"src":"4532:8:175","valueSize":1},{"declaration":92673,"isOffset":false,"isSlot":false,"src":"5151:8:175","valueSize":1},{"declaration":92673,"isOffset":false,"isSlot":false,"src":"5283:8:175","valueSize":1},{"declaration":92673,"isOffset":false,"isSlot":false,"src":"5561:8:175","valueSize":1}],"id":92675,"nodeType":"InlineAssembly","src":"4450:1829:175"},{"expression":{"id":92676,"name":"_nibbles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92673,"src":"6295:8:175","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":92671,"id":92677,"nodeType":"Return","src":"6288:15:175"}]},"documentation":{"id":92665,"nodeType":"StructuredDocumentation","src":"4048:279:175","text":"@notice Converts a byte array into a nibble array by splitting each byte into two nibbles.\n Resulting nibble array will be exactly twice as long as the input byte array.\n @param _bytes Input byte array to convert.\n @return Resulting nibble array."},"implemented":true,"kind":"function","modifiers":[],"name":"toNibbles","nameLocation":"4341:9:175","parameters":{"id":92668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92667,"mutability":"mutable","name":"_bytes","nameLocation":"4364:6:175","nodeType":"VariableDeclaration","scope":92679,"src":"4351:19:175","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":92666,"name":"bytes","nodeType":"ElementaryTypeName","src":"4351:5:175","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4350:21:175"},"returnParameters":{"id":92671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92670,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":92679,"src":"4395:12:175","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":92669,"name":"bytes","nodeType":"ElementaryTypeName","src":"4395:5:175","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4394:14:175"},"scope":92699,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":92698,"nodeType":"FunctionDefinition","src":"6569:148:175","nodes":[],"body":{"id":92697,"nodeType":"Block","src":"6655:62:175","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":92695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":92690,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92682,"src":"6682:6:175","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":92689,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6672:9:175","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":92691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6672:17:175","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":92693,"name":"_other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92684,"src":"6703:6:175","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":92692,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6693:9:175","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":92694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6693:17:175","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6672:38:175","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":92688,"id":92696,"nodeType":"Return","src":"6665:45:175"}]},"documentation":{"id":92680,"nodeType":"StructuredDocumentation","src":"6316:248:175","text":"@notice Compares two byte arrays by comparing their keccak256 hashes.\n @param _bytes First byte array to compare.\n @param _other Second byte array to compare.\n @return True if the two byte arrays are equal, false otherwise."},"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"6578:5:175","parameters":{"id":92685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92682,"mutability":"mutable","name":"_bytes","nameLocation":"6597:6:175","nodeType":"VariableDeclaration","scope":92698,"src":"6584:19:175","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":92681,"name":"bytes","nodeType":"ElementaryTypeName","src":"6584:5:175","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":92684,"mutability":"mutable","name":"_other","nameLocation":"6618:6:175","nodeType":"VariableDeclaration","scope":92698,"src":"6605:19:175","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":92683,"name":"bytes","nodeType":"ElementaryTypeName","src":"6605:5:175","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6583:42:175"},"returnParameters":{"id":92688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":92698,"src":"6649:4:175","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":92686,"name":"bool","nodeType":"ElementaryTypeName","src":"6649:4:175","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6648:6:175"},"scope":92699,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Bytes","contractDependencies":[],"contractKind":"library","documentation":{"id":92585,"nodeType":"StructuredDocumentation","src":"57:78:175","text":"@title Bytes\n @notice Bytes is a library for manipulating byte arrays."},"fullyImplemented":true,"linearizedBaseContracts":[92699],"name":"Bytes","nameLocation":"143:5:175","scope":92700,"usedErrors":[]}],"license":"MIT"},"id":175}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"135:6584:186:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;135:6584:186;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"135:6584:186:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Bytes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Bytes is a library for manipulating byte arrays.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Bytes.sol\":\"Bytes\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Bytes.sol\":{\"keccak256\":\"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782\",\"dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Bytes.sol":"Bytes"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Bytes.sol":{"keccak256":"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859","urls":["bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782","dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Bytes is a library for manipulating byte arrays."},"devdoc":{"version":1,"kind":"dev","title":"Bytes"},"id":186}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"235:311:100:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;235:311:100;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"235:311:100:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/Bytes32AddressLib.sol)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for converting between addresses and bytes32 values.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solmate/src/utils/Bytes32AddressLib.sol\":\"Bytes32AddressLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/utils/Bytes32AddressLib.sol\":{\"keccak256\":\"0xf40b65d6d9f75ac1446fa1e72b485cb9a9f9766df5dfa5a9355154f27620cd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://657e78ee68f3dadbecfc6af19622ac9f064bf341def8ef95c33fdda6d55923f8\",\"dweb:/ipfs/QmNnPwWthvrhFzUd7eCYCXEdxopnpDwbjgWqqnxckdPyzF\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/solmate/src/utils/Bytes32AddressLib.sol":"Bytes32AddressLib"},"evmVersion":"london","libraries":{}},"sources":{"lib/solmate/src/utils/Bytes32AddressLib.sol":{"keccak256":"0xf40b65d6d9f75ac1446fa1e72b485cb9a9f9766df5dfa5a9355154f27620cd4f","urls":["bzz-raw://657e78ee68f3dadbecfc6af19622ac9f064bf341def8ef95c33fdda6d55923f8","dweb:/ipfs/QmNnPwWthvrhFzUd7eCYCXEdxopnpDwbjgWqqnxckdPyzF"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Library for converting between addresses and bytes32 values."},"devdoc":{"version":1,"kind":"dev","author":"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/Bytes32AddressLib.sol)"},"ast":{"absolutePath":"lib/solmate/src/utils/Bytes32AddressLib.sol","id":61125,"exportedSymbols":{"Bytes32AddressLib":[61124]},"nodeType":"SourceUnit","src":"32:515:100","nodes":[{"id":61087,"nodeType":"PragmaDirective","src":"32:24:100","nodes":[],"literals":["solidity",">=","0.8",".0"]},{"id":61124,"nodeType":"ContractDefinition","src":"235:311:100","nodes":[{"id":61107,"nodeType":"FunctionDefinition","src":"267:138:100","nodes":[],"body":{"id":61106,"nodeType":"Block","src":"344:61:100","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":61101,"name":"bytesValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61090,"src":"385:10:100","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":61100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"377:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":61099,"name":"uint256","nodeType":"ElementaryTypeName","src":"377:7:100","typeDescriptions":{}}},"id":61102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"377:19:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"369:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":61097,"name":"uint160","nodeType":"ElementaryTypeName","src":"369:7:100","typeDescriptions":{}}},"id":61103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"369:28:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":61096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"361:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61095,"name":"address","nodeType":"ElementaryTypeName","src":"361:7:100","typeDescriptions":{}}},"id":61104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"361:37:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":61094,"id":61105,"nodeType":"Return","src":"354:44:100"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fromLast20Bytes","nameLocation":"276:15:100","parameters":{"id":61091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61090,"mutability":"mutable","name":"bytesValue","nameLocation":"300:10:100","nodeType":"VariableDeclaration","scope":61107,"src":"292:18:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":61089,"name":"bytes32","nodeType":"ElementaryTypeName","src":"292:7:100","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"291:20:100"},"returnParameters":{"id":61094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":61107,"src":"335:7:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61092,"name":"address","nodeType":"ElementaryTypeName","src":"335:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"334:9:100"},"scope":61124,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":61123,"nodeType":"FunctionDefinition","src":"411:133:100","nodes":[],"body":{"id":61122,"nodeType":"Block","src":"490:54:100","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":61118,"name":"addressValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61109,"src":"523:12:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"515:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":61116,"name":"bytes20","nodeType":"ElementaryTypeName","src":"515:7:100","typeDescriptions":{}}},"id":61119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"515:21:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":61115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"507:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":61114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"507:7:100","typeDescriptions":{}}},"id":61120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"507:30:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":61113,"id":61121,"nodeType":"Return","src":"500:37:100"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fillLast12Bytes","nameLocation":"420:15:100","parameters":{"id":61110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61109,"mutability":"mutable","name":"addressValue","nameLocation":"444:12:100","nodeType":"VariableDeclaration","scope":61123,"src":"436:20:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61108,"name":"address","nodeType":"ElementaryTypeName","src":"436:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"435:22:100"},"returnParameters":{"id":61113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":61123,"src":"481:7:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":61111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"481:7:100","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"480:9:100"},"scope":61124,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Bytes32AddressLib","contractDependencies":[],"contractKind":"library","documentation":{"id":61088,"nodeType":"StructuredDocumentation","src":"58:177:100","text":"@notice Library for converting between addresses and bytes32 values.\n @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/Bytes32AddressLib.sol)"},"fullyImplemented":true,"linearizedBaseContracts":[61124],"name":"Bytes32AddressLib","nameLocation":"243:17:100","scope":61125,"usedErrors":[]}],"license":"MIT"},"id":100}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"235:311:101:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;235:311:101;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"235:311:101:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/Bytes32AddressLib.sol)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for converting between addresses and bytes32 values.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solmate/src/utils/Bytes32AddressLib.sol\":\"Bytes32AddressLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/utils/Bytes32AddressLib.sol\":{\"keccak256\":\"0xf40b65d6d9f75ac1446fa1e72b485cb9a9f9766df5dfa5a9355154f27620cd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://657e78ee68f3dadbecfc6af19622ac9f064bf341def8ef95c33fdda6d55923f8\",\"dweb:/ipfs/QmNnPwWthvrhFzUd7eCYCXEdxopnpDwbjgWqqnxckdPyzF\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/solmate/src/utils/Bytes32AddressLib.sol":"Bytes32AddressLib"},"evmVersion":"london","libraries":{}},"sources":{"lib/solmate/src/utils/Bytes32AddressLib.sol":{"keccak256":"0xf40b65d6d9f75ac1446fa1e72b485cb9a9f9766df5dfa5a9355154f27620cd4f","urls":["bzz-raw://657e78ee68f3dadbecfc6af19622ac9f064bf341def8ef95c33fdda6d55923f8","dweb:/ipfs/QmNnPwWthvrhFzUd7eCYCXEdxopnpDwbjgWqqnxckdPyzF"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Library for converting between addresses and bytes32 values."},"devdoc":{"version":1,"kind":"dev","author":"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/Bytes32AddressLib.sol)"},"id":101}

@@ -1,1 +0,1 @@

{"abi":[{"type":"fallback","stateMutability":"nonpayable"},{"type":"event","name":"WhatHappened","inputs":[{"name":"success","type":"bool","indexed":false,"internalType":"bool"},{"name":"returndata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061016d806100206000396000f3fe608060405234801561001057600080fd5b506000803373ffffffffffffffffffffffffffffffffffffffff1660003660405161003c9291906100d3565b6000604051808303816000865af19150503d8060008114610079576040519150601f19603f3d011682016040523d82523d6000602084013e61007e565b606091505b50915091507f2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d41482826040516100b49291906100e3565b60405180910390a18180156100cb57815160208301f35b815160208301fd5b8183823760009101908152919050565b821515815260006020604081840152835180604085015260005b81811015610119578581018301518582016060015282016100fd565b8181111561012b576000606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160600194935050505056fea164736f6c634300080f000a","sourceMap":"465:440:294:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506000803373ffffffffffffffffffffffffffffffffffffffff1660003660405161003c9291906100d3565b6000604051808303816000865af19150503d8060008114610079576040519150601f19603f3d011682016040523d82523d6000602084013e61007e565b606091505b50915091507f2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d41482826040516100b49291906100e3565b60405180910390a18180156100cb57815160208301f35b815160208301fd5b8183823760009101908152919050565b821515815260006020604081840152835180604085015260005b81811015610119578581018301518582016060015282016100fd565b8181111561012b576000606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160600194935050505056fea164736f6c634300080f000a","sourceMap":"465:440:294:-:0;;;;;;;;;;;;;581:12;595:23;622:10;:15;;638:8;;622:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;580:67;;;;662:33;675:7;684:10;662:33;;;;;;;:::i;:::-;;;;;;;;735:7;755:59;;;;873:10;867:17;860:4;848:10;844:21;837:48;755:59;800:10;794:17;787:4;775:10;771:21;764:48;14:271:334;197:6;189;184:3;171:33;153:3;223:16;;248:13;;;223:16;14:271;-1:-1:-1;14:271:334:o;290:735::-;473:6;466:14;459:22;448:9;441:41;422:4;501:2;539;534;523:9;519:18;512:30;571:6;565:13;614:6;609:2;598:9;594:18;587:34;639:1;649:140;663:6;660:1;657:13;649:140;;;758:14;;;754:23;;748:30;724:17;;;743:2;720:26;713:66;678:10;;649:140;;;807:6;804:1;801:13;798:91;;;877:1;872:2;863:6;852:9;848:22;844:31;837:42;798:91;-1:-1:-1;941:2:334;929:15;946:66;925:88;910:104;;;;1016:2;906:113;;290:735;-1:-1:-1;;;;290:735:334:o","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returndata\",\"type\":\"bytes\"}],\"name\":\"WhatHappened\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"Useful for testing reentrancy guards\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/Callers.sol\":\"CallerCaller\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"test/mocks/Callers.sol\":{\"keccak256\":\"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b\",\"dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bool","name":"success","type":"bool","indexed":false},{"internalType":"bytes","name":"returndata","type":"bytes","indexed":false}],"type":"event","name":"WhatHappened","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/Callers.sol":"CallerCaller"},"evmVersion":"london","libraries":{}},"sources":{"test/mocks/Callers.sol":{"keccak256":"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c","urls":["bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b","dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Useful for testing reentrancy guards"},"ast":{"absolutePath":"test/mocks/Callers.sol","id":173224,"exportedSymbols":{"CallRecorder":[173086],"CallerCaller":[173115],"ConfigurableCaller":[173206],"Reverter":[173223]},"nodeType":"SourceUnit","src":"32:2555:294","nodes":[{"id":173041,"nodeType":"PragmaDirective","src":"32:23:294","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":173086,"nodeType":"ContractDefinition","src":"57:360:294","nodes":[{"id":173050,"nodeType":"StructDefinition","src":"85:111:294","nodes":[],"canonicalName":"CallRecorder.CallInfo","members":[{"constant":false,"id":173043,"mutability":"mutable","name":"sender","nameLocation":"119:6:294","nodeType":"VariableDeclaration","scope":173050,"src":"111:14:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173042,"name":"address","nodeType":"ElementaryTypeName","src":"111:7:294","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":173045,"mutability":"mutable","name":"data","nameLocation":"141:4:294","nodeType":"VariableDeclaration","scope":173050,"src":"135:10:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":173044,"name":"bytes","nodeType":"ElementaryTypeName","src":"135:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":173047,"mutability":"mutable","name":"gas","nameLocation":"163:3:294","nodeType":"VariableDeclaration","scope":173050,"src":"155:11:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173046,"name":"uint256","nodeType":"ElementaryTypeName","src":"155:7:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":173049,"mutability":"mutable","name":"value","nameLocation":"184:5:294","nodeType":"VariableDeclaration","scope":173050,"src":"176:13:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173048,"name":"uint256","nodeType":"ElementaryTypeName","src":"176:7:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CallInfo","nameLocation":"92:8:294","scope":173086,"visibility":"public"},{"id":173053,"nodeType":"VariableDeclaration","src":"202:24:294","nodes":[],"constant":false,"functionSelector":"da516aa9","mutability":"mutable","name":"lastCall","nameLocation":"218:8:294","scope":173086,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo"},"typeName":{"id":173052,"nodeType":"UserDefinedTypeName","pathNode":{"id":173051,"name":"CallInfo","nodeType":"IdentifierPath","referencedDeclaration":173050,"src":"202:8:294"},"referencedDeclaration":173050,"src":"202:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage_ptr","typeString":"struct CallRecorder.CallInfo"}},"visibility":"public"},{"id":173085,"nodeType":"FunctionDefinition","src":"233:182:294","nodes":[],"body":{"id":173084,"nodeType":"Block","src":"266:149:294","nodes":[],"statements":[{"expression":{"id":173061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173056,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"276:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":173043,"src":"276:15:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":173059,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"294:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"294:10:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"276:28:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173062,"nodeType":"ExpressionStatement","src":"276:28:294"},{"expression":{"id":173068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173063,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"314:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":173045,"src":"314:13:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":173066,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"330:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"330:8:294","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"314:24:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":173069,"nodeType":"ExpressionStatement","src":"314:24:294"},{"expression":{"id":173075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173070,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"348:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":173047,"src":"348:12:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":173073,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"363:7:294","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":173074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"363:9:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"348:24:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":173076,"nodeType":"ExpressionStatement","src":"348:24:294"},{"expression":{"id":173082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173077,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"382:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":173049,"src":"382:14:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":173080,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"399:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"399:9:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"382:26:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":173083,"nodeType":"ExpressionStatement","src":"382:26:294"}]},"functionSelector":"266cf109","implemented":true,"kind":"function","modifiers":[],"name":"record","nameLocation":"242:6:294","parameters":{"id":173054,"nodeType":"ParameterList","parameters":[],"src":"248:2:294"},"returnParameters":{"id":173055,"nodeType":"ParameterList","parameters":[],"src":"266:0:294"},"scope":173086,"stateMutability":"payable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CallRecorder","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[173086],"name":"CallRecorder","nameLocation":"66:12:294","scope":173224,"usedErrors":[]},{"id":173115,"nodeType":"ContractDefinition","src":"465:440:294","nodes":[{"id":173093,"nodeType":"EventDefinition","src":"493:51:294","nodes":[],"anonymous":false,"eventSelector":"2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414","name":"WhatHappened","nameLocation":"499:12:294","parameters":{"id":173092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173089,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"517:7:294","nodeType":"VariableDeclaration","scope":173093,"src":"512:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173088,"name":"bool","nodeType":"ElementaryTypeName","src":"512:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173091,"indexed":false,"mutability":"mutable","name":"returndata","nameLocation":"532:10:294","nodeType":"VariableDeclaration","scope":173093,"src":"526:16:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173090,"name":"bytes","nodeType":"ElementaryTypeName","src":"526:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"511:32:294"}},{"id":173114,"nodeType":"FunctionDefinition","src":"550:353:294","nodes":[],"body":{"id":173113,"nodeType":"Block","src":"570:333:294","nodes":[],"statements":[{"assignments":[173097,173099],"declarations":[{"constant":false,"id":173097,"mutability":"mutable","name":"success","nameLocation":"586:7:294","nodeType":"VariableDeclaration","scope":173113,"src":"581:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173096,"name":"bool","nodeType":"ElementaryTypeName","src":"581:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173099,"mutability":"mutable","name":"returndata","nameLocation":"608:10:294","nodeType":"VariableDeclaration","scope":173113,"src":"595:23:294","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173098,"name":"bytes","nodeType":"ElementaryTypeName","src":"595:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":173106,"initialValue":{"arguments":[{"expression":{"id":173103,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"638:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"638:8:294","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":173100,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"622:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"622:10:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"622:15:294","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":173105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"622:25:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"580:67:294"},{"eventCall":{"arguments":[{"id":173108,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173097,"src":"675:7:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":173109,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173099,"src":"684:10:294","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173107,"name":"WhatHappened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173093,"src":"662:12:294","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,bytes memory)"}},"id":173110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"662:33:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173111,"nodeType":"EmitStatement","src":"657:38:294"},{"AST":{"nodeType":"YulBlock","src":"714:183:294","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"762:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"775:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"787:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"771:3:294"},"nodeType":"YulFunctionCall","src":"771:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"800:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"794:5:294"},"nodeType":"YulFunctionCall","src":"794:17:294"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"764:6:294"},"nodeType":"YulFunctionCall","src":"764:48:294"},"nodeType":"YulExpressionStatement","src":"764:48:294"}]},"nodeType":"YulCase","src":"755:59:294","value":{"kind":"number","nodeType":"YulLiteral","src":"760:1:294","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"835:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"848:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"860:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"844:3:294"},"nodeType":"YulFunctionCall","src":"844:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"873:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"867:5:294"},"nodeType":"YulFunctionCall","src":"867:17:294"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"837:6:294"},"nodeType":"YulFunctionCall","src":"837:48:294"},"nodeType":"YulExpressionStatement","src":"837:48:294"}]},"nodeType":"YulCase","src":"827:60:294","value":"default"}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"735:7:294"},"nodeType":"YulSwitch","src":"728:159:294"}]},"evmVersion":"london","externalReferences":[{"declaration":173099,"isOffset":false,"isSlot":false,"src":"775:10:294","valueSize":1},{"declaration":173099,"isOffset":false,"isSlot":false,"src":"800:10:294","valueSize":1},{"declaration":173099,"isOffset":false,"isSlot":false,"src":"848:10:294","valueSize":1},{"declaration":173099,"isOffset":false,"isSlot":false,"src":"873:10:294","valueSize":1},{"declaration":173097,"isOffset":false,"isSlot":false,"src":"735:7:294","valueSize":1}],"id":173112,"nodeType":"InlineAssembly","src":"705:192:294"}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173094,"nodeType":"ParameterList","parameters":[],"src":"558:2:294"},"returnParameters":{"id":173095,"nodeType":"ParameterList","parameters":[],"src":"570:0:294"},"scope":173115,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"CallerCaller","contractDependencies":[],"contractKind":"contract","documentation":{"id":173087,"nodeType":"StructuredDocumentation","src":"419:46:294","text":"@dev Useful for testing reentrancy guards"},"fullyImplemented":true,"linearizedBaseContracts":[173115],"name":"CallerCaller","nameLocation":"474:12:294","scope":173224,"usedErrors":[]},{"id":173206,"nodeType":"ContractDefinition","src":"992:1409:294","nodes":[{"id":173119,"nodeType":"VariableDeclaration","src":"1026:20:294","nodes":[],"constant":false,"mutability":"mutable","name":"doRevert","nameLocation":"1031:8:294","scope":173206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173117,"name":"bool","nodeType":"ElementaryTypeName","src":"1026:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":173118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1042:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"internal"},{"id":173121,"nodeType":"VariableDeclaration","src":"1052:14:294","nodes":[],"constant":false,"mutability":"mutable","name":"target","nameLocation":"1060:6:294","scope":173206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173120,"name":"address","nodeType":"ElementaryTypeName","src":"1052:7:294","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":173123,"nodeType":"VariableDeclaration","src":"1072:13:294","nodes":[],"constant":false,"mutability":"mutable","name":"payload","nameLocation":"1078:7:294","scope":173206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":173122,"name":"bytes","nodeType":"ElementaryTypeName","src":"1072:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"id":173129,"nodeType":"EventDefinition","src":"1092:51:294","nodes":[],"anonymous":false,"eventSelector":"2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414","name":"WhatHappened","nameLocation":"1098:12:294","parameters":{"id":173128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173125,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"1116:7:294","nodeType":"VariableDeclaration","scope":173129,"src":"1111:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173124,"name":"bool","nodeType":"ElementaryTypeName","src":"1111:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173127,"indexed":false,"mutability":"mutable","name":"returndata","nameLocation":"1131:10:294","nodeType":"VariableDeclaration","scope":173129,"src":"1125:16:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173126,"name":"bytes","nodeType":"ElementaryTypeName","src":"1125:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1110:32:294"}},{"id":173160,"nodeType":"FunctionDefinition","src":"1231:491:294","nodes":[],"body":{"id":173159,"nodeType":"Block","src":"1256:466:294","nodes":[],"statements":[{"condition":{"id":173133,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173119,"src":"1270:8:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":173157,"nodeType":"Block","src":"1347:369:294","statements":[{"assignments":[173140,173142],"declarations":[{"constant":false,"id":173140,"mutability":"mutable","name":"success","nameLocation":"1367:7:294","nodeType":"VariableDeclaration","scope":173157,"src":"1362:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173139,"name":"bool","nodeType":"ElementaryTypeName","src":"1362:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173142,"mutability":"mutable","name":"returndata","nameLocation":"1389:10:294","nodeType":"VariableDeclaration","scope":173157,"src":"1376:23:294","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173141,"name":"bytes","nodeType":"ElementaryTypeName","src":"1376:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":173150,"initialValue":{"arguments":[{"id":173148,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173123,"src":"1424:7:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"expression":{"arguments":[{"id":173145,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173121,"src":"1411:6:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":173144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1403:7:294","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":173143,"name":"address","nodeType":"ElementaryTypeName","src":"1403:7:294","typeDescriptions":{}}},"id":173146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:15:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1403:20:294","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":173149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:29:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1361:71:294"},{"eventCall":{"arguments":[{"id":173152,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173140,"src":"1464:7:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":173153,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173142,"src":"1473:10:294","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173151,"name":"WhatHappened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173129,"src":"1451:12:294","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,bytes memory)"}},"id":173154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1451:33:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173155,"nodeType":"EmitStatement","src":"1446:38:294"},{"AST":{"nodeType":"YulBlock","src":"1507:199:294","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"1563:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1576:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"1588:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1572:3:294"},"nodeType":"YulFunctionCall","src":"1572:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1601:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1595:5:294"},"nodeType":"YulFunctionCall","src":"1595:17:294"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1565:6:294"},"nodeType":"YulFunctionCall","src":"1565:48:294"},"nodeType":"YulExpressionStatement","src":"1565:48:294"}]},"nodeType":"YulCase","src":"1556:59:294","value":{"kind":"number","nodeType":"YulLiteral","src":"1561:1:294","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"1640:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1653:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"1665:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1649:3:294"},"nodeType":"YulFunctionCall","src":"1649:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1678:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1672:5:294"},"nodeType":"YulFunctionCall","src":"1672:17:294"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1642:6:294"},"nodeType":"YulFunctionCall","src":"1642:48:294"},"nodeType":"YulExpressionStatement","src":"1642:48:294"}]},"nodeType":"YulCase","src":"1632:60:294","value":"default"}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"1532:7:294"},"nodeType":"YulSwitch","src":"1525:167:294"}]},"evmVersion":"london","externalReferences":[{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1576:10:294","valueSize":1},{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1601:10:294","valueSize":1},{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1653:10:294","valueSize":1},{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1678:10:294","valueSize":1},{"declaration":173140,"isOffset":false,"isSlot":false,"src":"1532:7:294","valueSize":1}],"id":173156,"nodeType":"InlineAssembly","src":"1498:208:294"}]},"id":173158,"nodeType":"IfStatement","src":"1266:450:294","trueBody":{"id":173138,"nodeType":"Block","src":"1280:61:294","statements":[{"expression":{"arguments":[{"hexValue":"436f6e666967757261626c6543616c6c65723a20726576657274","id":173135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1301:28:294","typeDescriptions":{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""},"value":"ConfigurableCaller: revert"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""}],"id":173134,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1294:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":173136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1294:36:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173137,"nodeType":"ExpressionStatement","src":"1294:36:294"}]}}]},"documentation":{"id":173130,"nodeType":"StructuredDocumentation","src":"1149:77:294","text":"@notice Call the configured target with the configured payload OR revert."},"functionSelector":"28b5e32b","implemented":true,"kind":"function","modifiers":[],"name":"call","nameLocation":"1240:4:294","parameters":{"id":173131,"nodeType":"ParameterList","parameters":[],"src":"1244:2:294"},"returnParameters":{"id":173132,"nodeType":"ParameterList","parameters":[],"src":"1256:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173171,"nodeType":"FunctionDefinition","src":"1786:83:294","nodes":[],"body":{"id":173170,"nodeType":"Block","src":"1832:37:294","nodes":[],"statements":[{"expression":{"id":173168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173166,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173119,"src":"1842:8:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173167,"name":"_doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173163,"src":"1853:9:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1842:20:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":173169,"nodeType":"ExpressionStatement","src":"1842:20:294"}]},"documentation":{"id":173161,"nodeType":"StructuredDocumentation","src":"1728:53:294","text":"@notice Set whether or not to have `call` revert."},"functionSelector":"781dd750","implemented":true,"kind":"function","modifiers":[],"name":"setDoRevert","nameLocation":"1795:11:294","parameters":{"id":173164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173163,"mutability":"mutable","name":"_doRevert","nameLocation":"1812:9:294","nodeType":"VariableDeclaration","scope":173171,"src":"1807:14:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173162,"name":"bool","nodeType":"ElementaryTypeName","src":"1807:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1806:16:294"},"returnParameters":{"id":173165,"nodeType":"ParameterList","parameters":[],"src":"1832:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173182,"nodeType":"FunctionDefinition","src":"1935:78:294","nodes":[],"body":{"id":173181,"nodeType":"Block","src":"1980:33:294","nodes":[],"statements":[{"expression":{"id":173179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173177,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173121,"src":"1990:6:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173178,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173174,"src":"1999:7:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1990:16:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173180,"nodeType":"ExpressionStatement","src":"1990:16:294"}]},"documentation":{"id":173172,"nodeType":"StructuredDocumentation","src":"1875:55:294","text":"@notice Set the target for the call made in `call`."},"functionSelector":"776d1a01","implemented":true,"kind":"function","modifiers":[],"name":"setTarget","nameLocation":"1944:9:294","parameters":{"id":173175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173174,"mutability":"mutable","name":"_target","nameLocation":"1962:7:294","nodeType":"VariableDeclaration","scope":173182,"src":"1954:15:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173173,"name":"address","nodeType":"ElementaryTypeName","src":"1954:7:294","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1953:17:294"},"returnParameters":{"id":173176,"nodeType":"ParameterList","parameters":[],"src":"1980:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173193,"nodeType":"FunctionDefinition","src":"2080:89:294","nodes":[],"body":{"id":173192,"nodeType":"Block","src":"2134:35:294","nodes":[],"statements":[{"expression":{"id":173190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173188,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173123,"src":"2144:7:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173189,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173185,"src":"2154:8:294","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"2144:18:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":173191,"nodeType":"ExpressionStatement","src":"2144:18:294"}]},"documentation":{"id":173183,"nodeType":"StructuredDocumentation","src":"2019:56:294","text":"@notice Set the payload for the call made in `call`."},"functionSelector":"deb3cdf2","implemented":true,"kind":"function","modifiers":[],"name":"setPayload","nameLocation":"2089:10:294","parameters":{"id":173186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173185,"mutability":"mutable","name":"_payload","nameLocation":"2115:8:294","nodeType":"VariableDeclaration","scope":173193,"src":"2100:23:294","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":173184,"name":"bytes","nodeType":"ElementaryTypeName","src":"2100:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2099:25:294"},"returnParameters":{"id":173187,"nodeType":"ParameterList","parameters":[],"src":"2134:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173205,"nodeType":"FunctionDefinition","src":"2288:111:294","nodes":[],"body":{"id":173204,"nodeType":"Block","src":"2308:91:294","nodes":[],"statements":[{"condition":{"id":173197,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173119,"src":"2322:8:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":173203,"nodeType":"IfStatement","src":"2318:75:294","trueBody":{"id":173202,"nodeType":"Block","src":"2332:61:294","statements":[{"expression":{"arguments":[{"hexValue":"436f6e666967757261626c6543616c6c65723a20726576657274","id":173199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2353:28:294","typeDescriptions":{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""},"value":"ConfigurableCaller: revert"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""}],"id":173198,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2346:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":173200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2346:36:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173201,"nodeType":"ExpressionStatement","src":"2346:36:294"}]}}]},"documentation":{"id":173194,"nodeType":"StructuredDocumentation","src":"2175:108:294","text":"@notice Fallback function that reverts if `doRevert` is true.\n Otherwise, it does nothing."},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173195,"nodeType":"ParameterList","parameters":[],"src":"2296:2:294"},"returnParameters":{"id":173196,"nodeType":"ParameterList","parameters":[],"src":"2308:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ConfigurableCaller","contractDependencies":[],"contractKind":"contract","documentation":{"id":173116,"nodeType":"StructuredDocumentation","src":"907:85:294","text":"@dev Used for testing the `CrossDomainMessenger`'s per-message reentrancy guard."},"fullyImplemented":true,"linearizedBaseContracts":[173206],"name":"ConfigurableCaller","nameLocation":"1001:18:294","scope":173224,"usedErrors":[]},{"id":173223,"nodeType":"ContractDefinition","src":"2433:153:294","nodes":[{"id":173215,"nodeType":"FunctionDefinition","src":"2457:76:294","nodes":[],"body":{"id":173214,"nodeType":"Block","src":"2489:44:294","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"5265766572746572207265766572746564","id":173211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2506:19:294","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3edf6a705c1ac2ccf4eb0ce9f05039f24b547c0f1460366bd5050c270cb80ba","typeString":"literal_string \"Reverter reverted\""},"value":"Reverter reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3edf6a705c1ac2ccf4eb0ce9f05039f24b547c0f1460366bd5050c270cb80ba","typeString":"literal_string \"Reverter reverted\""}],"id":173210,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2499:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":173212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2499:27:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173213,"nodeType":"ExpressionStatement","src":"2499:27:294"}]},"functionSelector":"afc874d2","implemented":true,"kind":"function","modifiers":[],"name":"doRevert","nameLocation":"2466:8:294","parameters":{"id":173208,"nodeType":"ParameterList","parameters":[],"src":"2474:2:294"},"returnParameters":{"id":173209,"nodeType":"ParameterList","parameters":[],"src":"2489:0:294"},"scope":173223,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":173222,"nodeType":"FunctionDefinition","src":"2539:45:294","nodes":[],"body":{"id":173221,"nodeType":"Block","src":"2559:25:294","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":173218,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2569:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":173219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2569:8:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173220,"nodeType":"ExpressionStatement","src":"2569:8:294"}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173216,"nodeType":"ParameterList","parameters":[],"src":"2547:2:294"},"returnParameters":{"id":173217,"nodeType":"ParameterList","parameters":[],"src":"2559:0:294"},"scope":173223,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Reverter","contractDependencies":[],"contractKind":"contract","documentation":{"id":173207,"nodeType":"StructuredDocumentation","src":"2403:30:294","text":"@dev Any call will revert"},"fullyImplemented":true,"linearizedBaseContracts":[173223],"name":"Reverter","nameLocation":"2442:8:294","scope":173224,"usedErrors":[]}],"license":"MIT"},"id":294}
{"abi":[{"type":"fallback","stateMutability":"nonpayable"},{"type":"event","name":"WhatHappened","inputs":[{"name":"success","type":"bool","indexed":false,"internalType":"bool"},{"name":"returndata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061016d806100206000396000f3fe608060405234801561001057600080fd5b506000803373ffffffffffffffffffffffffffffffffffffffff1660003660405161003c9291906100d3565b6000604051808303816000865af19150503d8060008114610079576040519150601f19603f3d011682016040523d82523d6000602084013e61007e565b606091505b50915091507f2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d41482826040516100b49291906100e3565b60405180910390a18180156100cb57815160208301f35b815160208301fd5b8183823760009101908152919050565b821515815260006020604081840152835180604085015260005b81811015610119578581018301518582016060015282016100fd565b8181111561012b576000606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160600194935050505056fea164736f6c634300080f000a","sourceMap":"465:440:310:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506000803373ffffffffffffffffffffffffffffffffffffffff1660003660405161003c9291906100d3565b6000604051808303816000865af19150503d8060008114610079576040519150601f19603f3d011682016040523d82523d6000602084013e61007e565b606091505b50915091507f2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d41482826040516100b49291906100e3565b60405180910390a18180156100cb57815160208301f35b815160208301fd5b8183823760009101908152919050565b821515815260006020604081840152835180604085015260005b81811015610119578581018301518582016060015282016100fd565b8181111561012b576000606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160600194935050505056fea164736f6c634300080f000a","sourceMap":"465:440:310:-:0;;;;;;;;;;;;;581:12;595:23;622:10;:15;;638:8;;622:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;580:67;;;;662:33;675:7;684:10;662:33;;;;;;;:::i;:::-;;;;;;;;735:7;755:59;;;;873:10;867:17;860:4;848:10;844:21;837:48;755:59;800:10;794:17;787:4;775:10;771:21;764:48;14:271:350;197:6;189;184:3;171:33;153:3;223:16;;248:13;;;223:16;14:271;-1:-1:-1;14:271:350:o;290:735::-;473:6;466:14;459:22;448:9;441:41;422:4;501:2;539;534;523:9;519:18;512:30;571:6;565:13;614:6;609:2;598:9;594:18;587:34;639:1;649:140;663:6;660:1;657:13;649:140;;;758:14;;;754:23;;748:30;724:17;;;743:2;720:26;713:66;678:10;;649:140;;;807:6;804:1;801:13;798:91;;;877:1;872:2;863:6;852:9;848:22;844:31;837:42;798:91;-1:-1:-1;941:2:350;929:15;946:66;925:88;910:104;;;;1016:2;906:113;;290:735;-1:-1:-1;;;;290:735:350:o","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returndata\",\"type\":\"bytes\"}],\"name\":\"WhatHappened\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"Useful for testing reentrancy guards\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/Callers.sol\":\"CallerCaller\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"test/mocks/Callers.sol\":{\"keccak256\":\"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b\",\"dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bool","name":"success","type":"bool","indexed":false},{"internalType":"bytes","name":"returndata","type":"bytes","indexed":false}],"type":"event","name":"WhatHappened","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/Callers.sol":"CallerCaller"},"evmVersion":"london","libraries":{}},"sources":{"test/mocks/Callers.sol":{"keccak256":"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c","urls":["bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b","dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Useful for testing reentrancy guards"},"id":310}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"lastCall","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"gas","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506103fe806100206000396000f3fe6080604052600436106100295760003560e01c8063266cf1091461002e578063da516aa914610038575b600080fd5b610036610066565b005b34801561004457600080fd5b5061004d6100aa565b60405161005d9493929190610164565b60405180910390f35b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317815560019061009f903690836102d6565b505a60025534600355565b600080546001805473ffffffffffffffffffffffffffffffffffffffff90921692916100d590610234565b80601f016020809104026020016040519081016040528092919081815260200182805461010190610234565b801561014e5780601f106101235761010080835404028352916020019161014e565b820191906000526020600020905b81548152906001019060200180831161013157829003601f168201915b5050505050908060020154908060030154905084565b73ffffffffffffffffffffffffffffffffffffffff8516815260006020608081840152855180608085015260005b818110156101ae5787810183015185820160a001528201610192565b818111156101c057600060a083870101525b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505083604083015282606083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c9082168061024857607f821691505b602082108103610281577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156102d157600081815260208120601f850160051c810160208610156102ae5750805b601f850160051c820191505b818110156102cd578281556001016102ba565b5050505b505050565b67ffffffffffffffff8311156102ee576102ee610205565b610302836102fc8354610234565b83610287565b6000601f841160018114610354576000851561031e5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556103ea565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156103a35786850135825560209485019460019092019101610383565b50868210156103de577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c634300080f000a","sourceMap":"57:360:294:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100295760003560e01c8063266cf1091461002e578063da516aa914610038575b600080fd5b610036610066565b005b34801561004457600080fd5b5061004d6100aa565b60405161005d9493929190610164565b60405180910390f35b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317815560019061009f903690836102d6565b505a60025534600355565b600080546001805473ffffffffffffffffffffffffffffffffffffffff90921692916100d590610234565b80601f016020809104026020016040519081016040528092919081815260200182805461010190610234565b801561014e5780601f106101235761010080835404028352916020019161014e565b820191906000526020600020905b81548152906001019060200180831161013157829003601f168201915b5050505050908060020154908060030154905084565b73ffffffffffffffffffffffffffffffffffffffff8516815260006020608081840152855180608085015260005b818110156101ae5787810183015185820160a001528201610192565b818111156101c057600060a083870101525b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505083604083015282606083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c9082168061024857607f821691505b602082108103610281577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156102d157600081815260208120601f850160051c810160208610156102ae5750805b601f850160051c820191505b818110156102cd578281556001016102ba565b5050505b505050565b67ffffffffffffffff8311156102ee576102ee610205565b610302836102fc8354610234565b83610287565b6000601f841160018114610354576000851561031e5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556103ea565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156103a35786850135825560209485019460019092019101610383565b50868210156103de577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c634300080f000a","sourceMap":"57:360:294:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;233:182;;;:::i;:::-;;202:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;233:182;276:8;:28;;;;294:10;276:28;;;;;314:24;;330:8;;276:28;314:24;:::i;:::-;;363:9;348:12;:24;399:9;382:14;:26;233:182::o;202:24::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:921:334:-;257:42;249:6;245:55;234:9;227:74;208:4;320:2;358:3;353:2;342:9;338:18;331:31;391:6;385:13;435:6;429:3;418:9;414:19;407:35;460:1;470:141;484:6;481:1;478:13;470:141;;;580:14;;;576:23;;570:30;545:17;;;564:3;541:27;534:67;499:10;;470:141;;;629:6;626:1;623:13;620:92;;;700:1;694:3;685:6;674:9;670:22;666:32;659:43;620:92;;839:3;769:66;764:2;756:6;752:15;748:88;737:9;733:104;729:114;721:122;;;;879:6;874:2;863:9;859:18;852:34;922:6;917:2;906:9;902:18;895:34;14:921;;;;;;;:::o;940:184::-;992:77;989:1;982:88;1089:4;1086:1;1079:15;1113:4;1110:1;1103:15;1129:437;1208:1;1204:12;;;;1251;;;1272:61;;1326:4;1318:6;1314:17;1304:27;;1272:61;1379:2;1371:6;1368:14;1348:18;1345:38;1342:218;;1416:77;1413:1;1406:88;1517:4;1514:1;1507:15;1545:4;1542:1;1535:15;1342:218;;1129:437;;;:::o;1696:544::-;1797:2;1792:3;1789:11;1786:448;;;1833:1;1858:5;1854:2;1847:17;1903:4;1899:2;1889:19;1973:2;1961:10;1957:19;1954:1;1950:27;1944:4;1940:38;2009:4;1997:10;1994:20;1991:47;;;-1:-1:-1;2032:4:334;1991:47;2087:2;2082:3;2078:12;2075:1;2071:20;2065:4;2061:31;2051:41;;2142:82;2160:2;2153:5;2150:13;2142:82;;;2205:17;;;2186:1;2175:13;2142:82;;;2146:3;;;1786:448;1696:544;;;:::o;2476:1321::-;2598:18;2593:3;2590:27;2587:53;;;2620:18;;:::i;:::-;2649:93;2738:3;2698:38;2730:4;2724:11;2698:38;:::i;:::-;2692:4;2649:93;:::i;:::-;2768:1;2793:2;2788:3;2785:11;2810:1;2805:734;;;;3583:1;3600:3;3597:93;;;-1:-1:-1;3656:19:334;;;3643:33;3597:93;2382:66;2373:1;2369:11;;;2365:84;2361:89;2351:100;2457:1;2453:11;;;2348:117;3703:78;;2778:1013;;2805:734;1643:1;1636:14;;;1680:4;1667:18;;2850:66;2841:76;;;3000:9;3022:229;3036:7;3033:1;3030:14;3022:229;;;3125:19;;;3112:33;3097:49;;3232:4;3217:20;;;;3185:1;3173:14;;;;3052:12;3022:229;;;3026:3;3279;3270:7;3267:16;3264:219;;;3399:66;3393:3;3387;3384:1;3380:11;3376:21;3372:94;3368:99;3355:9;3350:3;3346:19;3333:33;3329:139;3321:6;3314:155;3264:219;;;3526:1;3520:3;3517:1;3513:11;3509:19;3503:4;3496:33;2778:1013;;;2476:1321;;;:::o","linkReferences":{}},"methodIdentifiers":{"lastCall()":"da516aa9","record()":"266cf109"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"lastCall\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/Callers.sol\":\"CallRecorder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"test/mocks/Callers.sol\":{\"keccak256\":\"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b\",\"dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"lastCall","outputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"gas","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"record"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/Callers.sol":"CallRecorder"},"evmVersion":"london","libraries":{}},"sources":{"test/mocks/Callers.sol":{"keccak256":"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c","urls":["bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b","dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":173053,"contract":"test/mocks/Callers.sol:CallRecorder","label":"lastCall","offset":0,"slot":"0","type":"t_struct(CallInfo)173050_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_struct(CallInfo)173050_storage":{"encoding":"inplace","label":"struct CallRecorder.CallInfo","numberOfBytes":"128","members":[{"astId":173043,"contract":"test/mocks/Callers.sol:CallRecorder","label":"sender","offset":0,"slot":"0","type":"t_address"},{"astId":173045,"contract":"test/mocks/Callers.sol:CallRecorder","label":"data","offset":0,"slot":"1","type":"t_bytes_storage"},{"astId":173047,"contract":"test/mocks/Callers.sol:CallRecorder","label":"gas","offset":0,"slot":"2","type":"t_uint256"},{"astId":173049,"contract":"test/mocks/Callers.sol:CallRecorder","label":"value","offset":0,"slot":"3","type":"t_uint256"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/mocks/Callers.sol","id":173224,"exportedSymbols":{"CallRecorder":[173086],"CallerCaller":[173115],"ConfigurableCaller":[173206],"Reverter":[173223]},"nodeType":"SourceUnit","src":"32:2555:294","nodes":[{"id":173041,"nodeType":"PragmaDirective","src":"32:23:294","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":173086,"nodeType":"ContractDefinition","src":"57:360:294","nodes":[{"id":173050,"nodeType":"StructDefinition","src":"85:111:294","nodes":[],"canonicalName":"CallRecorder.CallInfo","members":[{"constant":false,"id":173043,"mutability":"mutable","name":"sender","nameLocation":"119:6:294","nodeType":"VariableDeclaration","scope":173050,"src":"111:14:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173042,"name":"address","nodeType":"ElementaryTypeName","src":"111:7:294","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":173045,"mutability":"mutable","name":"data","nameLocation":"141:4:294","nodeType":"VariableDeclaration","scope":173050,"src":"135:10:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":173044,"name":"bytes","nodeType":"ElementaryTypeName","src":"135:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":173047,"mutability":"mutable","name":"gas","nameLocation":"163:3:294","nodeType":"VariableDeclaration","scope":173050,"src":"155:11:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173046,"name":"uint256","nodeType":"ElementaryTypeName","src":"155:7:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":173049,"mutability":"mutable","name":"value","nameLocation":"184:5:294","nodeType":"VariableDeclaration","scope":173050,"src":"176:13:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173048,"name":"uint256","nodeType":"ElementaryTypeName","src":"176:7:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CallInfo","nameLocation":"92:8:294","scope":173086,"visibility":"public"},{"id":173053,"nodeType":"VariableDeclaration","src":"202:24:294","nodes":[],"constant":false,"functionSelector":"da516aa9","mutability":"mutable","name":"lastCall","nameLocation":"218:8:294","scope":173086,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo"},"typeName":{"id":173052,"nodeType":"UserDefinedTypeName","pathNode":{"id":173051,"name":"CallInfo","nodeType":"IdentifierPath","referencedDeclaration":173050,"src":"202:8:294"},"referencedDeclaration":173050,"src":"202:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage_ptr","typeString":"struct CallRecorder.CallInfo"}},"visibility":"public"},{"id":173085,"nodeType":"FunctionDefinition","src":"233:182:294","nodes":[],"body":{"id":173084,"nodeType":"Block","src":"266:149:294","nodes":[],"statements":[{"expression":{"id":173061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173056,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"276:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":173043,"src":"276:15:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":173059,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"294:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"294:10:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"276:28:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173062,"nodeType":"ExpressionStatement","src":"276:28:294"},{"expression":{"id":173068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173063,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"314:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":173045,"src":"314:13:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":173066,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"330:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"330:8:294","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"314:24:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":173069,"nodeType":"ExpressionStatement","src":"314:24:294"},{"expression":{"id":173075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173070,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"348:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":173047,"src":"348:12:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":173073,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"363:7:294","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":173074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"363:9:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"348:24:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":173076,"nodeType":"ExpressionStatement","src":"348:24:294"},{"expression":{"id":173082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173077,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"382:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":173049,"src":"382:14:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":173080,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"399:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"399:9:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"382:26:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":173083,"nodeType":"ExpressionStatement","src":"382:26:294"}]},"functionSelector":"266cf109","implemented":true,"kind":"function","modifiers":[],"name":"record","nameLocation":"242:6:294","parameters":{"id":173054,"nodeType":"ParameterList","parameters":[],"src":"248:2:294"},"returnParameters":{"id":173055,"nodeType":"ParameterList","parameters":[],"src":"266:0:294"},"scope":173086,"stateMutability":"payable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CallRecorder","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[173086],"name":"CallRecorder","nameLocation":"66:12:294","scope":173224,"usedErrors":[]},{"id":173115,"nodeType":"ContractDefinition","src":"465:440:294","nodes":[{"id":173093,"nodeType":"EventDefinition","src":"493:51:294","nodes":[],"anonymous":false,"eventSelector":"2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414","name":"WhatHappened","nameLocation":"499:12:294","parameters":{"id":173092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173089,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"517:7:294","nodeType":"VariableDeclaration","scope":173093,"src":"512:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173088,"name":"bool","nodeType":"ElementaryTypeName","src":"512:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173091,"indexed":false,"mutability":"mutable","name":"returndata","nameLocation":"532:10:294","nodeType":"VariableDeclaration","scope":173093,"src":"526:16:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173090,"name":"bytes","nodeType":"ElementaryTypeName","src":"526:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"511:32:294"}},{"id":173114,"nodeType":"FunctionDefinition","src":"550:353:294","nodes":[],"body":{"id":173113,"nodeType":"Block","src":"570:333:294","nodes":[],"statements":[{"assignments":[173097,173099],"declarations":[{"constant":false,"id":173097,"mutability":"mutable","name":"success","nameLocation":"586:7:294","nodeType":"VariableDeclaration","scope":173113,"src":"581:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173096,"name":"bool","nodeType":"ElementaryTypeName","src":"581:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173099,"mutability":"mutable","name":"returndata","nameLocation":"608:10:294","nodeType":"VariableDeclaration","scope":173113,"src":"595:23:294","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173098,"name":"bytes","nodeType":"ElementaryTypeName","src":"595:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":173106,"initialValue":{"arguments":[{"expression":{"id":173103,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"638:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"638:8:294","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":173100,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"622:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"622:10:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"622:15:294","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":173105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"622:25:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"580:67:294"},{"eventCall":{"arguments":[{"id":173108,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173097,"src":"675:7:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":173109,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173099,"src":"684:10:294","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173107,"name":"WhatHappened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173093,"src":"662:12:294","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,bytes memory)"}},"id":173110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"662:33:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173111,"nodeType":"EmitStatement","src":"657:38:294"},{"AST":{"nodeType":"YulBlock","src":"714:183:294","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"762:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"775:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"787:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"771:3:294"},"nodeType":"YulFunctionCall","src":"771:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"800:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"794:5:294"},"nodeType":"YulFunctionCall","src":"794:17:294"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"764:6:294"},"nodeType":"YulFunctionCall","src":"764:48:294"},"nodeType":"YulExpressionStatement","src":"764:48:294"}]},"nodeType":"YulCase","src":"755:59:294","value":{"kind":"number","nodeType":"YulLiteral","src":"760:1:294","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"835:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"848:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"860:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"844:3:294"},"nodeType":"YulFunctionCall","src":"844:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"873:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"867:5:294"},"nodeType":"YulFunctionCall","src":"867:17:294"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"837:6:294"},"nodeType":"YulFunctionCall","src":"837:48:294"},"nodeType":"YulExpressionStatement","src":"837:48:294"}]},"nodeType":"YulCase","src":"827:60:294","value":"default"}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"735:7:294"},"nodeType":"YulSwitch","src":"728:159:294"}]},"evmVersion":"london","externalReferences":[{"declaration":173099,"isOffset":false,"isSlot":false,"src":"775:10:294","valueSize":1},{"declaration":173099,"isOffset":false,"isSlot":false,"src":"800:10:294","valueSize":1},{"declaration":173099,"isOffset":false,"isSlot":false,"src":"848:10:294","valueSize":1},{"declaration":173099,"isOffset":false,"isSlot":false,"src":"873:10:294","valueSize":1},{"declaration":173097,"isOffset":false,"isSlot":false,"src":"735:7:294","valueSize":1}],"id":173112,"nodeType":"InlineAssembly","src":"705:192:294"}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173094,"nodeType":"ParameterList","parameters":[],"src":"558:2:294"},"returnParameters":{"id":173095,"nodeType":"ParameterList","parameters":[],"src":"570:0:294"},"scope":173115,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"CallerCaller","contractDependencies":[],"contractKind":"contract","documentation":{"id":173087,"nodeType":"StructuredDocumentation","src":"419:46:294","text":"@dev Useful for testing reentrancy guards"},"fullyImplemented":true,"linearizedBaseContracts":[173115],"name":"CallerCaller","nameLocation":"474:12:294","scope":173224,"usedErrors":[]},{"id":173206,"nodeType":"ContractDefinition","src":"992:1409:294","nodes":[{"id":173119,"nodeType":"VariableDeclaration","src":"1026:20:294","nodes":[],"constant":false,"mutability":"mutable","name":"doRevert","nameLocation":"1031:8:294","scope":173206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173117,"name":"bool","nodeType":"ElementaryTypeName","src":"1026:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":173118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1042:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"internal"},{"id":173121,"nodeType":"VariableDeclaration","src":"1052:14:294","nodes":[],"constant":false,"mutability":"mutable","name":"target","nameLocation":"1060:6:294","scope":173206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173120,"name":"address","nodeType":"ElementaryTypeName","src":"1052:7:294","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":173123,"nodeType":"VariableDeclaration","src":"1072:13:294","nodes":[],"constant":false,"mutability":"mutable","name":"payload","nameLocation":"1078:7:294","scope":173206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":173122,"name":"bytes","nodeType":"ElementaryTypeName","src":"1072:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"id":173129,"nodeType":"EventDefinition","src":"1092:51:294","nodes":[],"anonymous":false,"eventSelector":"2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414","name":"WhatHappened","nameLocation":"1098:12:294","parameters":{"id":173128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173125,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"1116:7:294","nodeType":"VariableDeclaration","scope":173129,"src":"1111:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173124,"name":"bool","nodeType":"ElementaryTypeName","src":"1111:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173127,"indexed":false,"mutability":"mutable","name":"returndata","nameLocation":"1131:10:294","nodeType":"VariableDeclaration","scope":173129,"src":"1125:16:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173126,"name":"bytes","nodeType":"ElementaryTypeName","src":"1125:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1110:32:294"}},{"id":173160,"nodeType":"FunctionDefinition","src":"1231:491:294","nodes":[],"body":{"id":173159,"nodeType":"Block","src":"1256:466:294","nodes":[],"statements":[{"condition":{"id":173133,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173119,"src":"1270:8:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":173157,"nodeType":"Block","src":"1347:369:294","statements":[{"assignments":[173140,173142],"declarations":[{"constant":false,"id":173140,"mutability":"mutable","name":"success","nameLocation":"1367:7:294","nodeType":"VariableDeclaration","scope":173157,"src":"1362:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173139,"name":"bool","nodeType":"ElementaryTypeName","src":"1362:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173142,"mutability":"mutable","name":"returndata","nameLocation":"1389:10:294","nodeType":"VariableDeclaration","scope":173157,"src":"1376:23:294","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173141,"name":"bytes","nodeType":"ElementaryTypeName","src":"1376:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":173150,"initialValue":{"arguments":[{"id":173148,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173123,"src":"1424:7:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"expression":{"arguments":[{"id":173145,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173121,"src":"1411:6:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":173144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1403:7:294","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":173143,"name":"address","nodeType":"ElementaryTypeName","src":"1403:7:294","typeDescriptions":{}}},"id":173146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:15:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1403:20:294","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":173149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:29:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1361:71:294"},{"eventCall":{"arguments":[{"id":173152,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173140,"src":"1464:7:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":173153,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173142,"src":"1473:10:294","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173151,"name":"WhatHappened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173129,"src":"1451:12:294","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,bytes memory)"}},"id":173154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1451:33:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173155,"nodeType":"EmitStatement","src":"1446:38:294"},{"AST":{"nodeType":"YulBlock","src":"1507:199:294","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"1563:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1576:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"1588:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1572:3:294"},"nodeType":"YulFunctionCall","src":"1572:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1601:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1595:5:294"},"nodeType":"YulFunctionCall","src":"1595:17:294"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1565:6:294"},"nodeType":"YulFunctionCall","src":"1565:48:294"},"nodeType":"YulExpressionStatement","src":"1565:48:294"}]},"nodeType":"YulCase","src":"1556:59:294","value":{"kind":"number","nodeType":"YulLiteral","src":"1561:1:294","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"1640:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1653:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"1665:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1649:3:294"},"nodeType":"YulFunctionCall","src":"1649:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1678:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1672:5:294"},"nodeType":"YulFunctionCall","src":"1672:17:294"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1642:6:294"},"nodeType":"YulFunctionCall","src":"1642:48:294"},"nodeType":"YulExpressionStatement","src":"1642:48:294"}]},"nodeType":"YulCase","src":"1632:60:294","value":"default"}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"1532:7:294"},"nodeType":"YulSwitch","src":"1525:167:294"}]},"evmVersion":"london","externalReferences":[{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1576:10:294","valueSize":1},{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1601:10:294","valueSize":1},{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1653:10:294","valueSize":1},{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1678:10:294","valueSize":1},{"declaration":173140,"isOffset":false,"isSlot":false,"src":"1532:7:294","valueSize":1}],"id":173156,"nodeType":"InlineAssembly","src":"1498:208:294"}]},"id":173158,"nodeType":"IfStatement","src":"1266:450:294","trueBody":{"id":173138,"nodeType":"Block","src":"1280:61:294","statements":[{"expression":{"arguments":[{"hexValue":"436f6e666967757261626c6543616c6c65723a20726576657274","id":173135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1301:28:294","typeDescriptions":{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""},"value":"ConfigurableCaller: revert"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""}],"id":173134,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1294:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":173136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1294:36:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173137,"nodeType":"ExpressionStatement","src":"1294:36:294"}]}}]},"documentation":{"id":173130,"nodeType":"StructuredDocumentation","src":"1149:77:294","text":"@notice Call the configured target with the configured payload OR revert."},"functionSelector":"28b5e32b","implemented":true,"kind":"function","modifiers":[],"name":"call","nameLocation":"1240:4:294","parameters":{"id":173131,"nodeType":"ParameterList","parameters":[],"src":"1244:2:294"},"returnParameters":{"id":173132,"nodeType":"ParameterList","parameters":[],"src":"1256:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173171,"nodeType":"FunctionDefinition","src":"1786:83:294","nodes":[],"body":{"id":173170,"nodeType":"Block","src":"1832:37:294","nodes":[],"statements":[{"expression":{"id":173168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173166,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173119,"src":"1842:8:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173167,"name":"_doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173163,"src":"1853:9:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1842:20:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":173169,"nodeType":"ExpressionStatement","src":"1842:20:294"}]},"documentation":{"id":173161,"nodeType":"StructuredDocumentation","src":"1728:53:294","text":"@notice Set whether or not to have `call` revert."},"functionSelector":"781dd750","implemented":true,"kind":"function","modifiers":[],"name":"setDoRevert","nameLocation":"1795:11:294","parameters":{"id":173164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173163,"mutability":"mutable","name":"_doRevert","nameLocation":"1812:9:294","nodeType":"VariableDeclaration","scope":173171,"src":"1807:14:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173162,"name":"bool","nodeType":"ElementaryTypeName","src":"1807:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1806:16:294"},"returnParameters":{"id":173165,"nodeType":"ParameterList","parameters":[],"src":"1832:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173182,"nodeType":"FunctionDefinition","src":"1935:78:294","nodes":[],"body":{"id":173181,"nodeType":"Block","src":"1980:33:294","nodes":[],"statements":[{"expression":{"id":173179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173177,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173121,"src":"1990:6:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173178,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173174,"src":"1999:7:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1990:16:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173180,"nodeType":"ExpressionStatement","src":"1990:16:294"}]},"documentation":{"id":173172,"nodeType":"StructuredDocumentation","src":"1875:55:294","text":"@notice Set the target for the call made in `call`."},"functionSelector":"776d1a01","implemented":true,"kind":"function","modifiers":[],"name":"setTarget","nameLocation":"1944:9:294","parameters":{"id":173175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173174,"mutability":"mutable","name":"_target","nameLocation":"1962:7:294","nodeType":"VariableDeclaration","scope":173182,"src":"1954:15:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173173,"name":"address","nodeType":"ElementaryTypeName","src":"1954:7:294","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1953:17:294"},"returnParameters":{"id":173176,"nodeType":"ParameterList","parameters":[],"src":"1980:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173193,"nodeType":"FunctionDefinition","src":"2080:89:294","nodes":[],"body":{"id":173192,"nodeType":"Block","src":"2134:35:294","nodes":[],"statements":[{"expression":{"id":173190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173188,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173123,"src":"2144:7:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173189,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173185,"src":"2154:8:294","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"2144:18:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":173191,"nodeType":"ExpressionStatement","src":"2144:18:294"}]},"documentation":{"id":173183,"nodeType":"StructuredDocumentation","src":"2019:56:294","text":"@notice Set the payload for the call made in `call`."},"functionSelector":"deb3cdf2","implemented":true,"kind":"function","modifiers":[],"name":"setPayload","nameLocation":"2089:10:294","parameters":{"id":173186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173185,"mutability":"mutable","name":"_payload","nameLocation":"2115:8:294","nodeType":"VariableDeclaration","scope":173193,"src":"2100:23:294","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":173184,"name":"bytes","nodeType":"ElementaryTypeName","src":"2100:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2099:25:294"},"returnParameters":{"id":173187,"nodeType":"ParameterList","parameters":[],"src":"2134:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173205,"nodeType":"FunctionDefinition","src":"2288:111:294","nodes":[],"body":{"id":173204,"nodeType":"Block","src":"2308:91:294","nodes":[],"statements":[{"condition":{"id":173197,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173119,"src":"2322:8:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":173203,"nodeType":"IfStatement","src":"2318:75:294","trueBody":{"id":173202,"nodeType":"Block","src":"2332:61:294","statements":[{"expression":{"arguments":[{"hexValue":"436f6e666967757261626c6543616c6c65723a20726576657274","id":173199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2353:28:294","typeDescriptions":{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""},"value":"ConfigurableCaller: revert"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""}],"id":173198,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2346:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":173200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2346:36:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173201,"nodeType":"ExpressionStatement","src":"2346:36:294"}]}}]},"documentation":{"id":173194,"nodeType":"StructuredDocumentation","src":"2175:108:294","text":"@notice Fallback function that reverts if `doRevert` is true.\n Otherwise, it does nothing."},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173195,"nodeType":"ParameterList","parameters":[],"src":"2296:2:294"},"returnParameters":{"id":173196,"nodeType":"ParameterList","parameters":[],"src":"2308:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ConfigurableCaller","contractDependencies":[],"contractKind":"contract","documentation":{"id":173116,"nodeType":"StructuredDocumentation","src":"907:85:294","text":"@dev Used for testing the `CrossDomainMessenger`'s per-message reentrancy guard."},"fullyImplemented":true,"linearizedBaseContracts":[173206],"name":"ConfigurableCaller","nameLocation":"1001:18:294","scope":173224,"usedErrors":[]},{"id":173223,"nodeType":"ContractDefinition","src":"2433:153:294","nodes":[{"id":173215,"nodeType":"FunctionDefinition","src":"2457:76:294","nodes":[],"body":{"id":173214,"nodeType":"Block","src":"2489:44:294","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"5265766572746572207265766572746564","id":173211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2506:19:294","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3edf6a705c1ac2ccf4eb0ce9f05039f24b547c0f1460366bd5050c270cb80ba","typeString":"literal_string \"Reverter reverted\""},"value":"Reverter reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3edf6a705c1ac2ccf4eb0ce9f05039f24b547c0f1460366bd5050c270cb80ba","typeString":"literal_string \"Reverter reverted\""}],"id":173210,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2499:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":173212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2499:27:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173213,"nodeType":"ExpressionStatement","src":"2499:27:294"}]},"functionSelector":"afc874d2","implemented":true,"kind":"function","modifiers":[],"name":"doRevert","nameLocation":"2466:8:294","parameters":{"id":173208,"nodeType":"ParameterList","parameters":[],"src":"2474:2:294"},"returnParameters":{"id":173209,"nodeType":"ParameterList","parameters":[],"src":"2489:0:294"},"scope":173223,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":173222,"nodeType":"FunctionDefinition","src":"2539:45:294","nodes":[],"body":{"id":173221,"nodeType":"Block","src":"2559:25:294","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":173218,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2569:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":173219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2569:8:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173220,"nodeType":"ExpressionStatement","src":"2569:8:294"}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173216,"nodeType":"ParameterList","parameters":[],"src":"2547:2:294"},"returnParameters":{"id":173217,"nodeType":"ParameterList","parameters":[],"src":"2559:0:294"},"scope":173223,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Reverter","contractDependencies":[],"contractKind":"contract","documentation":{"id":173207,"nodeType":"StructuredDocumentation","src":"2403:30:294","text":"@dev Any call will revert"},"fullyImplemented":true,"linearizedBaseContracts":[173223],"name":"Reverter","nameLocation":"2442:8:294","scope":173224,"usedErrors":[]}],"license":"MIT"},"id":294}
{"abi":[{"type":"function","name":"lastCall","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"gas","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506103fe806100206000396000f3fe6080604052600436106100295760003560e01c8063266cf1091461002e578063da516aa914610038575b600080fd5b610036610066565b005b34801561004457600080fd5b5061004d6100aa565b60405161005d9493929190610164565b60405180910390f35b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317815560019061009f903690836102d6565b505a60025534600355565b600080546001805473ffffffffffffffffffffffffffffffffffffffff90921692916100d590610234565b80601f016020809104026020016040519081016040528092919081815260200182805461010190610234565b801561014e5780601f106101235761010080835404028352916020019161014e565b820191906000526020600020905b81548152906001019060200180831161013157829003601f168201915b5050505050908060020154908060030154905084565b73ffffffffffffffffffffffffffffffffffffffff8516815260006020608081840152855180608085015260005b818110156101ae5787810183015185820160a001528201610192565b818111156101c057600060a083870101525b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505083604083015282606083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c9082168061024857607f821691505b602082108103610281577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156102d157600081815260208120601f850160051c810160208610156102ae5750805b601f850160051c820191505b818110156102cd578281556001016102ba565b5050505b505050565b67ffffffffffffffff8311156102ee576102ee610205565b610302836102fc8354610234565b83610287565b6000601f841160018114610354576000851561031e5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556103ea565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156103a35786850135825560209485019460019092019101610383565b50868210156103de577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c634300080f000a","sourceMap":"57:360:310:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100295760003560e01c8063266cf1091461002e578063da516aa914610038575b600080fd5b610036610066565b005b34801561004457600080fd5b5061004d6100aa565b60405161005d9493929190610164565b60405180910390f35b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317815560019061009f903690836102d6565b505a60025534600355565b600080546001805473ffffffffffffffffffffffffffffffffffffffff90921692916100d590610234565b80601f016020809104026020016040519081016040528092919081815260200182805461010190610234565b801561014e5780601f106101235761010080835404028352916020019161014e565b820191906000526020600020905b81548152906001019060200180831161013157829003601f168201915b5050505050908060020154908060030154905084565b73ffffffffffffffffffffffffffffffffffffffff8516815260006020608081840152855180608085015260005b818110156101ae5787810183015185820160a001528201610192565b818111156101c057600060a083870101525b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505083604083015282606083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c9082168061024857607f821691505b602082108103610281577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156102d157600081815260208120601f850160051c810160208610156102ae5750805b601f850160051c820191505b818110156102cd578281556001016102ba565b5050505b505050565b67ffffffffffffffff8311156102ee576102ee610205565b610302836102fc8354610234565b83610287565b6000601f841160018114610354576000851561031e5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556103ea565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156103a35786850135825560209485019460019092019101610383565b50868210156103de577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c634300080f000a","sourceMap":"57:360:310:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;233:182;;;:::i;:::-;;202:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;233:182;276:8;:28;;;;294:10;276:28;;;;;314:24;;330:8;;276:28;314:24;:::i;:::-;;363:9;348:12;:24;399:9;382:14;:26;233:182::o;202:24::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:921:350:-;257:42;249:6;245:55;234:9;227:74;208:4;320:2;358:3;353:2;342:9;338:18;331:31;391:6;385:13;435:6;429:3;418:9;414:19;407:35;460:1;470:141;484:6;481:1;478:13;470:141;;;580:14;;;576:23;;570:30;545:17;;;564:3;541:27;534:67;499:10;;470:141;;;629:6;626:1;623:13;620:92;;;700:1;694:3;685:6;674:9;670:22;666:32;659:43;620:92;;839:3;769:66;764:2;756:6;752:15;748:88;737:9;733:104;729:114;721:122;;;;879:6;874:2;863:9;859:18;852:34;922:6;917:2;906:9;902:18;895:34;14:921;;;;;;;:::o;940:184::-;992:77;989:1;982:88;1089:4;1086:1;1079:15;1113:4;1110:1;1103:15;1129:437;1208:1;1204:12;;;;1251;;;1272:61;;1326:4;1318:6;1314:17;1304:27;;1272:61;1379:2;1371:6;1368:14;1348:18;1345:38;1342:218;;1416:77;1413:1;1406:88;1517:4;1514:1;1507:15;1545:4;1542:1;1535:15;1342:218;;1129:437;;;:::o;1696:544::-;1797:2;1792:3;1789:11;1786:448;;;1833:1;1858:5;1854:2;1847:17;1903:4;1899:2;1889:19;1973:2;1961:10;1957:19;1954:1;1950:27;1944:4;1940:38;2009:4;1997:10;1994:20;1991:47;;;-1:-1:-1;2032:4:350;1991:47;2087:2;2082:3;2078:12;2075:1;2071:20;2065:4;2061:31;2051:41;;2142:82;2160:2;2153:5;2150:13;2142:82;;;2205:17;;;2186:1;2175:13;2142:82;;;2146:3;;;1786:448;1696:544;;;:::o;2476:1321::-;2598:18;2593:3;2590:27;2587:53;;;2620:18;;:::i;:::-;2649:93;2738:3;2698:38;2730:4;2724:11;2698:38;:::i;:::-;2692:4;2649:93;:::i;:::-;2768:1;2793:2;2788:3;2785:11;2810:1;2805:734;;;;3583:1;3600:3;3597:93;;;-1:-1:-1;3656:19:350;;;3643:33;3597:93;2382:66;2373:1;2369:11;;;2365:84;2361:89;2351:100;2457:1;2453:11;;;2348:117;3703:78;;2778:1013;;2805:734;1643:1;1636:14;;;1680:4;1667:18;;2850:66;2841:76;;;3000:9;3022:229;3036:7;3033:1;3030:14;3022:229;;;3125:19;;;3112:33;3097:49;;3232:4;3217:20;;;;3185:1;3173:14;;;;3052:12;3022:229;;;3026:3;3279;3270:7;3267:16;3264:219;;;3399:66;3393:3;3387;3384:1;3380:11;3376:21;3372:94;3368:99;3355:9;3350:3;3346:19;3333:33;3329:139;3321:6;3314:155;3264:219;;;3526:1;3520:3;3517:1;3513:11;3509:19;3503:4;3496:33;2778:1013;;;2476:1321;;;:::o","linkReferences":{}},"methodIdentifiers":{"lastCall()":"da516aa9","record()":"266cf109"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"lastCall\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/Callers.sol\":\"CallRecorder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"test/mocks/Callers.sol\":{\"keccak256\":\"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b\",\"dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"lastCall","outputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"gas","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"record"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/Callers.sol":"CallRecorder"},"evmVersion":"london","libraries":{}},"sources":{"test/mocks/Callers.sol":{"keccak256":"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c","urls":["bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b","dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":191312,"contract":"test/mocks/Callers.sol:CallRecorder","label":"lastCall","offset":0,"slot":"0","type":"t_struct(CallInfo)191309_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_struct(CallInfo)191309_storage":{"encoding":"inplace","label":"struct CallRecorder.CallInfo","numberOfBytes":"128","members":[{"astId":191302,"contract":"test/mocks/Callers.sol:CallRecorder","label":"sender","offset":0,"slot":"0","type":"t_address"},{"astId":191304,"contract":"test/mocks/Callers.sol:CallRecorder","label":"data","offset":0,"slot":"1","type":"t_bytes_storage"},{"astId":191306,"contract":"test/mocks/Callers.sol:CallRecorder","label":"gas","offset":0,"slot":"2","type":"t_uint256"},{"astId":191308,"contract":"test/mocks/Callers.sol:CallRecorder","label":"value","offset":0,"slot":"3","type":"t_uint256"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":310}

@@ -1,1 +0,1 @@

{"abi":[{"type":"fallback","stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDoRevert","inputs":[{"name":"_doRevert","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPayload","inputs":[{"name":"_payload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTarget","inputs":[{"name":"_target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"WhatHappened","inputs":[{"name":"success","type":"bool","indexed":false,"internalType":"bool"},{"name":"returndata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040526000805460ff1916600117905534801561001d57600080fd5b506106958061002d6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806328b5e32b146100c0578063776d1a01146100c8578063781dd75014610122578063deb3cdf214610161575b60005460ff16156100be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f436f6e666967757261626c6543616c6c65723a2072657665727400000000000060448201526064015b60405180910390fd5b005b6100be610174565b6100be6100d63660046102bb565b6000805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b6100be6101303660046102f8565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6100be61016f36600461031a565b6102ae565b60005460ff16156101e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f436f6e666967757261626c6543616c6c65723a2072657665727400000000000060448201526064016100b5565b600080546040518291610100900473ffffffffffffffffffffffffffffffffffffffff1690610212906001906103df565b6000604051808303816000865af19150503d806000811461024f576040519150601f19603f3d011682016040523d82523d6000602084013e610254565b606091505b50915091507f2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414828260405161028a929190610473565b60405180910390a18180156102a157815160208301f35b815160208301fd5b505050565b60016102a982848361056d565b6000602082840312156102cd57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146102f157600080fd5b9392505050565b60006020828403121561030a57600080fd5b813580151581146102f157600080fd5b6000806020838503121561032d57600080fd5b823567ffffffffffffffff8082111561034557600080fd5b818501915085601f83011261035957600080fd5b81358181111561036857600080fd5b86602082850101111561037a57600080fd5b60209290920196919550909350505050565b600181811c908216806103a057607f821691505b6020821081036103d9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008083546103ed8161038c565b60018281168015610405576001811461043857610467565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450610467565b8760005260208060002060005b8581101561045e5781548a820152908401908201610445565b50505082870194505b50929695505050505050565b821515815260006020604081840152835180604085015260005b818110156104a95785810183015185820160600152820161048d565b818111156104bb576000606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201606001949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156102a957600081815260208120601f850160051c810160208610156105465750805b601f850160051c820191505b8181101561056557828155600101610552565b505050505050565b67ffffffffffffffff831115610585576105856104f0565b61059983610593835461038c565b8361051f565b6000601f8411600181146105eb57600085156105b55750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610681565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561063a578685013582556020948501946001909201910161061a565b5086821015610675577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c634300080f000a","sourceMap":"992:1409:294:-:0;;;1026:20;;;-1:-1:-1;;1026:20:294;1042:4;1026:20;;;992:1409;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806328b5e32b146100c0578063776d1a01146100c8578063781dd75014610122578063deb3cdf214610161575b60005460ff16156100be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f436f6e666967757261626c6543616c6c65723a2072657665727400000000000060448201526064015b60405180910390fd5b005b6100be610174565b6100be6100d63660046102bb565b6000805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b6100be6101303660046102f8565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6100be61016f36600461031a565b6102ae565b60005460ff16156101e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f436f6e666967757261626c6543616c6c65723a2072657665727400000000000060448201526064016100b5565b600080546040518291610100900473ffffffffffffffffffffffffffffffffffffffff1690610212906001906103df565b6000604051808303816000865af19150503d806000811461024f576040519150601f19603f3d011682016040523d82523d6000602084013e610254565b606091505b50915091507f2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414828260405161028a929190610473565b60405180910390a18180156102a157815160208301f35b815160208301fd5b505050565b60016102a982848361056d565b6000602082840312156102cd57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146102f157600080fd5b9392505050565b60006020828403121561030a57600080fd5b813580151581146102f157600080fd5b6000806020838503121561032d57600080fd5b823567ffffffffffffffff8082111561034557600080fd5b818501915085601f83011261035957600080fd5b81358181111561036857600080fd5b86602082850101111561037a57600080fd5b60209290920196919550909350505050565b600181811c908216806103a057607f821691505b6020821081036103d9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008083546103ed8161038c565b60018281168015610405576001811461043857610467565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450610467565b8760005260208060002060005b8581101561045e5781548a820152908401908201610445565b50505082870194505b50929695505050505050565b821515815260006020604081840152835180604085015260005b818110156104a95785810183015185820160600152820161048d565b818111156104bb576000606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201606001949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156102a957600081815260208120601f850160051c810160208610156105465750805b601f850160051c820191505b8181101561056557828155600101610552565b505050505050565b67ffffffffffffffff831115610585576105856104f0565b61059983610593835461038c565b8361051f565b6000601f8411600181146105eb57600085156105b55750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610681565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561063a578685013582556020948501946001909201910161061a565b5086821015610675577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c634300080f000a","sourceMap":"992:1409:294:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2322:8;;;;2318:75;;;2346:36;;;;;216:2:334;2346:36:294;;;198:21:334;255:2;235:18;;;228:30;294:28;274:18;;;267:56;340:18;;2346:36:294;;;;;;;;2318:75;992:1409;1231:491;;;:::i;1935:78::-;;;;;;:::i;:::-;1990:6;:16;;;;;;;;;;;;;;;;;;1935:78;1786:83;;;;;;:::i;:::-;1842:8;:20;;;;;;;;;;;;;1786:83;2080:89;;;;;;:::i;:::-;;:::i;1231:491::-;1270:8;;;;1266:450;;;1294:36;;;;;216:2:334;1294:36:294;;;198:21:334;255:2;235:18;;;228:30;294:28;274:18;;;267:56;340:18;;1294:36:294;14:350:334;1266:450:294;1362:12;1411:6;;1403:29;;1362:12;;1411:6;;;;;;1403:29;;1411:6;;1403:29;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1361:71;;;;1451:33;1464:7;1473:10;1451:33;;;;;;;:::i;:::-;;;;;;;;1532:7;1556:59;;;;1678:10;1672:17;1665:4;1653:10;1649:21;1642:48;1556:59;1601:10;1595:17;1588:4;1576:10;1572:21;1565:48;1525:167;;1507:199;;1231:491::o;2080:89::-;2144:7;:18;2154:8;;2144:7;:18;:::i;369:309:334:-;428:6;481:2;469:9;460:7;456:23;452:32;449:52;;;497:1;494;487:12;449:52;536:9;523:23;586:42;579:5;575:54;568:5;565:65;555:93;;644:1;641;634:12;555:93;667:5;369:309;-1:-1:-1;;;369:309:334:o;683:273::-;739:6;792:2;780:9;771:7;767:23;763:32;760:52;;;808:1;805;798:12;760:52;847:9;834:23;900:5;893:13;886:21;879:5;876:32;866:60;;922:1;919;912:12;961:591;1031:6;1039;1092:2;1080:9;1071:7;1067:23;1063:32;1060:52;;;1108:1;1105;1098:12;1060:52;1148:9;1135:23;1177:18;1218:2;1210:6;1207:14;1204:34;;;1234:1;1231;1224:12;1204:34;1272:6;1261:9;1257:22;1247:32;;1317:7;1310:4;1306:2;1302:13;1298:27;1288:55;;1339:1;1336;1329:12;1288:55;1379:2;1366:16;1405:2;1397:6;1394:14;1391:34;;;1421:1;1418;1411:12;1391:34;1466:7;1461:2;1452:6;1448:2;1444:15;1440:24;1437:37;1434:57;;;1487:1;1484;1477:12;1434:57;1518:2;1510:11;;;;;1540:6;;-1:-1:-1;961:591:334;;-1:-1:-1;;;;961:591:334:o;1557:437::-;1636:1;1632:12;;;;1679;;;1700:61;;1754:4;1746:6;1742:17;1732:27;;1700:61;1807:2;1799:6;1796:14;1776:18;1773:38;1770:218;;1844:77;1841:1;1834:88;1945:4;1942:1;1935:15;1973:4;1970:1;1963:15;1770:218;;1557:437;;;:::o;2124:898::-;2250:3;2279:1;2312:6;2306:13;2342:36;2368:9;2342:36;:::i;:::-;2397:1;2414:18;;;2441:191;;;;2646:1;2641:356;;;;2407:590;;2441:191;2489:66;2478:9;2474:82;2469:3;2462:95;2612:6;2605:14;2598:22;2590:6;2586:35;2581:3;2577:45;2570:52;;2441:191;;2641:356;2672:6;2669:1;2662:17;2702:4;2747:2;2744:1;2734:16;2772:1;2786:165;2800:6;2797:1;2794:13;2786:165;;;2878:14;;2865:11;;;2858:35;2921:16;;;;2815:10;;2786:165;;;2790:3;;;2980:6;2975:3;2971:16;2964:23;;2407:590;-1:-1:-1;3013:3:334;;2124:898;-1:-1:-1;;;;;;2124:898:334:o;3027:735::-;3210:6;3203:14;3196:22;3185:9;3178:41;3159:4;3238:2;3276;3271;3260:9;3256:18;3249:30;3308:6;3302:13;3351:6;3346:2;3335:9;3331:18;3324:34;3376:1;3386:140;3400:6;3397:1;3394:13;3386:140;;;3495:14;;;3491:23;;3485:30;3461:17;;;3480:2;3457:26;3450:66;3415:10;;3386:140;;;3544:6;3541:1;3538:13;3535:91;;;3614:1;3609:2;3600:6;3589:9;3585:22;3581:31;3574:42;3535:91;-1:-1:-1;3678:2:334;3666:15;3683:66;3662:88;3647:104;;;;3753:2;3643:113;;3027:735;-1:-1:-1;;;;3027:735:334:o;3767:184::-;3819:77;3816:1;3809:88;3916:4;3913:1;3906:15;3940:4;3937:1;3930:15;3956:544;4057:2;4052:3;4049:11;4046:448;;;4093:1;4118:5;4114:2;4107:17;4163:4;4159:2;4149:19;4233:2;4221:10;4217:19;4214:1;4210:27;4204:4;4200:38;4269:4;4257:10;4254:20;4251:47;;;-1:-1:-1;4292:4:334;4251:47;4347:2;4342:3;4338:12;4335:1;4331:20;4325:4;4321:31;4311:41;;4402:82;4420:2;4413:5;4410:13;4402:82;;;4465:17;;;4446:1;4435:13;4402:82;;;4406:3;;;3956:544;;;:::o;4736:1321::-;4858:18;4853:3;4850:27;4847:53;;;4880:18;;:::i;:::-;4909:93;4998:3;4958:38;4990:4;4984:11;4958:38;:::i;:::-;4952:4;4909:93;:::i;:::-;5028:1;5053:2;5048:3;5045:11;5070:1;5065:734;;;;5843:1;5860:3;5857:93;;;-1:-1:-1;5916:19:334;;;5903:33;5857:93;4642:66;4633:1;4629:11;;;4625:84;4621:89;4611:100;4717:1;4713:11;;;4608:117;5963:78;;5038:1013;;5065:734;2071:1;2064:14;;;2108:4;2095:18;;5110:66;5101:76;;;5260:9;5282:229;5296:7;5293:1;5290:14;5282:229;;;5385:19;;;5372:33;5357:49;;5492:4;5477:20;;;;5445:1;5433:14;;;;5312:12;5282:229;;;5286:3;5539;5530:7;5527:16;5524:219;;;5659:66;5653:3;5647;5644:1;5640:11;5636:21;5632:94;5628:99;5615:9;5610:3;5606:19;5593:33;5589:139;5581:6;5574:155;5524:219;;;5786:1;5780:3;5777:1;5773:11;5769:19;5763:4;5756:33;5038:1013;;;4736:1321;;;:::o","linkReferences":{}},"methodIdentifiers":{"call()":"28b5e32b","setDoRevert(bool)":"781dd750","setPayload(bytes)":"deb3cdf2","setTarget(address)":"776d1a01"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returndata\",\"type\":\"bytes\"}],\"name\":\"WhatHappened\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_doRevert\",\"type\":\"bool\"}],\"name\":\"setDoRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"setPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"}],\"name\":\"setTarget\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Used for testing the `CrossDomainMessenger`'s per-message reentrancy guard.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"call()\":{\"notice\":\"Call the configured target with the configured payload OR revert.\"},\"setDoRevert(bool)\":{\"notice\":\"Set whether or not to have `call` revert.\"},\"setPayload(bytes)\":{\"notice\":\"Set the payload for the call made in `call`.\"},\"setTarget(address)\":{\"notice\":\"Set the target for the call made in `call`.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/Callers.sol\":\"ConfigurableCaller\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"test/mocks/Callers.sol\":{\"keccak256\":\"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b\",\"dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bool","name":"success","type":"bool","indexed":false},{"internalType":"bytes","name":"returndata","type":"bytes","indexed":false}],"type":"event","name":"WhatHappened","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"call"},{"inputs":[{"internalType":"bool","name":"_doRevert","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDoRevert"},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setPayload"},{"inputs":[{"internalType":"address","name":"_target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTarget"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"call()":{"notice":"Call the configured target with the configured payload OR revert."},"setDoRevert(bool)":{"notice":"Set whether or not to have `call` revert."},"setPayload(bytes)":{"notice":"Set the payload for the call made in `call`."},"setTarget(address)":{"notice":"Set the target for the call made in `call`."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/Callers.sol":"ConfigurableCaller"},"evmVersion":"london","libraries":{}},"sources":{"test/mocks/Callers.sol":{"keccak256":"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c","urls":["bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b","dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":173119,"contract":"test/mocks/Callers.sol:ConfigurableCaller","label":"doRevert","offset":0,"slot":"0","type":"t_bool"},{"astId":173121,"contract":"test/mocks/Callers.sol:ConfigurableCaller","label":"target","offset":1,"slot":"0","type":"t_address"},{"astId":173123,"contract":"test/mocks/Callers.sol:ConfigurableCaller","label":"payload","offset":0,"slot":"1","type":"t_bytes_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"call()":{"notice":"Call the configured target with the configured payload OR revert."},"setDoRevert(bool)":{"notice":"Set whether or not to have `call` revert."},"setPayload(bytes)":{"notice":"Set the payload for the call made in `call`."},"setTarget(address)":{"notice":"Set the target for the call made in `call`."}}},"devdoc":{"version":1,"kind":"dev","details":"Used for testing the `CrossDomainMessenger`'s per-message reentrancy guard."},"ast":{"absolutePath":"test/mocks/Callers.sol","id":173224,"exportedSymbols":{"CallRecorder":[173086],"CallerCaller":[173115],"ConfigurableCaller":[173206],"Reverter":[173223]},"nodeType":"SourceUnit","src":"32:2555:294","nodes":[{"id":173041,"nodeType":"PragmaDirective","src":"32:23:294","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":173086,"nodeType":"ContractDefinition","src":"57:360:294","nodes":[{"id":173050,"nodeType":"StructDefinition","src":"85:111:294","nodes":[],"canonicalName":"CallRecorder.CallInfo","members":[{"constant":false,"id":173043,"mutability":"mutable","name":"sender","nameLocation":"119:6:294","nodeType":"VariableDeclaration","scope":173050,"src":"111:14:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173042,"name":"address","nodeType":"ElementaryTypeName","src":"111:7:294","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":173045,"mutability":"mutable","name":"data","nameLocation":"141:4:294","nodeType":"VariableDeclaration","scope":173050,"src":"135:10:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":173044,"name":"bytes","nodeType":"ElementaryTypeName","src":"135:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":173047,"mutability":"mutable","name":"gas","nameLocation":"163:3:294","nodeType":"VariableDeclaration","scope":173050,"src":"155:11:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173046,"name":"uint256","nodeType":"ElementaryTypeName","src":"155:7:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":173049,"mutability":"mutable","name":"value","nameLocation":"184:5:294","nodeType":"VariableDeclaration","scope":173050,"src":"176:13:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173048,"name":"uint256","nodeType":"ElementaryTypeName","src":"176:7:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CallInfo","nameLocation":"92:8:294","scope":173086,"visibility":"public"},{"id":173053,"nodeType":"VariableDeclaration","src":"202:24:294","nodes":[],"constant":false,"functionSelector":"da516aa9","mutability":"mutable","name":"lastCall","nameLocation":"218:8:294","scope":173086,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo"},"typeName":{"id":173052,"nodeType":"UserDefinedTypeName","pathNode":{"id":173051,"name":"CallInfo","nodeType":"IdentifierPath","referencedDeclaration":173050,"src":"202:8:294"},"referencedDeclaration":173050,"src":"202:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage_ptr","typeString":"struct CallRecorder.CallInfo"}},"visibility":"public"},{"id":173085,"nodeType":"FunctionDefinition","src":"233:182:294","nodes":[],"body":{"id":173084,"nodeType":"Block","src":"266:149:294","nodes":[],"statements":[{"expression":{"id":173061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173056,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"276:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":173043,"src":"276:15:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":173059,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"294:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"294:10:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"276:28:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173062,"nodeType":"ExpressionStatement","src":"276:28:294"},{"expression":{"id":173068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173063,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"314:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":173045,"src":"314:13:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":173066,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"330:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"330:8:294","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"314:24:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":173069,"nodeType":"ExpressionStatement","src":"314:24:294"},{"expression":{"id":173075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173070,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"348:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":173047,"src":"348:12:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":173073,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"363:7:294","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":173074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"363:9:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"348:24:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":173076,"nodeType":"ExpressionStatement","src":"348:24:294"},{"expression":{"id":173082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173077,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"382:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":173049,"src":"382:14:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":173080,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"399:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"399:9:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"382:26:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":173083,"nodeType":"ExpressionStatement","src":"382:26:294"}]},"functionSelector":"266cf109","implemented":true,"kind":"function","modifiers":[],"name":"record","nameLocation":"242:6:294","parameters":{"id":173054,"nodeType":"ParameterList","parameters":[],"src":"248:2:294"},"returnParameters":{"id":173055,"nodeType":"ParameterList","parameters":[],"src":"266:0:294"},"scope":173086,"stateMutability":"payable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CallRecorder","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[173086],"name":"CallRecorder","nameLocation":"66:12:294","scope":173224,"usedErrors":[]},{"id":173115,"nodeType":"ContractDefinition","src":"465:440:294","nodes":[{"id":173093,"nodeType":"EventDefinition","src":"493:51:294","nodes":[],"anonymous":false,"eventSelector":"2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414","name":"WhatHappened","nameLocation":"499:12:294","parameters":{"id":173092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173089,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"517:7:294","nodeType":"VariableDeclaration","scope":173093,"src":"512:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173088,"name":"bool","nodeType":"ElementaryTypeName","src":"512:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173091,"indexed":false,"mutability":"mutable","name":"returndata","nameLocation":"532:10:294","nodeType":"VariableDeclaration","scope":173093,"src":"526:16:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173090,"name":"bytes","nodeType":"ElementaryTypeName","src":"526:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"511:32:294"}},{"id":173114,"nodeType":"FunctionDefinition","src":"550:353:294","nodes":[],"body":{"id":173113,"nodeType":"Block","src":"570:333:294","nodes":[],"statements":[{"assignments":[173097,173099],"declarations":[{"constant":false,"id":173097,"mutability":"mutable","name":"success","nameLocation":"586:7:294","nodeType":"VariableDeclaration","scope":173113,"src":"581:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173096,"name":"bool","nodeType":"ElementaryTypeName","src":"581:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173099,"mutability":"mutable","name":"returndata","nameLocation":"608:10:294","nodeType":"VariableDeclaration","scope":173113,"src":"595:23:294","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173098,"name":"bytes","nodeType":"ElementaryTypeName","src":"595:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":173106,"initialValue":{"arguments":[{"expression":{"id":173103,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"638:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"638:8:294","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":173100,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"622:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"622:10:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"622:15:294","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":173105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"622:25:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"580:67:294"},{"eventCall":{"arguments":[{"id":173108,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173097,"src":"675:7:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":173109,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173099,"src":"684:10:294","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173107,"name":"WhatHappened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173093,"src":"662:12:294","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,bytes memory)"}},"id":173110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"662:33:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173111,"nodeType":"EmitStatement","src":"657:38:294"},{"AST":{"nodeType":"YulBlock","src":"714:183:294","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"762:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"775:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"787:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"771:3:294"},"nodeType":"YulFunctionCall","src":"771:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"800:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"794:5:294"},"nodeType":"YulFunctionCall","src":"794:17:294"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"764:6:294"},"nodeType":"YulFunctionCall","src":"764:48:294"},"nodeType":"YulExpressionStatement","src":"764:48:294"}]},"nodeType":"YulCase","src":"755:59:294","value":{"kind":"number","nodeType":"YulLiteral","src":"760:1:294","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"835:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"848:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"860:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"844:3:294"},"nodeType":"YulFunctionCall","src":"844:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"873:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"867:5:294"},"nodeType":"YulFunctionCall","src":"867:17:294"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"837:6:294"},"nodeType":"YulFunctionCall","src":"837:48:294"},"nodeType":"YulExpressionStatement","src":"837:48:294"}]},"nodeType":"YulCase","src":"827:60:294","value":"default"}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"735:7:294"},"nodeType":"YulSwitch","src":"728:159:294"}]},"evmVersion":"london","externalReferences":[{"declaration":173099,"isOffset":false,"isSlot":false,"src":"775:10:294","valueSize":1},{"declaration":173099,"isOffset":false,"isSlot":false,"src":"800:10:294","valueSize":1},{"declaration":173099,"isOffset":false,"isSlot":false,"src":"848:10:294","valueSize":1},{"declaration":173099,"isOffset":false,"isSlot":false,"src":"873:10:294","valueSize":1},{"declaration":173097,"isOffset":false,"isSlot":false,"src":"735:7:294","valueSize":1}],"id":173112,"nodeType":"InlineAssembly","src":"705:192:294"}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173094,"nodeType":"ParameterList","parameters":[],"src":"558:2:294"},"returnParameters":{"id":173095,"nodeType":"ParameterList","parameters":[],"src":"570:0:294"},"scope":173115,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"CallerCaller","contractDependencies":[],"contractKind":"contract","documentation":{"id":173087,"nodeType":"StructuredDocumentation","src":"419:46:294","text":"@dev Useful for testing reentrancy guards"},"fullyImplemented":true,"linearizedBaseContracts":[173115],"name":"CallerCaller","nameLocation":"474:12:294","scope":173224,"usedErrors":[]},{"id":173206,"nodeType":"ContractDefinition","src":"992:1409:294","nodes":[{"id":173119,"nodeType":"VariableDeclaration","src":"1026:20:294","nodes":[],"constant":false,"mutability":"mutable","name":"doRevert","nameLocation":"1031:8:294","scope":173206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173117,"name":"bool","nodeType":"ElementaryTypeName","src":"1026:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":173118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1042:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"internal"},{"id":173121,"nodeType":"VariableDeclaration","src":"1052:14:294","nodes":[],"constant":false,"mutability":"mutable","name":"target","nameLocation":"1060:6:294","scope":173206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173120,"name":"address","nodeType":"ElementaryTypeName","src":"1052:7:294","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":173123,"nodeType":"VariableDeclaration","src":"1072:13:294","nodes":[],"constant":false,"mutability":"mutable","name":"payload","nameLocation":"1078:7:294","scope":173206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":173122,"name":"bytes","nodeType":"ElementaryTypeName","src":"1072:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"id":173129,"nodeType":"EventDefinition","src":"1092:51:294","nodes":[],"anonymous":false,"eventSelector":"2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414","name":"WhatHappened","nameLocation":"1098:12:294","parameters":{"id":173128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173125,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"1116:7:294","nodeType":"VariableDeclaration","scope":173129,"src":"1111:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173124,"name":"bool","nodeType":"ElementaryTypeName","src":"1111:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173127,"indexed":false,"mutability":"mutable","name":"returndata","nameLocation":"1131:10:294","nodeType":"VariableDeclaration","scope":173129,"src":"1125:16:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173126,"name":"bytes","nodeType":"ElementaryTypeName","src":"1125:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1110:32:294"}},{"id":173160,"nodeType":"FunctionDefinition","src":"1231:491:294","nodes":[],"body":{"id":173159,"nodeType":"Block","src":"1256:466:294","nodes":[],"statements":[{"condition":{"id":173133,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173119,"src":"1270:8:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":173157,"nodeType":"Block","src":"1347:369:294","statements":[{"assignments":[173140,173142],"declarations":[{"constant":false,"id":173140,"mutability":"mutable","name":"success","nameLocation":"1367:7:294","nodeType":"VariableDeclaration","scope":173157,"src":"1362:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173139,"name":"bool","nodeType":"ElementaryTypeName","src":"1362:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173142,"mutability":"mutable","name":"returndata","nameLocation":"1389:10:294","nodeType":"VariableDeclaration","scope":173157,"src":"1376:23:294","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173141,"name":"bytes","nodeType":"ElementaryTypeName","src":"1376:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":173150,"initialValue":{"arguments":[{"id":173148,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173123,"src":"1424:7:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"expression":{"arguments":[{"id":173145,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173121,"src":"1411:6:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":173144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1403:7:294","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":173143,"name":"address","nodeType":"ElementaryTypeName","src":"1403:7:294","typeDescriptions":{}}},"id":173146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:15:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1403:20:294","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":173149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:29:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1361:71:294"},{"eventCall":{"arguments":[{"id":173152,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173140,"src":"1464:7:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":173153,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173142,"src":"1473:10:294","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173151,"name":"WhatHappened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173129,"src":"1451:12:294","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,bytes memory)"}},"id":173154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1451:33:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173155,"nodeType":"EmitStatement","src":"1446:38:294"},{"AST":{"nodeType":"YulBlock","src":"1507:199:294","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"1563:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1576:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"1588:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1572:3:294"},"nodeType":"YulFunctionCall","src":"1572:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1601:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1595:5:294"},"nodeType":"YulFunctionCall","src":"1595:17:294"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1565:6:294"},"nodeType":"YulFunctionCall","src":"1565:48:294"},"nodeType":"YulExpressionStatement","src":"1565:48:294"}]},"nodeType":"YulCase","src":"1556:59:294","value":{"kind":"number","nodeType":"YulLiteral","src":"1561:1:294","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"1640:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1653:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"1665:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1649:3:294"},"nodeType":"YulFunctionCall","src":"1649:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1678:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1672:5:294"},"nodeType":"YulFunctionCall","src":"1672:17:294"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1642:6:294"},"nodeType":"YulFunctionCall","src":"1642:48:294"},"nodeType":"YulExpressionStatement","src":"1642:48:294"}]},"nodeType":"YulCase","src":"1632:60:294","value":"default"}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"1532:7:294"},"nodeType":"YulSwitch","src":"1525:167:294"}]},"evmVersion":"london","externalReferences":[{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1576:10:294","valueSize":1},{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1601:10:294","valueSize":1},{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1653:10:294","valueSize":1},{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1678:10:294","valueSize":1},{"declaration":173140,"isOffset":false,"isSlot":false,"src":"1532:7:294","valueSize":1}],"id":173156,"nodeType":"InlineAssembly","src":"1498:208:294"}]},"id":173158,"nodeType":"IfStatement","src":"1266:450:294","trueBody":{"id":173138,"nodeType":"Block","src":"1280:61:294","statements":[{"expression":{"arguments":[{"hexValue":"436f6e666967757261626c6543616c6c65723a20726576657274","id":173135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1301:28:294","typeDescriptions":{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""},"value":"ConfigurableCaller: revert"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""}],"id":173134,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1294:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":173136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1294:36:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173137,"nodeType":"ExpressionStatement","src":"1294:36:294"}]}}]},"documentation":{"id":173130,"nodeType":"StructuredDocumentation","src":"1149:77:294","text":"@notice Call the configured target with the configured payload OR revert."},"functionSelector":"28b5e32b","implemented":true,"kind":"function","modifiers":[],"name":"call","nameLocation":"1240:4:294","parameters":{"id":173131,"nodeType":"ParameterList","parameters":[],"src":"1244:2:294"},"returnParameters":{"id":173132,"nodeType":"ParameterList","parameters":[],"src":"1256:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173171,"nodeType":"FunctionDefinition","src":"1786:83:294","nodes":[],"body":{"id":173170,"nodeType":"Block","src":"1832:37:294","nodes":[],"statements":[{"expression":{"id":173168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173166,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173119,"src":"1842:8:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173167,"name":"_doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173163,"src":"1853:9:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1842:20:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":173169,"nodeType":"ExpressionStatement","src":"1842:20:294"}]},"documentation":{"id":173161,"nodeType":"StructuredDocumentation","src":"1728:53:294","text":"@notice Set whether or not to have `call` revert."},"functionSelector":"781dd750","implemented":true,"kind":"function","modifiers":[],"name":"setDoRevert","nameLocation":"1795:11:294","parameters":{"id":173164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173163,"mutability":"mutable","name":"_doRevert","nameLocation":"1812:9:294","nodeType":"VariableDeclaration","scope":173171,"src":"1807:14:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173162,"name":"bool","nodeType":"ElementaryTypeName","src":"1807:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1806:16:294"},"returnParameters":{"id":173165,"nodeType":"ParameterList","parameters":[],"src":"1832:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173182,"nodeType":"FunctionDefinition","src":"1935:78:294","nodes":[],"body":{"id":173181,"nodeType":"Block","src":"1980:33:294","nodes":[],"statements":[{"expression":{"id":173179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173177,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173121,"src":"1990:6:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173178,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173174,"src":"1999:7:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1990:16:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173180,"nodeType":"ExpressionStatement","src":"1990:16:294"}]},"documentation":{"id":173172,"nodeType":"StructuredDocumentation","src":"1875:55:294","text":"@notice Set the target for the call made in `call`."},"functionSelector":"776d1a01","implemented":true,"kind":"function","modifiers":[],"name":"setTarget","nameLocation":"1944:9:294","parameters":{"id":173175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173174,"mutability":"mutable","name":"_target","nameLocation":"1962:7:294","nodeType":"VariableDeclaration","scope":173182,"src":"1954:15:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173173,"name":"address","nodeType":"ElementaryTypeName","src":"1954:7:294","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1953:17:294"},"returnParameters":{"id":173176,"nodeType":"ParameterList","parameters":[],"src":"1980:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173193,"nodeType":"FunctionDefinition","src":"2080:89:294","nodes":[],"body":{"id":173192,"nodeType":"Block","src":"2134:35:294","nodes":[],"statements":[{"expression":{"id":173190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173188,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173123,"src":"2144:7:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173189,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173185,"src":"2154:8:294","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"2144:18:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":173191,"nodeType":"ExpressionStatement","src":"2144:18:294"}]},"documentation":{"id":173183,"nodeType":"StructuredDocumentation","src":"2019:56:294","text":"@notice Set the payload for the call made in `call`."},"functionSelector":"deb3cdf2","implemented":true,"kind":"function","modifiers":[],"name":"setPayload","nameLocation":"2089:10:294","parameters":{"id":173186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173185,"mutability":"mutable","name":"_payload","nameLocation":"2115:8:294","nodeType":"VariableDeclaration","scope":173193,"src":"2100:23:294","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":173184,"name":"bytes","nodeType":"ElementaryTypeName","src":"2100:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2099:25:294"},"returnParameters":{"id":173187,"nodeType":"ParameterList","parameters":[],"src":"2134:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173205,"nodeType":"FunctionDefinition","src":"2288:111:294","nodes":[],"body":{"id":173204,"nodeType":"Block","src":"2308:91:294","nodes":[],"statements":[{"condition":{"id":173197,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173119,"src":"2322:8:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":173203,"nodeType":"IfStatement","src":"2318:75:294","trueBody":{"id":173202,"nodeType":"Block","src":"2332:61:294","statements":[{"expression":{"arguments":[{"hexValue":"436f6e666967757261626c6543616c6c65723a20726576657274","id":173199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2353:28:294","typeDescriptions":{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""},"value":"ConfigurableCaller: revert"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""}],"id":173198,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2346:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":173200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2346:36:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173201,"nodeType":"ExpressionStatement","src":"2346:36:294"}]}}]},"documentation":{"id":173194,"nodeType":"StructuredDocumentation","src":"2175:108:294","text":"@notice Fallback function that reverts if `doRevert` is true.\n Otherwise, it does nothing."},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173195,"nodeType":"ParameterList","parameters":[],"src":"2296:2:294"},"returnParameters":{"id":173196,"nodeType":"ParameterList","parameters":[],"src":"2308:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ConfigurableCaller","contractDependencies":[],"contractKind":"contract","documentation":{"id":173116,"nodeType":"StructuredDocumentation","src":"907:85:294","text":"@dev Used for testing the `CrossDomainMessenger`'s per-message reentrancy guard."},"fullyImplemented":true,"linearizedBaseContracts":[173206],"name":"ConfigurableCaller","nameLocation":"1001:18:294","scope":173224,"usedErrors":[]},{"id":173223,"nodeType":"ContractDefinition","src":"2433:153:294","nodes":[{"id":173215,"nodeType":"FunctionDefinition","src":"2457:76:294","nodes":[],"body":{"id":173214,"nodeType":"Block","src":"2489:44:294","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"5265766572746572207265766572746564","id":173211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2506:19:294","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3edf6a705c1ac2ccf4eb0ce9f05039f24b547c0f1460366bd5050c270cb80ba","typeString":"literal_string \"Reverter reverted\""},"value":"Reverter reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3edf6a705c1ac2ccf4eb0ce9f05039f24b547c0f1460366bd5050c270cb80ba","typeString":"literal_string \"Reverter reverted\""}],"id":173210,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2499:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":173212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2499:27:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173213,"nodeType":"ExpressionStatement","src":"2499:27:294"}]},"functionSelector":"afc874d2","implemented":true,"kind":"function","modifiers":[],"name":"doRevert","nameLocation":"2466:8:294","parameters":{"id":173208,"nodeType":"ParameterList","parameters":[],"src":"2474:2:294"},"returnParameters":{"id":173209,"nodeType":"ParameterList","parameters":[],"src":"2489:0:294"},"scope":173223,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":173222,"nodeType":"FunctionDefinition","src":"2539:45:294","nodes":[],"body":{"id":173221,"nodeType":"Block","src":"2559:25:294","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":173218,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2569:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":173219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2569:8:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173220,"nodeType":"ExpressionStatement","src":"2569:8:294"}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173216,"nodeType":"ParameterList","parameters":[],"src":"2547:2:294"},"returnParameters":{"id":173217,"nodeType":"ParameterList","parameters":[],"src":"2559:0:294"},"scope":173223,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Reverter","contractDependencies":[],"contractKind":"contract","documentation":{"id":173207,"nodeType":"StructuredDocumentation","src":"2403:30:294","text":"@dev Any call will revert"},"fullyImplemented":true,"linearizedBaseContracts":[173223],"name":"Reverter","nameLocation":"2442:8:294","scope":173224,"usedErrors":[]}],"license":"MIT"},"id":294}
{"abi":[{"type":"fallback","stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDoRevert","inputs":[{"name":"_doRevert","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPayload","inputs":[{"name":"_payload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTarget","inputs":[{"name":"_target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"WhatHappened","inputs":[{"name":"success","type":"bool","indexed":false,"internalType":"bool"},{"name":"returndata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040526000805460ff1916600117905534801561001d57600080fd5b506106958061002d6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806328b5e32b146100c0578063776d1a01146100c8578063781dd75014610122578063deb3cdf214610161575b60005460ff16156100be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f436f6e666967757261626c6543616c6c65723a2072657665727400000000000060448201526064015b60405180910390fd5b005b6100be610174565b6100be6100d63660046102bb565b6000805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b6100be6101303660046102f8565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6100be61016f36600461031a565b6102ae565b60005460ff16156101e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f436f6e666967757261626c6543616c6c65723a2072657665727400000000000060448201526064016100b5565b600080546040518291610100900473ffffffffffffffffffffffffffffffffffffffff1690610212906001906103df565b6000604051808303816000865af19150503d806000811461024f576040519150601f19603f3d011682016040523d82523d6000602084013e610254565b606091505b50915091507f2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414828260405161028a929190610473565b60405180910390a18180156102a157815160208301f35b815160208301fd5b505050565b60016102a982848361056d565b6000602082840312156102cd57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146102f157600080fd5b9392505050565b60006020828403121561030a57600080fd5b813580151581146102f157600080fd5b6000806020838503121561032d57600080fd5b823567ffffffffffffffff8082111561034557600080fd5b818501915085601f83011261035957600080fd5b81358181111561036857600080fd5b86602082850101111561037a57600080fd5b60209290920196919550909350505050565b600181811c908216806103a057607f821691505b6020821081036103d9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008083546103ed8161038c565b60018281168015610405576001811461043857610467565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450610467565b8760005260208060002060005b8581101561045e5781548a820152908401908201610445565b50505082870194505b50929695505050505050565b821515815260006020604081840152835180604085015260005b818110156104a95785810183015185820160600152820161048d565b818111156104bb576000606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201606001949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156102a957600081815260208120601f850160051c810160208610156105465750805b601f850160051c820191505b8181101561056557828155600101610552565b505050505050565b67ffffffffffffffff831115610585576105856104f0565b61059983610593835461038c565b8361051f565b6000601f8411600181146105eb57600085156105b55750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610681565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561063a578685013582556020948501946001909201910161061a565b5086821015610675577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c634300080f000a","sourceMap":"992:1409:310:-:0;;;1026:20;;;-1:-1:-1;;1026:20:310;1042:4;1026:20;;;992:1409;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806328b5e32b146100c0578063776d1a01146100c8578063781dd75014610122578063deb3cdf214610161575b60005460ff16156100be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f436f6e666967757261626c6543616c6c65723a2072657665727400000000000060448201526064015b60405180910390fd5b005b6100be610174565b6100be6100d63660046102bb565b6000805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b6100be6101303660046102f8565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6100be61016f36600461031a565b6102ae565b60005460ff16156101e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f436f6e666967757261626c6543616c6c65723a2072657665727400000000000060448201526064016100b5565b600080546040518291610100900473ffffffffffffffffffffffffffffffffffffffff1690610212906001906103df565b6000604051808303816000865af19150503d806000811461024f576040519150601f19603f3d011682016040523d82523d6000602084013e610254565b606091505b50915091507f2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414828260405161028a929190610473565b60405180910390a18180156102a157815160208301f35b815160208301fd5b505050565b60016102a982848361056d565b6000602082840312156102cd57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146102f157600080fd5b9392505050565b60006020828403121561030a57600080fd5b813580151581146102f157600080fd5b6000806020838503121561032d57600080fd5b823567ffffffffffffffff8082111561034557600080fd5b818501915085601f83011261035957600080fd5b81358181111561036857600080fd5b86602082850101111561037a57600080fd5b60209290920196919550909350505050565b600181811c908216806103a057607f821691505b6020821081036103d9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008083546103ed8161038c565b60018281168015610405576001811461043857610467565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450610467565b8760005260208060002060005b8581101561045e5781548a820152908401908201610445565b50505082870194505b50929695505050505050565b821515815260006020604081840152835180604085015260005b818110156104a95785810183015185820160600152820161048d565b818111156104bb576000606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201606001949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156102a957600081815260208120601f850160051c810160208610156105465750805b601f850160051c820191505b8181101561056557828155600101610552565b505050505050565b67ffffffffffffffff831115610585576105856104f0565b61059983610593835461038c565b8361051f565b6000601f8411600181146105eb57600085156105b55750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610681565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561063a578685013582556020948501946001909201910161061a565b5086821015610675577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea164736f6c634300080f000a","sourceMap":"992:1409:310:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2322:8;;;;2318:75;;;2346:36;;;;;216:2:350;2346:36:310;;;198:21:350;255:2;235:18;;;228:30;294:28;274:18;;;267:56;340:18;;2346:36:310;;;;;;;;2318:75;992:1409;1231:491;;;:::i;1935:78::-;;;;;;:::i;:::-;1990:6;:16;;;;;;;;;;;;;;;;;;1935:78;1786:83;;;;;;:::i;:::-;1842:8;:20;;;;;;;;;;;;;1786:83;2080:89;;;;;;:::i;:::-;;:::i;1231:491::-;1270:8;;;;1266:450;;;1294:36;;;;;216:2:350;1294:36:310;;;198:21:350;255:2;235:18;;;228:30;294:28;274:18;;;267:56;340:18;;1294:36:310;14:350:350;1266:450:310;1362:12;1411:6;;1403:29;;1362:12;;1411:6;;;;;;1403:29;;1411:6;;1403:29;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1361:71;;;;1451:33;1464:7;1473:10;1451:33;;;;;;;:::i;:::-;;;;;;;;1532:7;1556:59;;;;1678:10;1672:17;1665:4;1653:10;1649:21;1642:48;1556:59;1601:10;1595:17;1588:4;1576:10;1572:21;1565:48;1525:167;;1507:199;;1231:491::o;2080:89::-;2144:7;:18;2154:8;;2144:7;:18;:::i;369:309:350:-;428:6;481:2;469:9;460:7;456:23;452:32;449:52;;;497:1;494;487:12;449:52;536:9;523:23;586:42;579:5;575:54;568:5;565:65;555:93;;644:1;641;634:12;555:93;667:5;369:309;-1:-1:-1;;;369:309:350:o;683:273::-;739:6;792:2;780:9;771:7;767:23;763:32;760:52;;;808:1;805;798:12;760:52;847:9;834:23;900:5;893:13;886:21;879:5;876:32;866:60;;922:1;919;912:12;961:591;1031:6;1039;1092:2;1080:9;1071:7;1067:23;1063:32;1060:52;;;1108:1;1105;1098:12;1060:52;1148:9;1135:23;1177:18;1218:2;1210:6;1207:14;1204:34;;;1234:1;1231;1224:12;1204:34;1272:6;1261:9;1257:22;1247:32;;1317:7;1310:4;1306:2;1302:13;1298:27;1288:55;;1339:1;1336;1329:12;1288:55;1379:2;1366:16;1405:2;1397:6;1394:14;1391:34;;;1421:1;1418;1411:12;1391:34;1466:7;1461:2;1452:6;1448:2;1444:15;1440:24;1437:37;1434:57;;;1487:1;1484;1477:12;1434:57;1518:2;1510:11;;;;;1540:6;;-1:-1:-1;961:591:350;;-1:-1:-1;;;;961:591:350:o;1557:437::-;1636:1;1632:12;;;;1679;;;1700:61;;1754:4;1746:6;1742:17;1732:27;;1700:61;1807:2;1799:6;1796:14;1776:18;1773:38;1770:218;;1844:77;1841:1;1834:88;1945:4;1942:1;1935:15;1973:4;1970:1;1963:15;1770:218;;1557:437;;;:::o;2124:898::-;2250:3;2279:1;2312:6;2306:13;2342:36;2368:9;2342:36;:::i;:::-;2397:1;2414:18;;;2441:191;;;;2646:1;2641:356;;;;2407:590;;2441:191;2489:66;2478:9;2474:82;2469:3;2462:95;2612:6;2605:14;2598:22;2590:6;2586:35;2581:3;2577:45;2570:52;;2441:191;;2641:356;2672:6;2669:1;2662:17;2702:4;2747:2;2744:1;2734:16;2772:1;2786:165;2800:6;2797:1;2794:13;2786:165;;;2878:14;;2865:11;;;2858:35;2921:16;;;;2815:10;;2786:165;;;2790:3;;;2980:6;2975:3;2971:16;2964:23;;2407:590;-1:-1:-1;3013:3:350;;2124:898;-1:-1:-1;;;;;;2124:898:350:o;3027:735::-;3210:6;3203:14;3196:22;3185:9;3178:41;3159:4;3238:2;3276;3271;3260:9;3256:18;3249:30;3308:6;3302:13;3351:6;3346:2;3335:9;3331:18;3324:34;3376:1;3386:140;3400:6;3397:1;3394:13;3386:140;;;3495:14;;;3491:23;;3485:30;3461:17;;;3480:2;3457:26;3450:66;3415:10;;3386:140;;;3544:6;3541:1;3538:13;3535:91;;;3614:1;3609:2;3600:6;3589:9;3585:22;3581:31;3574:42;3535:91;-1:-1:-1;3678:2:350;3666:15;3683:66;3662:88;3647:104;;;;3753:2;3643:113;;3027:735;-1:-1:-1;;;;3027:735:350:o;3767:184::-;3819:77;3816:1;3809:88;3916:4;3913:1;3906:15;3940:4;3937:1;3930:15;3956:544;4057:2;4052:3;4049:11;4046:448;;;4093:1;4118:5;4114:2;4107:17;4163:4;4159:2;4149:19;4233:2;4221:10;4217:19;4214:1;4210:27;4204:4;4200:38;4269:4;4257:10;4254:20;4251:47;;;-1:-1:-1;4292:4:350;4251:47;4347:2;4342:3;4338:12;4335:1;4331:20;4325:4;4321:31;4311:41;;4402:82;4420:2;4413:5;4410:13;4402:82;;;4465:17;;;4446:1;4435:13;4402:82;;;4406:3;;;3956:544;;;:::o;4736:1321::-;4858:18;4853:3;4850:27;4847:53;;;4880:18;;:::i;:::-;4909:93;4998:3;4958:38;4990:4;4984:11;4958:38;:::i;:::-;4952:4;4909:93;:::i;:::-;5028:1;5053:2;5048:3;5045:11;5070:1;5065:734;;;;5843:1;5860:3;5857:93;;;-1:-1:-1;5916:19:350;;;5903:33;5857:93;4642:66;4633:1;4629:11;;;4625:84;4621:89;4611:100;4717:1;4713:11;;;4608:117;5963:78;;5038:1013;;5065:734;2071:1;2064:14;;;2108:4;2095:18;;5110:66;5101:76;;;5260:9;5282:229;5296:7;5293:1;5290:14;5282:229;;;5385:19;;;5372:33;5357:49;;5492:4;5477:20;;;;5445:1;5433:14;;;;5312:12;5282:229;;;5286:3;5539;5530:7;5527:16;5524:219;;;5659:66;5653:3;5647;5644:1;5640:11;5636:21;5632:94;5628:99;5615:9;5610:3;5606:19;5593:33;5589:139;5581:6;5574:155;5524:219;;;5786:1;5780:3;5777:1;5773:11;5769:19;5763:4;5756:33;5038:1013;;;4736:1321;;;:::o","linkReferences":{}},"methodIdentifiers":{"call()":"28b5e32b","setDoRevert(bool)":"781dd750","setPayload(bytes)":"deb3cdf2","setTarget(address)":"776d1a01"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returndata\",\"type\":\"bytes\"}],\"name\":\"WhatHappened\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_doRevert\",\"type\":\"bool\"}],\"name\":\"setDoRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"setPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"}],\"name\":\"setTarget\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Used for testing the `CrossDomainMessenger`'s per-message reentrancy guard.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"call()\":{\"notice\":\"Call the configured target with the configured payload OR revert.\"},\"setDoRevert(bool)\":{\"notice\":\"Set whether or not to have `call` revert.\"},\"setPayload(bytes)\":{\"notice\":\"Set the payload for the call made in `call`.\"},\"setTarget(address)\":{\"notice\":\"Set the target for the call made in `call`.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/Callers.sol\":\"ConfigurableCaller\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"test/mocks/Callers.sol\":{\"keccak256\":\"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b\",\"dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bool","name":"success","type":"bool","indexed":false},{"internalType":"bytes","name":"returndata","type":"bytes","indexed":false}],"type":"event","name":"WhatHappened","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"call"},{"inputs":[{"internalType":"bool","name":"_doRevert","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDoRevert"},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setPayload"},{"inputs":[{"internalType":"address","name":"_target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTarget"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"call()":{"notice":"Call the configured target with the configured payload OR revert."},"setDoRevert(bool)":{"notice":"Set whether or not to have `call` revert."},"setPayload(bytes)":{"notice":"Set the payload for the call made in `call`."},"setTarget(address)":{"notice":"Set the target for the call made in `call`."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/Callers.sol":"ConfigurableCaller"},"evmVersion":"london","libraries":{}},"sources":{"test/mocks/Callers.sol":{"keccak256":"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c","urls":["bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b","dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":191378,"contract":"test/mocks/Callers.sol:ConfigurableCaller","label":"doRevert","offset":0,"slot":"0","type":"t_bool"},{"astId":191380,"contract":"test/mocks/Callers.sol:ConfigurableCaller","label":"target","offset":1,"slot":"0","type":"t_address"},{"astId":191382,"contract":"test/mocks/Callers.sol:ConfigurableCaller","label":"payload","offset":0,"slot":"1","type":"t_bytes_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"call()":{"notice":"Call the configured target with the configured payload OR revert."},"setDoRevert(bool)":{"notice":"Set whether or not to have `call` revert."},"setPayload(bytes)":{"notice":"Set the payload for the call made in `call`."},"setTarget(address)":{"notice":"Set the target for the call made in `call`."}}},"devdoc":{"version":1,"kind":"dev","details":"Used for testing the `CrossDomainMessenger`'s per-message reentrancy guard."},"id":310}

@@ -1,1 +0,1 @@

{"abi":[{"type":"fallback","stateMutability":"nonpayable"},{"type":"function","name":"doRevert","inputs":[],"outputs":[],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b5060a88061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063afc874d214602d575b600080fd5b60336035565b005b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5265766572746572207265766572746564000000000000000000000000000000604482015260640160405180910390fdfea164736f6c634300080f000a","sourceMap":"2433:153:294:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063afc874d214602d575b600080fd5b60336035565b005b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5265766572746572207265766572746564000000000000000000000000000000604482015260640160405180910390fdfea164736f6c634300080f000a","sourceMap":"2433:153:294:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2569:8;;;2457:76;;;:::i;:::-;;;2499:27;;;;;216:2:334;2499:27:294;;;198:21:334;255:2;235:18;;;228:30;294:19;274:18;;;267:47;331:18;;2499:27:294;;;;;;","linkReferences":{}},"methodIdentifiers":{"doRevert()":"afc874d2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"doRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Any call will revert\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/Callers.sol\":\"Reverter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"test/mocks/Callers.sol\":{\"keccak256\":\"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b\",\"dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"pure","type":"function","name":"doRevert"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/Callers.sol":"Reverter"},"evmVersion":"london","libraries":{}},"sources":{"test/mocks/Callers.sol":{"keccak256":"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c","urls":["bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b","dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Any call will revert"},"ast":{"absolutePath":"test/mocks/Callers.sol","id":173224,"exportedSymbols":{"CallRecorder":[173086],"CallerCaller":[173115],"ConfigurableCaller":[173206],"Reverter":[173223]},"nodeType":"SourceUnit","src":"32:2555:294","nodes":[{"id":173041,"nodeType":"PragmaDirective","src":"32:23:294","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":173086,"nodeType":"ContractDefinition","src":"57:360:294","nodes":[{"id":173050,"nodeType":"StructDefinition","src":"85:111:294","nodes":[],"canonicalName":"CallRecorder.CallInfo","members":[{"constant":false,"id":173043,"mutability":"mutable","name":"sender","nameLocation":"119:6:294","nodeType":"VariableDeclaration","scope":173050,"src":"111:14:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173042,"name":"address","nodeType":"ElementaryTypeName","src":"111:7:294","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":173045,"mutability":"mutable","name":"data","nameLocation":"141:4:294","nodeType":"VariableDeclaration","scope":173050,"src":"135:10:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":173044,"name":"bytes","nodeType":"ElementaryTypeName","src":"135:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":173047,"mutability":"mutable","name":"gas","nameLocation":"163:3:294","nodeType":"VariableDeclaration","scope":173050,"src":"155:11:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173046,"name":"uint256","nodeType":"ElementaryTypeName","src":"155:7:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":173049,"mutability":"mutable","name":"value","nameLocation":"184:5:294","nodeType":"VariableDeclaration","scope":173050,"src":"176:13:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173048,"name":"uint256","nodeType":"ElementaryTypeName","src":"176:7:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CallInfo","nameLocation":"92:8:294","scope":173086,"visibility":"public"},{"id":173053,"nodeType":"VariableDeclaration","src":"202:24:294","nodes":[],"constant":false,"functionSelector":"da516aa9","mutability":"mutable","name":"lastCall","nameLocation":"218:8:294","scope":173086,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo"},"typeName":{"id":173052,"nodeType":"UserDefinedTypeName","pathNode":{"id":173051,"name":"CallInfo","nodeType":"IdentifierPath","referencedDeclaration":173050,"src":"202:8:294"},"referencedDeclaration":173050,"src":"202:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage_ptr","typeString":"struct CallRecorder.CallInfo"}},"visibility":"public"},{"id":173085,"nodeType":"FunctionDefinition","src":"233:182:294","nodes":[],"body":{"id":173084,"nodeType":"Block","src":"266:149:294","nodes":[],"statements":[{"expression":{"id":173061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173056,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"276:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":173043,"src":"276:15:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":173059,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"294:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"294:10:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"276:28:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173062,"nodeType":"ExpressionStatement","src":"276:28:294"},{"expression":{"id":173068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173063,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"314:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":173045,"src":"314:13:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":173066,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"330:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"330:8:294","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"314:24:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":173069,"nodeType":"ExpressionStatement","src":"314:24:294"},{"expression":{"id":173075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173070,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"348:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":173047,"src":"348:12:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":173073,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"363:7:294","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":173074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"363:9:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"348:24:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":173076,"nodeType":"ExpressionStatement","src":"348:24:294"},{"expression":{"id":173082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":173077,"name":"lastCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173053,"src":"382:8:294","typeDescriptions":{"typeIdentifier":"t_struct$_CallInfo_$173050_storage","typeString":"struct CallRecorder.CallInfo storage ref"}},"id":173079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":173049,"src":"382:14:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":173080,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"399:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"399:9:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"382:26:294","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":173083,"nodeType":"ExpressionStatement","src":"382:26:294"}]},"functionSelector":"266cf109","implemented":true,"kind":"function","modifiers":[],"name":"record","nameLocation":"242:6:294","parameters":{"id":173054,"nodeType":"ParameterList","parameters":[],"src":"248:2:294"},"returnParameters":{"id":173055,"nodeType":"ParameterList","parameters":[],"src":"266:0:294"},"scope":173086,"stateMutability":"payable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CallRecorder","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[173086],"name":"CallRecorder","nameLocation":"66:12:294","scope":173224,"usedErrors":[]},{"id":173115,"nodeType":"ContractDefinition","src":"465:440:294","nodes":[{"id":173093,"nodeType":"EventDefinition","src":"493:51:294","nodes":[],"anonymous":false,"eventSelector":"2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414","name":"WhatHappened","nameLocation":"499:12:294","parameters":{"id":173092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173089,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"517:7:294","nodeType":"VariableDeclaration","scope":173093,"src":"512:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173088,"name":"bool","nodeType":"ElementaryTypeName","src":"512:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173091,"indexed":false,"mutability":"mutable","name":"returndata","nameLocation":"532:10:294","nodeType":"VariableDeclaration","scope":173093,"src":"526:16:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173090,"name":"bytes","nodeType":"ElementaryTypeName","src":"526:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"511:32:294"}},{"id":173114,"nodeType":"FunctionDefinition","src":"550:353:294","nodes":[],"body":{"id":173113,"nodeType":"Block","src":"570:333:294","nodes":[],"statements":[{"assignments":[173097,173099],"declarations":[{"constant":false,"id":173097,"mutability":"mutable","name":"success","nameLocation":"586:7:294","nodeType":"VariableDeclaration","scope":173113,"src":"581:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173096,"name":"bool","nodeType":"ElementaryTypeName","src":"581:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173099,"mutability":"mutable","name":"returndata","nameLocation":"608:10:294","nodeType":"VariableDeclaration","scope":173113,"src":"595:23:294","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173098,"name":"bytes","nodeType":"ElementaryTypeName","src":"595:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":173106,"initialValue":{"arguments":[{"expression":{"id":173103,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"638:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"638:8:294","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":173100,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"622:3:294","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":173101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"622:10:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"622:15:294","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":173105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"622:25:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"580:67:294"},{"eventCall":{"arguments":[{"id":173108,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173097,"src":"675:7:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":173109,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173099,"src":"684:10:294","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173107,"name":"WhatHappened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173093,"src":"662:12:294","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,bytes memory)"}},"id":173110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"662:33:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173111,"nodeType":"EmitStatement","src":"657:38:294"},{"AST":{"nodeType":"YulBlock","src":"714:183:294","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"762:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"775:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"787:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"771:3:294"},"nodeType":"YulFunctionCall","src":"771:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"800:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"794:5:294"},"nodeType":"YulFunctionCall","src":"794:17:294"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"764:6:294"},"nodeType":"YulFunctionCall","src":"764:48:294"},"nodeType":"YulExpressionStatement","src":"764:48:294"}]},"nodeType":"YulCase","src":"755:59:294","value":{"kind":"number","nodeType":"YulLiteral","src":"760:1:294","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"835:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"848:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"860:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"844:3:294"},"nodeType":"YulFunctionCall","src":"844:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"873:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"867:5:294"},"nodeType":"YulFunctionCall","src":"867:17:294"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"837:6:294"},"nodeType":"YulFunctionCall","src":"837:48:294"},"nodeType":"YulExpressionStatement","src":"837:48:294"}]},"nodeType":"YulCase","src":"827:60:294","value":"default"}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"735:7:294"},"nodeType":"YulSwitch","src":"728:159:294"}]},"evmVersion":"london","externalReferences":[{"declaration":173099,"isOffset":false,"isSlot":false,"src":"775:10:294","valueSize":1},{"declaration":173099,"isOffset":false,"isSlot":false,"src":"800:10:294","valueSize":1},{"declaration":173099,"isOffset":false,"isSlot":false,"src":"848:10:294","valueSize":1},{"declaration":173099,"isOffset":false,"isSlot":false,"src":"873:10:294","valueSize":1},{"declaration":173097,"isOffset":false,"isSlot":false,"src":"735:7:294","valueSize":1}],"id":173112,"nodeType":"InlineAssembly","src":"705:192:294"}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173094,"nodeType":"ParameterList","parameters":[],"src":"558:2:294"},"returnParameters":{"id":173095,"nodeType":"ParameterList","parameters":[],"src":"570:0:294"},"scope":173115,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"CallerCaller","contractDependencies":[],"contractKind":"contract","documentation":{"id":173087,"nodeType":"StructuredDocumentation","src":"419:46:294","text":"@dev Useful for testing reentrancy guards"},"fullyImplemented":true,"linearizedBaseContracts":[173115],"name":"CallerCaller","nameLocation":"474:12:294","scope":173224,"usedErrors":[]},{"id":173206,"nodeType":"ContractDefinition","src":"992:1409:294","nodes":[{"id":173119,"nodeType":"VariableDeclaration","src":"1026:20:294","nodes":[],"constant":false,"mutability":"mutable","name":"doRevert","nameLocation":"1031:8:294","scope":173206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173117,"name":"bool","nodeType":"ElementaryTypeName","src":"1026:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":173118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1042:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"internal"},{"id":173121,"nodeType":"VariableDeclaration","src":"1052:14:294","nodes":[],"constant":false,"mutability":"mutable","name":"target","nameLocation":"1060:6:294","scope":173206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173120,"name":"address","nodeType":"ElementaryTypeName","src":"1052:7:294","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":173123,"nodeType":"VariableDeclaration","src":"1072:13:294","nodes":[],"constant":false,"mutability":"mutable","name":"payload","nameLocation":"1078:7:294","scope":173206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":173122,"name":"bytes","nodeType":"ElementaryTypeName","src":"1072:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"id":173129,"nodeType":"EventDefinition","src":"1092:51:294","nodes":[],"anonymous":false,"eventSelector":"2106b16c04ed7c28102e8f5bae2a81f8f969346efa3d397f8dd488794385d414","name":"WhatHappened","nameLocation":"1098:12:294","parameters":{"id":173128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173125,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"1116:7:294","nodeType":"VariableDeclaration","scope":173129,"src":"1111:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173124,"name":"bool","nodeType":"ElementaryTypeName","src":"1111:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173127,"indexed":false,"mutability":"mutable","name":"returndata","nameLocation":"1131:10:294","nodeType":"VariableDeclaration","scope":173129,"src":"1125:16:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173126,"name":"bytes","nodeType":"ElementaryTypeName","src":"1125:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1110:32:294"}},{"id":173160,"nodeType":"FunctionDefinition","src":"1231:491:294","nodes":[],"body":{"id":173159,"nodeType":"Block","src":"1256:466:294","nodes":[],"statements":[{"condition":{"id":173133,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173119,"src":"1270:8:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":173157,"nodeType":"Block","src":"1347:369:294","statements":[{"assignments":[173140,173142],"declarations":[{"constant":false,"id":173140,"mutability":"mutable","name":"success","nameLocation":"1367:7:294","nodeType":"VariableDeclaration","scope":173157,"src":"1362:12:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173139,"name":"bool","nodeType":"ElementaryTypeName","src":"1362:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":173142,"mutability":"mutable","name":"returndata","nameLocation":"1389:10:294","nodeType":"VariableDeclaration","scope":173157,"src":"1376:23:294","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173141,"name":"bytes","nodeType":"ElementaryTypeName","src":"1376:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":173150,"initialValue":{"arguments":[{"id":173148,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173123,"src":"1424:7:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"expression":{"arguments":[{"id":173145,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173121,"src":"1411:6:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":173144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1403:7:294","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":173143,"name":"address","nodeType":"ElementaryTypeName","src":"1403:7:294","typeDescriptions":{}}},"id":173146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:15:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1403:20:294","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":173149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:29:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1361:71:294"},{"eventCall":{"arguments":[{"id":173152,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173140,"src":"1464:7:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":173153,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173142,"src":"1473:10:294","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173151,"name":"WhatHappened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173129,"src":"1451:12:294","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,bytes memory)"}},"id":173154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1451:33:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173155,"nodeType":"EmitStatement","src":"1446:38:294"},{"AST":{"nodeType":"YulBlock","src":"1507:199:294","statements":[{"cases":[{"body":{"nodeType":"YulBlock","src":"1563:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1576:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"1588:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1572:3:294"},"nodeType":"YulFunctionCall","src":"1572:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1601:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1595:5:294"},"nodeType":"YulFunctionCall","src":"1595:17:294"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1565:6:294"},"nodeType":"YulFunctionCall","src":"1565:48:294"},"nodeType":"YulExpressionStatement","src":"1565:48:294"}]},"nodeType":"YulCase","src":"1556:59:294","value":{"kind":"number","nodeType":"YulLiteral","src":"1561:1:294","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"1640:52:294","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1653:10:294"},{"kind":"number","nodeType":"YulLiteral","src":"1665:4:294","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1649:3:294"},"nodeType":"YulFunctionCall","src":"1649:21:294"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"1678:10:294"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1672:5:294"},"nodeType":"YulFunctionCall","src":"1672:17:294"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1642:6:294"},"nodeType":"YulFunctionCall","src":"1642:48:294"},"nodeType":"YulExpressionStatement","src":"1642:48:294"}]},"nodeType":"YulCase","src":"1632:60:294","value":"default"}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"1532:7:294"},"nodeType":"YulSwitch","src":"1525:167:294"}]},"evmVersion":"london","externalReferences":[{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1576:10:294","valueSize":1},{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1601:10:294","valueSize":1},{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1653:10:294","valueSize":1},{"declaration":173142,"isOffset":false,"isSlot":false,"src":"1678:10:294","valueSize":1},{"declaration":173140,"isOffset":false,"isSlot":false,"src":"1532:7:294","valueSize":1}],"id":173156,"nodeType":"InlineAssembly","src":"1498:208:294"}]},"id":173158,"nodeType":"IfStatement","src":"1266:450:294","trueBody":{"id":173138,"nodeType":"Block","src":"1280:61:294","statements":[{"expression":{"arguments":[{"hexValue":"436f6e666967757261626c6543616c6c65723a20726576657274","id":173135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1301:28:294","typeDescriptions":{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""},"value":"ConfigurableCaller: revert"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""}],"id":173134,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1294:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":173136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1294:36:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173137,"nodeType":"ExpressionStatement","src":"1294:36:294"}]}}]},"documentation":{"id":173130,"nodeType":"StructuredDocumentation","src":"1149:77:294","text":"@notice Call the configured target with the configured payload OR revert."},"functionSelector":"28b5e32b","implemented":true,"kind":"function","modifiers":[],"name":"call","nameLocation":"1240:4:294","parameters":{"id":173131,"nodeType":"ParameterList","parameters":[],"src":"1244:2:294"},"returnParameters":{"id":173132,"nodeType":"ParameterList","parameters":[],"src":"1256:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173171,"nodeType":"FunctionDefinition","src":"1786:83:294","nodes":[],"body":{"id":173170,"nodeType":"Block","src":"1832:37:294","nodes":[],"statements":[{"expression":{"id":173168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173166,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173119,"src":"1842:8:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173167,"name":"_doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173163,"src":"1853:9:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1842:20:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":173169,"nodeType":"ExpressionStatement","src":"1842:20:294"}]},"documentation":{"id":173161,"nodeType":"StructuredDocumentation","src":"1728:53:294","text":"@notice Set whether or not to have `call` revert."},"functionSelector":"781dd750","implemented":true,"kind":"function","modifiers":[],"name":"setDoRevert","nameLocation":"1795:11:294","parameters":{"id":173164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173163,"mutability":"mutable","name":"_doRevert","nameLocation":"1812:9:294","nodeType":"VariableDeclaration","scope":173171,"src":"1807:14:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":173162,"name":"bool","nodeType":"ElementaryTypeName","src":"1807:4:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1806:16:294"},"returnParameters":{"id":173165,"nodeType":"ParameterList","parameters":[],"src":"1832:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173182,"nodeType":"FunctionDefinition","src":"1935:78:294","nodes":[],"body":{"id":173181,"nodeType":"Block","src":"1980:33:294","nodes":[],"statements":[{"expression":{"id":173179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173177,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173121,"src":"1990:6:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173178,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173174,"src":"1999:7:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1990:16:294","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":173180,"nodeType":"ExpressionStatement","src":"1990:16:294"}]},"documentation":{"id":173172,"nodeType":"StructuredDocumentation","src":"1875:55:294","text":"@notice Set the target for the call made in `call`."},"functionSelector":"776d1a01","implemented":true,"kind":"function","modifiers":[],"name":"setTarget","nameLocation":"1944:9:294","parameters":{"id":173175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173174,"mutability":"mutable","name":"_target","nameLocation":"1962:7:294","nodeType":"VariableDeclaration","scope":173182,"src":"1954:15:294","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173173,"name":"address","nodeType":"ElementaryTypeName","src":"1954:7:294","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1953:17:294"},"returnParameters":{"id":173176,"nodeType":"ParameterList","parameters":[],"src":"1980:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173193,"nodeType":"FunctionDefinition","src":"2080:89:294","nodes":[],"body":{"id":173192,"nodeType":"Block","src":"2134:35:294","nodes":[],"statements":[{"expression":{"id":173190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173188,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173123,"src":"2144:7:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173189,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173185,"src":"2154:8:294","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"2144:18:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":173191,"nodeType":"ExpressionStatement","src":"2144:18:294"}]},"documentation":{"id":173183,"nodeType":"StructuredDocumentation","src":"2019:56:294","text":"@notice Set the payload for the call made in `call`."},"functionSelector":"deb3cdf2","implemented":true,"kind":"function","modifiers":[],"name":"setPayload","nameLocation":"2089:10:294","parameters":{"id":173186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173185,"mutability":"mutable","name":"_payload","nameLocation":"2115:8:294","nodeType":"VariableDeclaration","scope":173193,"src":"2100:23:294","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":173184,"name":"bytes","nodeType":"ElementaryTypeName","src":"2100:5:294","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2099:25:294"},"returnParameters":{"id":173187,"nodeType":"ParameterList","parameters":[],"src":"2134:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":173205,"nodeType":"FunctionDefinition","src":"2288:111:294","nodes":[],"body":{"id":173204,"nodeType":"Block","src":"2308:91:294","nodes":[],"statements":[{"condition":{"id":173197,"name":"doRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173119,"src":"2322:8:294","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":173203,"nodeType":"IfStatement","src":"2318:75:294","trueBody":{"id":173202,"nodeType":"Block","src":"2332:61:294","statements":[{"expression":{"arguments":[{"hexValue":"436f6e666967757261626c6543616c6c65723a20726576657274","id":173199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2353:28:294","typeDescriptions":{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""},"value":"ConfigurableCaller: revert"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56f10bd421950dc6c7ac070b7769873cb899ff26d2d363d32ddbac6b2fa40d60","typeString":"literal_string \"ConfigurableCaller: revert\""}],"id":173198,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2346:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":173200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2346:36:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173201,"nodeType":"ExpressionStatement","src":"2346:36:294"}]}}]},"documentation":{"id":173194,"nodeType":"StructuredDocumentation","src":"2175:108:294","text":"@notice Fallback function that reverts if `doRevert` is true.\n Otherwise, it does nothing."},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173195,"nodeType":"ParameterList","parameters":[],"src":"2296:2:294"},"returnParameters":{"id":173196,"nodeType":"ParameterList","parameters":[],"src":"2308:0:294"},"scope":173206,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ConfigurableCaller","contractDependencies":[],"contractKind":"contract","documentation":{"id":173116,"nodeType":"StructuredDocumentation","src":"907:85:294","text":"@dev Used for testing the `CrossDomainMessenger`'s per-message reentrancy guard."},"fullyImplemented":true,"linearizedBaseContracts":[173206],"name":"ConfigurableCaller","nameLocation":"1001:18:294","scope":173224,"usedErrors":[]},{"id":173223,"nodeType":"ContractDefinition","src":"2433:153:294","nodes":[{"id":173215,"nodeType":"FunctionDefinition","src":"2457:76:294","nodes":[],"body":{"id":173214,"nodeType":"Block","src":"2489:44:294","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"5265766572746572207265766572746564","id":173211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2506:19:294","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3edf6a705c1ac2ccf4eb0ce9f05039f24b547c0f1460366bd5050c270cb80ba","typeString":"literal_string \"Reverter reverted\""},"value":"Reverter reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3edf6a705c1ac2ccf4eb0ce9f05039f24b547c0f1460366bd5050c270cb80ba","typeString":"literal_string \"Reverter reverted\""}],"id":173210,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2499:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":173212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2499:27:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173213,"nodeType":"ExpressionStatement","src":"2499:27:294"}]},"functionSelector":"afc874d2","implemented":true,"kind":"function","modifiers":[],"name":"doRevert","nameLocation":"2466:8:294","parameters":{"id":173208,"nodeType":"ParameterList","parameters":[],"src":"2474:2:294"},"returnParameters":{"id":173209,"nodeType":"ParameterList","parameters":[],"src":"2489:0:294"},"scope":173223,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":173222,"nodeType":"FunctionDefinition","src":"2539:45:294","nodes":[],"body":{"id":173221,"nodeType":"Block","src":"2559:25:294","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":173218,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2569:6:294","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":173219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2569:8:294","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173220,"nodeType":"ExpressionStatement","src":"2569:8:294"}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173216,"nodeType":"ParameterList","parameters":[],"src":"2547:2:294"},"returnParameters":{"id":173217,"nodeType":"ParameterList","parameters":[],"src":"2559:0:294"},"scope":173223,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Reverter","contractDependencies":[],"contractKind":"contract","documentation":{"id":173207,"nodeType":"StructuredDocumentation","src":"2403:30:294","text":"@dev Any call will revert"},"fullyImplemented":true,"linearizedBaseContracts":[173223],"name":"Reverter","nameLocation":"2442:8:294","scope":173224,"usedErrors":[]}],"license":"MIT"},"id":294}
{"abi":[{"type":"fallback","stateMutability":"nonpayable"},{"type":"function","name":"doRevert","inputs":[],"outputs":[],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b5060a88061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063afc874d214602d575b600080fd5b60336035565b005b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5265766572746572207265766572746564000000000000000000000000000000604482015260640160405180910390fdfea164736f6c634300080f000a","sourceMap":"2433:153:310:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063afc874d214602d575b600080fd5b60336035565b005b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5265766572746572207265766572746564000000000000000000000000000000604482015260640160405180910390fdfea164736f6c634300080f000a","sourceMap":"2433:153:310:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2569:8;;;2457:76;;;:::i;:::-;;;2499:27;;;;;216:2:350;2499:27:310;;;198:21:350;255:2;235:18;;;228:30;294:19;274:18;;;267:47;331:18;;2499:27:310;;;;;;","linkReferences":{}},"methodIdentifiers":{"doRevert()":"afc874d2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"doRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Any call will revert\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/Callers.sol\":\"Reverter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"test/mocks/Callers.sol\":{\"keccak256\":\"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b\",\"dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"pure","type":"function","name":"doRevert"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/Callers.sol":"Reverter"},"evmVersion":"london","libraries":{}},"sources":{"test/mocks/Callers.sol":{"keccak256":"0x844c8fc5f94fd3c7372b2d64d19655b9624ae1799b963055c7329ec720070f9c","urls":["bzz-raw://d9240cfd20be3f973ee0319cda59beaad2b9a33ac2ac08e73251bff35fc45a2b","dweb:/ipfs/QmdKQFqucQvGKJ2jxr96PMLrZoFYLHzKmFCV4iSu7dNMCL"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Any call will revert"},"id":310}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1268:2603:151:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1268:2603:151;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1268:2603:151:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"LPP metadata UDT extension functions.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/cannon/libraries/CannonTypes.sol\":\"LPPMetadataLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/libraries/CannonTypes.sol\":{\"keccak256\":\"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39\",\"dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/cannon/libraries/CannonTypes.sol":"LPPMetadataLib"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/libraries/CannonTypes.sol":{"keccak256":"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de","urls":["bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39","dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"LPP metadata UDT extension functions."},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/cannon/libraries/CannonTypes.sol","id":88026,"exportedSymbols":{"LPPMetaData":[87879],"LPPMetadataLib":[88025]},"nodeType":"SourceUnit","src":"32:3840:151","nodes":[{"id":87873,"nodeType":"PragmaDirective","src":"32:23:151","nodes":[],"literals":["solidity","0.8",".15"]},{"id":87877,"nodeType":"UsingForDirective","src":"57:44:151","nodes":[],"global":true,"libraryName":{"id":87874,"name":"LPPMetadataLib","nodeType":"IdentifierPath","referencedDeclaration":88025,"src":"63:14:151"},"typeName":{"id":87876,"nodeType":"UserDefinedTypeName","pathNode":{"id":87875,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"82:11:151"},"referencedDeclaration":87879,"src":"82:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}}},{"id":87879,"nodeType":"UserDefinedValueTypeDefinition","src":"1188:28:151","nodes":[],"canonicalName":"LPPMetaData","name":"LPPMetaData","nameLocation":"1193:11:151","underlyingType":{"id":87878,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1208:7:151","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":88025,"nodeType":"ContractDefinition","src":"1268:2603:151","nodes":[{"id":87883,"nodeType":"VariableDeclaration","src":"1297:54:151","nodes":[],"constant":true,"mutability":"constant","name":"U64_MASK","nameLocation":"1322:8:151","scope":88025,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87881,"name":"uint256","nodeType":"ElementaryTypeName","src":"1297:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307846464646464646464646464646464646","id":87882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1333:18:151","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"visibility":"private"},{"id":87886,"nodeType":"VariableDeclaration","src":"1357:46:151","nodes":[],"constant":true,"mutability":"constant","name":"U32_MASK","nameLocation":"1382:8:151","scope":88025,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87884,"name":"uint256","nodeType":"ElementaryTypeName","src":"1357:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30784646464646464646","id":87885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1393:10:151","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xFFFFFFFF"},"visibility":"private"},{"id":87899,"nodeType":"FunctionDefinition","src":"1410:221:151","nodes":[],"body":{"id":87898,"nodeType":"Block","src":"1512:119:151","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1531:94:151","statements":[{"nodeType":"YulAssignment","src":"1545:70:151","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1561:3:151","type":"","value":"192"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"1566:10:151"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1557:3:151"},"nodeType":"YulFunctionCall","src":"1557:20:151"},{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"1583:5:151"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1598:3:151","type":"","value":"192"},{"name":"U64_MASK","nodeType":"YulIdentifier","src":"1603:8:151"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1594:3:151"},"nodeType":"YulFunctionCall","src":"1594:18:151"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1590:3:151"},"nodeType":"YulFunctionCall","src":"1590:23:151"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1579:3:151"},"nodeType":"YulFunctionCall","src":"1579:35:151"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1554:2:151"},"nodeType":"YulFunctionCall","src":"1554:61:151"},"variableNames":[{"name":"self_","nodeType":"YulIdentifier","src":"1545:5:151"}]}]},"evmVersion":"london","externalReferences":[{"declaration":87883,"isOffset":false,"isSlot":false,"src":"1603:8:151","valueSize":1},{"declaration":87889,"isOffset":false,"isSlot":false,"src":"1583:5:151","valueSize":1},{"declaration":87891,"isOffset":false,"isSlot":false,"src":"1566:10:151","valueSize":1},{"declaration":87895,"isOffset":false,"isSlot":false,"src":"1545:5:151","valueSize":1}],"id":87897,"nodeType":"InlineAssembly","src":"1522:103:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setTimestamp","nameLocation":"1419:12:151","parameters":{"id":87892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87889,"mutability":"mutable","name":"_self","nameLocation":"1444:5:151","nodeType":"VariableDeclaration","scope":87899,"src":"1432:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87888,"nodeType":"UserDefinedTypeName","pathNode":{"id":87887,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"1432:11:151"},"referencedDeclaration":87879,"src":"1432:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"},{"constant":false,"id":87891,"mutability":"mutable","name":"_timestamp","nameLocation":"1458:10:151","nodeType":"VariableDeclaration","scope":87899,"src":"1451:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":87890,"name":"uint64","nodeType":"ElementaryTypeName","src":"1451:6:151","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1431:38:151"},"returnParameters":{"id":87896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87895,"mutability":"mutable","name":"self_","nameLocation":"1505:5:151","nodeType":"VariableDeclaration","scope":87899,"src":"1493:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87894,"nodeType":"UserDefinedTypeName","pathNode":{"id":87893,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"1493:11:151"},"referencedDeclaration":87879,"src":"1493:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"1492:19:151"},"scope":88025,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":87912,"nodeType":"FunctionDefinition","src":"1637:224:151","nodes":[],"body":{"id":87911,"nodeType":"Block","src":"1741:120:151","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1760:95:151","statements":[{"nodeType":"YulAssignment","src":"1774:71:151","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1790:3:151","type":"","value":"160"},{"name":"_partOffset","nodeType":"YulIdentifier","src":"1795:11:151"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1786:3:151"},"nodeType":"YulFunctionCall","src":"1786:21:151"},{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"1813:5:151"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1828:3:151","type":"","value":"160"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"1833:8:151"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1824:3:151"},"nodeType":"YulFunctionCall","src":"1824:18:151"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1820:3:151"},"nodeType":"YulFunctionCall","src":"1820:23:151"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1809:3:151"},"nodeType":"YulFunctionCall","src":"1809:35:151"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1783:2:151"},"nodeType":"YulFunctionCall","src":"1783:62:151"},"variableNames":[{"name":"self_","nodeType":"YulIdentifier","src":"1774:5:151"}]}]},"evmVersion":"london","externalReferences":[{"declaration":87886,"isOffset":false,"isSlot":false,"src":"1833:8:151","valueSize":1},{"declaration":87904,"isOffset":false,"isSlot":false,"src":"1795:11:151","valueSize":1},{"declaration":87902,"isOffset":false,"isSlot":false,"src":"1813:5:151","valueSize":1},{"declaration":87908,"isOffset":false,"isSlot":false,"src":"1774:5:151","valueSize":1}],"id":87910,"nodeType":"InlineAssembly","src":"1751:104:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setPartOffset","nameLocation":"1646:13:151","parameters":{"id":87905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87902,"mutability":"mutable","name":"_self","nameLocation":"1672:5:151","nodeType":"VariableDeclaration","scope":87912,"src":"1660:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87901,"nodeType":"UserDefinedTypeName","pathNode":{"id":87900,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"1660:11:151"},"referencedDeclaration":87879,"src":"1660:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"},{"constant":false,"id":87904,"mutability":"mutable","name":"_partOffset","nameLocation":"1686:11:151","nodeType":"VariableDeclaration","scope":87912,"src":"1679:18:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":87903,"name":"uint32","nodeType":"ElementaryTypeName","src":"1679:6:151","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1659:39:151"},"returnParameters":{"id":87909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87908,"mutability":"mutable","name":"self_","nameLocation":"1734:5:151","nodeType":"VariableDeclaration","scope":87912,"src":"1722:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87907,"nodeType":"UserDefinedTypeName","pathNode":{"id":87906,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"1722:11:151"},"referencedDeclaration":87879,"src":"1722:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"1721:19:151"},"scope":88025,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":87925,"nodeType":"FunctionDefinition","src":"1867:227:151","nodes":[],"body":{"id":87924,"nodeType":"Block","src":"1973:121:151","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1992:96:151","statements":[{"nodeType":"YulAssignment","src":"2006:72:151","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2022:3:151","type":"","value":"128"},{"name":"_claimedSize","nodeType":"YulIdentifier","src":"2027:12:151"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2018:3:151"},"nodeType":"YulFunctionCall","src":"2018:22:151"},{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"2046:5:151"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2061:3:151","type":"","value":"128"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"2066:8:151"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2057:3:151"},"nodeType":"YulFunctionCall","src":"2057:18:151"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2053:3:151"},"nodeType":"YulFunctionCall","src":"2053:23:151"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2042:3:151"},"nodeType":"YulFunctionCall","src":"2042:35:151"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2015:2:151"},"nodeType":"YulFunctionCall","src":"2015:63:151"},"variableNames":[{"name":"self_","nodeType":"YulIdentifier","src":"2006:5:151"}]}]},"evmVersion":"london","externalReferences":[{"declaration":87886,"isOffset":false,"isSlot":false,"src":"2066:8:151","valueSize":1},{"declaration":87917,"isOffset":false,"isSlot":false,"src":"2027:12:151","valueSize":1},{"declaration":87915,"isOffset":false,"isSlot":false,"src":"2046:5:151","valueSize":1},{"declaration":87921,"isOffset":false,"isSlot":false,"src":"2006:5:151","valueSize":1}],"id":87923,"nodeType":"InlineAssembly","src":"1983:105:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setClaimedSize","nameLocation":"1876:14:151","parameters":{"id":87918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87915,"mutability":"mutable","name":"_self","nameLocation":"1903:5:151","nodeType":"VariableDeclaration","scope":87925,"src":"1891:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87914,"nodeType":"UserDefinedTypeName","pathNode":{"id":87913,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"1891:11:151"},"referencedDeclaration":87879,"src":"1891:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"},{"constant":false,"id":87917,"mutability":"mutable","name":"_claimedSize","nameLocation":"1917:12:151","nodeType":"VariableDeclaration","scope":87925,"src":"1910:19:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":87916,"name":"uint32","nodeType":"ElementaryTypeName","src":"1910:6:151","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1890:40:151"},"returnParameters":{"id":87922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87921,"mutability":"mutable","name":"self_","nameLocation":"1966:5:151","nodeType":"VariableDeclaration","scope":87925,"src":"1954:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87920,"nodeType":"UserDefinedTypeName","pathNode":{"id":87919,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"1954:11:151"},"referencedDeclaration":87879,"src":"1954:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"1953:19:151"},"scope":88025,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":87938,"nodeType":"FunctionDefinition","src":"2100:237:151","nodes":[],"body":{"id":87937,"nodeType":"Block","src":"2214:123:151","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2233:98:151","statements":[{"nodeType":"YulAssignment","src":"2247:74:151","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2263:2:151","type":"","value":"96"},{"name":"_blocksProcessed","nodeType":"YulIdentifier","src":"2267:16:151"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2259:3:151"},"nodeType":"YulFunctionCall","src":"2259:25:151"},{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"2290:5:151"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2305:2:151","type":"","value":"96"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"2309:8:151"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2301:3:151"},"nodeType":"YulFunctionCall","src":"2301:17:151"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2297:3:151"},"nodeType":"YulFunctionCall","src":"2297:22:151"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2286:3:151"},"nodeType":"YulFunctionCall","src":"2286:34:151"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2256:2:151"},"nodeType":"YulFunctionCall","src":"2256:65:151"},"variableNames":[{"name":"self_","nodeType":"YulIdentifier","src":"2247:5:151"}]}]},"evmVersion":"london","externalReferences":[{"declaration":87886,"isOffset":false,"isSlot":false,"src":"2309:8:151","valueSize":1},{"declaration":87930,"isOffset":false,"isSlot":false,"src":"2267:16:151","valueSize":1},{"declaration":87928,"isOffset":false,"isSlot":false,"src":"2290:5:151","valueSize":1},{"declaration":87934,"isOffset":false,"isSlot":false,"src":"2247:5:151","valueSize":1}],"id":87936,"nodeType":"InlineAssembly","src":"2224:107:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setBlocksProcessed","nameLocation":"2109:18:151","parameters":{"id":87931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87928,"mutability":"mutable","name":"_self","nameLocation":"2140:5:151","nodeType":"VariableDeclaration","scope":87938,"src":"2128:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87927,"nodeType":"UserDefinedTypeName","pathNode":{"id":87926,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"2128:11:151"},"referencedDeclaration":87879,"src":"2128:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"},{"constant":false,"id":87930,"mutability":"mutable","name":"_blocksProcessed","nameLocation":"2154:16:151","nodeType":"VariableDeclaration","scope":87938,"src":"2147:23:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":87929,"name":"uint32","nodeType":"ElementaryTypeName","src":"2147:6:151","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2127:44:151"},"returnParameters":{"id":87935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87934,"mutability":"mutable","name":"self_","nameLocation":"2207:5:151","nodeType":"VariableDeclaration","scope":87938,"src":"2195:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87933,"nodeType":"UserDefinedTypeName","pathNode":{"id":87932,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"2195:11:151"},"referencedDeclaration":87879,"src":"2195:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"2194:19:151"},"scope":88025,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":87951,"nodeType":"FunctionDefinition","src":"2343:234:151","nodes":[],"body":{"id":87950,"nodeType":"Block","src":"2455:122:151","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2474:97:151","statements":[{"nodeType":"YulAssignment","src":"2488:73:151","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2504:2:151","type":"","value":"64"},{"name":"_bytesProcessed","nodeType":"YulIdentifier","src":"2508:15:151"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2500:3:151"},"nodeType":"YulFunctionCall","src":"2500:24:151"},{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"2530:5:151"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2545:2:151","type":"","value":"64"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"2549:8:151"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2541:3:151"},"nodeType":"YulFunctionCall","src":"2541:17:151"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2537:3:151"},"nodeType":"YulFunctionCall","src":"2537:22:151"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2526:3:151"},"nodeType":"YulFunctionCall","src":"2526:34:151"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2497:2:151"},"nodeType":"YulFunctionCall","src":"2497:64:151"},"variableNames":[{"name":"self_","nodeType":"YulIdentifier","src":"2488:5:151"}]}]},"evmVersion":"london","externalReferences":[{"declaration":87886,"isOffset":false,"isSlot":false,"src":"2549:8:151","valueSize":1},{"declaration":87943,"isOffset":false,"isSlot":false,"src":"2508:15:151","valueSize":1},{"declaration":87941,"isOffset":false,"isSlot":false,"src":"2530:5:151","valueSize":1},{"declaration":87947,"isOffset":false,"isSlot":false,"src":"2488:5:151","valueSize":1}],"id":87949,"nodeType":"InlineAssembly","src":"2465:106:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setBytesProcessed","nameLocation":"2352:17:151","parameters":{"id":87944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87941,"mutability":"mutable","name":"_self","nameLocation":"2382:5:151","nodeType":"VariableDeclaration","scope":87951,"src":"2370:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87940,"nodeType":"UserDefinedTypeName","pathNode":{"id":87939,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"2370:11:151"},"referencedDeclaration":87879,"src":"2370:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"},{"constant":false,"id":87943,"mutability":"mutable","name":"_bytesProcessed","nameLocation":"2396:15:151","nodeType":"VariableDeclaration","scope":87951,"src":"2389:22:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":87942,"name":"uint32","nodeType":"ElementaryTypeName","src":"2389:6:151","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2369:43:151"},"returnParameters":{"id":87948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87947,"mutability":"mutable","name":"self_","nameLocation":"2448:5:151","nodeType":"VariableDeclaration","scope":87951,"src":"2436:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87946,"nodeType":"UserDefinedTypeName","pathNode":{"id":87945,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"2436:11:151"},"referencedDeclaration":87879,"src":"2436:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"2435:19:151"},"scope":88025,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":87964,"nodeType":"FunctionDefinition","src":"2583:199:151","nodes":[],"body":{"id":87963,"nodeType":"Block","src":"2683:99:151","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2702:74:151","statements":[{"nodeType":"YulAssignment","src":"2716:50:151","value":{"arguments":[{"name":"_countered","nodeType":"YulIdentifier","src":"2728:10:151"},{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"2744:5:151"},{"arguments":[{"name":"U64_MASK","nodeType":"YulIdentifier","src":"2755:8:151"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2751:3:151"},"nodeType":"YulFunctionCall","src":"2751:13:151"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2740:3:151"},"nodeType":"YulFunctionCall","src":"2740:25:151"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2725:2:151"},"nodeType":"YulFunctionCall","src":"2725:41:151"},"variableNames":[{"name":"self_","nodeType":"YulIdentifier","src":"2716:5:151"}]}]},"evmVersion":"london","externalReferences":[{"declaration":87883,"isOffset":false,"isSlot":false,"src":"2755:8:151","valueSize":1},{"declaration":87956,"isOffset":false,"isSlot":false,"src":"2728:10:151","valueSize":1},{"declaration":87954,"isOffset":false,"isSlot":false,"src":"2744:5:151","valueSize":1},{"declaration":87960,"isOffset":false,"isSlot":false,"src":"2716:5:151","valueSize":1}],"id":87962,"nodeType":"InlineAssembly","src":"2693:83:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setCountered","nameLocation":"2592:12:151","parameters":{"id":87957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87954,"mutability":"mutable","name":"_self","nameLocation":"2617:5:151","nodeType":"VariableDeclaration","scope":87964,"src":"2605:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87953,"nodeType":"UserDefinedTypeName","pathNode":{"id":87952,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"2605:11:151"},"referencedDeclaration":87879,"src":"2605:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"},{"constant":false,"id":87956,"mutability":"mutable","name":"_countered","nameLocation":"2629:10:151","nodeType":"VariableDeclaration","scope":87964,"src":"2624:15:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87955,"name":"bool","nodeType":"ElementaryTypeName","src":"2624:4:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2604:36:151"},"returnParameters":{"id":87961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87960,"mutability":"mutable","name":"self_","nameLocation":"2676:5:151","nodeType":"VariableDeclaration","scope":87964,"src":"2664:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87959,"nodeType":"UserDefinedTypeName","pathNode":{"id":87958,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"2664:11:151"},"referencedDeclaration":87879,"src":"2664:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"2663:19:151"},"scope":88025,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":87974,"nodeType":"FunctionDefinition","src":"2788:158:151","nodes":[],"body":{"id":87973,"nodeType":"Block","src":"2868:78:151","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2887:53:151","statements":[{"nodeType":"YulAssignment","src":"2901:29:151","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2919:3:151","type":"","value":"192"},{"name":"_self","nodeType":"YulIdentifier","src":"2924:5:151"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2915:3:151"},"nodeType":"YulFunctionCall","src":"2915:15:151"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"2901:10:151"}]}]},"evmVersion":"london","externalReferences":[{"declaration":87967,"isOffset":false,"isSlot":false,"src":"2924:5:151","valueSize":1},{"declaration":87970,"isOffset":false,"isSlot":false,"src":"2901:10:151","valueSize":1}],"id":87972,"nodeType":"InlineAssembly","src":"2878:62:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"2797:9:151","parameters":{"id":87968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87967,"mutability":"mutable","name":"_self","nameLocation":"2819:5:151","nodeType":"VariableDeclaration","scope":87974,"src":"2807:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87966,"nodeType":"UserDefinedTypeName","pathNode":{"id":87965,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"2807:11:151"},"referencedDeclaration":87879,"src":"2807:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"2806:19:151"},"returnParameters":{"id":87971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87970,"mutability":"mutable","name":"timestamp_","nameLocation":"2856:10:151","nodeType":"VariableDeclaration","scope":87974,"src":"2849:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":87969,"name":"uint64","nodeType":"ElementaryTypeName","src":"2849:6:151","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2848:19:151"},"scope":88025,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":87984,"nodeType":"FunctionDefinition","src":"2952:176:151","nodes":[],"body":{"id":87983,"nodeType":"Block","src":"3034:94:151","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3053:69:151","statements":[{"nodeType":"YulAssignment","src":"3067:45:151","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3090:3:151","type":"","value":"160"},{"name":"_self","nodeType":"YulIdentifier","src":"3095:5:151"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3086:3:151"},"nodeType":"YulFunctionCall","src":"3086:15:151"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"3103:8:151"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3082:3:151"},"nodeType":"YulFunctionCall","src":"3082:30:151"},"variableNames":[{"name":"partOffset_","nodeType":"YulIdentifier","src":"3067:11:151"}]}]},"evmVersion":"london","externalReferences":[{"declaration":87886,"isOffset":false,"isSlot":false,"src":"3103:8:151","valueSize":1},{"declaration":87977,"isOffset":false,"isSlot":false,"src":"3095:5:151","valueSize":1},{"declaration":87980,"isOffset":false,"isSlot":false,"src":"3067:11:151","valueSize":1}],"id":87982,"nodeType":"InlineAssembly","src":"3044:78:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"partOffset","nameLocation":"2961:10:151","parameters":{"id":87978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87977,"mutability":"mutable","name":"_self","nameLocation":"2984:5:151","nodeType":"VariableDeclaration","scope":87984,"src":"2972:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87976,"nodeType":"UserDefinedTypeName","pathNode":{"id":87975,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"2972:11:151"},"referencedDeclaration":87879,"src":"2972:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"2971:19:151"},"returnParameters":{"id":87981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87980,"mutability":"mutable","name":"partOffset_","nameLocation":"3021:11:151","nodeType":"VariableDeclaration","scope":87984,"src":"3014:18:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":87979,"name":"uint64","nodeType":"ElementaryTypeName","src":"3014:6:151","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3013:20:151"},"scope":88025,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":87994,"nodeType":"FunctionDefinition","src":"3134:179:151","nodes":[],"body":{"id":87993,"nodeType":"Block","src":"3218:95:151","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3237:70:151","statements":[{"nodeType":"YulAssignment","src":"3251:46:151","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3275:3:151","type":"","value":"128"},{"name":"_self","nodeType":"YulIdentifier","src":"3280:5:151"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3271:3:151"},"nodeType":"YulFunctionCall","src":"3271:15:151"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"3288:8:151"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3267:3:151"},"nodeType":"YulFunctionCall","src":"3267:30:151"},"variableNames":[{"name":"claimedSize_","nodeType":"YulIdentifier","src":"3251:12:151"}]}]},"evmVersion":"london","externalReferences":[{"declaration":87886,"isOffset":false,"isSlot":false,"src":"3288:8:151","valueSize":1},{"declaration":87987,"isOffset":false,"isSlot":false,"src":"3280:5:151","valueSize":1},{"declaration":87990,"isOffset":false,"isSlot":false,"src":"3251:12:151","valueSize":1}],"id":87992,"nodeType":"InlineAssembly","src":"3228:79:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"claimedSize","nameLocation":"3143:11:151","parameters":{"id":87988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87987,"mutability":"mutable","name":"_self","nameLocation":"3167:5:151","nodeType":"VariableDeclaration","scope":87994,"src":"3155:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87986,"nodeType":"UserDefinedTypeName","pathNode":{"id":87985,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"3155:11:151"},"referencedDeclaration":87879,"src":"3155:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"3154:19:151"},"returnParameters":{"id":87991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87990,"mutability":"mutable","name":"claimedSize_","nameLocation":"3204:12:151","nodeType":"VariableDeclaration","scope":87994,"src":"3197:19:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":87989,"name":"uint32","nodeType":"ElementaryTypeName","src":"3197:6:151","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"3196:21:151"},"scope":88025,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":88004,"nodeType":"FunctionDefinition","src":"3319:190:151","nodes":[],"body":{"id":88003,"nodeType":"Block","src":"3411:98:151","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3430:73:151","statements":[{"nodeType":"YulAssignment","src":"3444:49:151","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3472:2:151","type":"","value":"96"},{"name":"_self","nodeType":"YulIdentifier","src":"3476:5:151"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3468:3:151"},"nodeType":"YulFunctionCall","src":"3468:14:151"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"3484:8:151"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3464:3:151"},"nodeType":"YulFunctionCall","src":"3464:29:151"},"variableNames":[{"name":"blocksProcessed_","nodeType":"YulIdentifier","src":"3444:16:151"}]}]},"evmVersion":"london","externalReferences":[{"declaration":87886,"isOffset":false,"isSlot":false,"src":"3484:8:151","valueSize":1},{"declaration":87997,"isOffset":false,"isSlot":false,"src":"3476:5:151","valueSize":1},{"declaration":88000,"isOffset":false,"isSlot":false,"src":"3444:16:151","valueSize":1}],"id":88002,"nodeType":"InlineAssembly","src":"3421:82:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"blocksProcessed","nameLocation":"3328:15:151","parameters":{"id":87998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87997,"mutability":"mutable","name":"_self","nameLocation":"3356:5:151","nodeType":"VariableDeclaration","scope":88004,"src":"3344:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":87996,"nodeType":"UserDefinedTypeName","pathNode":{"id":87995,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"3344:11:151"},"referencedDeclaration":87879,"src":"3344:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"3343:19:151"},"returnParameters":{"id":88001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88000,"mutability":"mutable","name":"blocksProcessed_","nameLocation":"3393:16:151","nodeType":"VariableDeclaration","scope":88004,"src":"3386:23:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":87999,"name":"uint32","nodeType":"ElementaryTypeName","src":"3386:6:151","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"3385:25:151"},"scope":88025,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":88014,"nodeType":"FunctionDefinition","src":"3515:187:151","nodes":[],"body":{"id":88013,"nodeType":"Block","src":"3605:97:151","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3624:72:151","statements":[{"nodeType":"YulAssignment","src":"3638:48:151","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3665:2:151","type":"","value":"64"},{"name":"_self","nodeType":"YulIdentifier","src":"3669:5:151"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3661:3:151"},"nodeType":"YulFunctionCall","src":"3661:14:151"},{"name":"U32_MASK","nodeType":"YulIdentifier","src":"3677:8:151"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3657:3:151"},"nodeType":"YulFunctionCall","src":"3657:29:151"},"variableNames":[{"name":"bytesProcessed_","nodeType":"YulIdentifier","src":"3638:15:151"}]}]},"evmVersion":"london","externalReferences":[{"declaration":87886,"isOffset":false,"isSlot":false,"src":"3677:8:151","valueSize":1},{"declaration":88007,"isOffset":false,"isSlot":false,"src":"3669:5:151","valueSize":1},{"declaration":88010,"isOffset":false,"isSlot":false,"src":"3638:15:151","valueSize":1}],"id":88012,"nodeType":"InlineAssembly","src":"3615:81:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bytesProcessed","nameLocation":"3524:14:151","parameters":{"id":88008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88007,"mutability":"mutable","name":"_self","nameLocation":"3551:5:151","nodeType":"VariableDeclaration","scope":88014,"src":"3539:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":88006,"nodeType":"UserDefinedTypeName","pathNode":{"id":88005,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"3539:11:151"},"referencedDeclaration":87879,"src":"3539:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"3538:19:151"},"returnParameters":{"id":88011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88010,"mutability":"mutable","name":"bytesProcessed_","nameLocation":"3588:15:151","nodeType":"VariableDeclaration","scope":88014,"src":"3581:22:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":88009,"name":"uint32","nodeType":"ElementaryTypeName","src":"3581:6:151","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"3580:24:151"},"scope":88025,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":88024,"nodeType":"FunctionDefinition","src":"3708:161:151","nodes":[],"body":{"id":88023,"nodeType":"Block","src":"3786:83:151","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3805:58:151","statements":[{"nodeType":"YulAssignment","src":"3819:34:151","value":{"arguments":[{"name":"_self","nodeType":"YulIdentifier","src":"3837:5:151"},{"name":"U64_MASK","nodeType":"YulIdentifier","src":"3844:8:151"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3833:3:151"},"nodeType":"YulFunctionCall","src":"3833:20:151"},"variableNames":[{"name":"countered_","nodeType":"YulIdentifier","src":"3819:10:151"}]}]},"evmVersion":"london","externalReferences":[{"declaration":87883,"isOffset":false,"isSlot":false,"src":"3844:8:151","valueSize":1},{"declaration":88017,"isOffset":false,"isSlot":false,"src":"3837:5:151","valueSize":1},{"declaration":88020,"isOffset":false,"isSlot":false,"src":"3819:10:151","valueSize":1}],"id":88022,"nodeType":"InlineAssembly","src":"3796:67:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"countered","nameLocation":"3717:9:151","parameters":{"id":88018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88017,"mutability":"mutable","name":"_self","nameLocation":"3739:5:151","nodeType":"VariableDeclaration","scope":88024,"src":"3727:17:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"},"typeName":{"id":88016,"nodeType":"UserDefinedTypeName","pathNode":{"id":88015,"name":"LPPMetaData","nodeType":"IdentifierPath","referencedDeclaration":87879,"src":"3727:11:151"},"referencedDeclaration":87879,"src":"3727:11:151","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_LPPMetaData_$87879","typeString":"LPPMetaData"}},"visibility":"internal"}],"src":"3726:19:151"},"returnParameters":{"id":88021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88020,"mutability":"mutable","name":"countered_","nameLocation":"3774:10:151","nodeType":"VariableDeclaration","scope":88024,"src":"3769:15:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":88019,"name":"bool","nodeType":"ElementaryTypeName","src":"3769:4:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3768:17:151"},"scope":88025,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LPPMetadataLib","contractDependencies":[],"contractKind":"library","documentation":{"id":87880,"nodeType":"StructuredDocumentation","src":"1218:50:151","text":"@notice LPP metadata UDT extension functions."},"fullyImplemented":true,"linearizedBaseContracts":[88025],"name":"LPPMetadataLib","nameLocation":"1276:14:151","scope":88026,"usedErrors":[]}],"license":"MIT"},"id":151}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1268:2603:156:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1268:2603:156;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1268:2603:156:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"LPP metadata UDT extension functions.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/cannon/libraries/CannonTypes.sol\":\"LPPMetadataLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/libraries/CannonTypes.sol\":{\"keccak256\":\"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39\",\"dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/cannon/libraries/CannonTypes.sol":"LPPMetadataLib"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/libraries/CannonTypes.sol":{"keccak256":"0x824cf959d88683db3c2a0bdfc9c27afdd363433f94c4a9e6c8e2c2d57d25e4de","urls":["bzz-raw://18c5b0181b5db4686e270c405e007891cb86f4f37edbe12cbb4765522169ce39","dweb:/ipfs/QmTJ3N1auNzyXRo23cV2TVpyyYUh2h89nG3QMCdiPDiSPe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"LPP metadata UDT extension functions."},"devdoc":{"version":1,"kind":"dev"},"id":156}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"105:493:104:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;105:493:104;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"105:493:104:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Chain IDs for the various networks.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/Chains.sol\":\"Chains\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"scripts/Chains.sol\":{\"keccak256\":\"0x6ee0e8cc4f01b0c67df02e595c32547da3b88b93d1fe633e9b24e767e2bbc837\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f24856c4c9eaa87989592312b3d8ba09fe26ae153292da10248c0b0a8e2a7f79\",\"dweb:/ipfs/QmUSwkqvorB8Y7kvu2NLZcetGZ13PCU9vxa95573tNrZFU\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/Chains.sol":"Chains"},"evmVersion":"london","libraries":{}},"sources":{"scripts/Chains.sol":{"keccak256":"0x6ee0e8cc4f01b0c67df02e595c32547da3b88b93d1fe633e9b24e767e2bbc837","urls":["bzz-raw://f24856c4c9eaa87989592312b3d8ba09fe26ae153292da10248c0b0a8e2a7f79","dweb:/ipfs/QmUSwkqvorB8Y7kvu2NLZcetGZ13PCU9vxa95573tNrZFU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Chain IDs for the various networks."},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"scripts/Chains.sol","id":64998,"exportedSymbols":{"Chains":[64997]},"nodeType":"SourceUnit","src":"32:567:104","nodes":[{"id":64965,"nodeType":"PragmaDirective","src":"32:23:104","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":64997,"nodeType":"ContractDefinition","src":"105:493:104","nodes":[{"id":64969,"nodeType":"VariableDeclaration","src":"126:37:104","nodes":[],"constant":true,"mutability":"constant","name":"Mainnet","nameLocation":"152:7:104","scope":64997,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64967,"name":"uint256","nodeType":"ElementaryTypeName","src":"126:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":64968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"162:1:104","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":64972,"nodeType":"VariableDeclaration","src":"169:40:104","nodes":[],"constant":true,"mutability":"constant","name":"OPMainnet","nameLocation":"195:9:104","scope":64997,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64970,"name":"uint256","nodeType":"ElementaryTypeName","src":"169:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":64971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"207:2:104","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":64975,"nodeType":"VariableDeclaration","src":"215:36:104","nodes":[],"constant":true,"mutability":"constant","name":"Goerli","nameLocation":"241:6:104","scope":64997,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64973,"name":"uint256","nodeType":"ElementaryTypeName","src":"215:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"35","id":64974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"250:1:104","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"visibility":"internal"},{"id":64978,"nodeType":"VariableDeclaration","src":"257:40:104","nodes":[],"constant":true,"mutability":"constant","name":"OPGoerli","nameLocation":"283:8:104","scope":64997,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64976,"name":"uint256","nodeType":"ElementaryTypeName","src":"257:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"343230","id":64977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"294:3:104","typeDescriptions":{"typeIdentifier":"t_rational_420_by_1","typeString":"int_const 420"},"value":"420"},"visibility":"internal"},{"id":64981,"nodeType":"VariableDeclaration","src":"303:44:104","nodes":[],"constant":true,"mutability":"constant","name":"Sepolia","nameLocation":"329:7:104","scope":64997,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64979,"name":"uint256","nodeType":"ElementaryTypeName","src":"303:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3131313535313131","id":64980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"339:8:104","typeDescriptions":{"typeIdentifier":"t_rational_11155111_by_1","typeString":"int_const 11155111"},"value":"11155111"},"visibility":"internal"},{"id":64984,"nodeType":"VariableDeclaration","src":"353:46:104","nodes":[],"constant":true,"mutability":"constant","name":"OPSepolia","nameLocation":"379:9:104","scope":64997,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64982,"name":"uint256","nodeType":"ElementaryTypeName","src":"353:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3131313535343230","id":64983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"391:8:104","typeDescriptions":{"typeIdentifier":"t_rational_11155420_by_1","typeString":"int_const 11155420"},"value":"11155420"},"visibility":"internal"},{"id":64987,"nodeType":"VariableDeclaration","src":"405:43:104","nodes":[],"constant":true,"mutability":"constant","name":"LocalDevnet","nameLocation":"431:11:104","scope":64997,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64985,"name":"uint256","nodeType":"ElementaryTypeName","src":"405:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"393030","id":64986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"445:3:104","typeDescriptions":{"typeIdentifier":"t_rational_900_by_1","typeString":"int_const 900"},"value":"900"},"visibility":"internal"},{"id":64990,"nodeType":"VariableDeclaration","src":"454:45:104","nodes":[],"constant":true,"mutability":"constant","name":"OPLocalDevnet","nameLocation":"480:13:104","scope":64997,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64988,"name":"uint256","nodeType":"ElementaryTypeName","src":"454:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"393031","id":64989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"496:3:104","typeDescriptions":{"typeIdentifier":"t_rational_901_by_1","typeString":"int_const 901"},"value":"901"},"visibility":"internal"},{"id":64993,"nodeType":"VariableDeclaration","src":"505:43:104","nodes":[],"constant":true,"mutability":"constant","name":"GethDevnet","nameLocation":"531:10:104","scope":64997,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64991,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31333337","id":64992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"544:4:104","typeDescriptions":{"typeIdentifier":"t_rational_1337_by_1","typeString":"int_const 1337"},"value":"1337"},"visibility":"internal"},{"id":64996,"nodeType":"VariableDeclaration","src":"554:41:104","nodes":[],"constant":true,"mutability":"constant","name":"Hardhat","nameLocation":"580:7:104","scope":64997,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64994,"name":"uint256","nodeType":"ElementaryTypeName","src":"554:7:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3331333337","id":64995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"590:5:104","typeDescriptions":{"typeIdentifier":"t_rational_31337_by_1","typeString":"int_const 31337"},"value":"31337"},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Chains","contractDependencies":[],"contractKind":"library","documentation":{"id":64966,"nodeType":"StructuredDocumentation","src":"57:48:104","text":"@notice Chain IDs for the various networks."},"fullyImplemented":true,"linearizedBaseContracts":[64997],"name":"Chains","nameLocation":"113:6:104","scope":64998,"usedErrors":[]}],"license":"MIT"},"id":104}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"105:493:105:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;105:493:105;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"105:493:105:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Chain IDs for the various networks.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/Chains.sol\":\"Chains\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"scripts/Chains.sol\":{\"keccak256\":\"0x6ee0e8cc4f01b0c67df02e595c32547da3b88b93d1fe633e9b24e767e2bbc837\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f24856c4c9eaa87989592312b3d8ba09fe26ae153292da10248c0b0a8e2a7f79\",\"dweb:/ipfs/QmUSwkqvorB8Y7kvu2NLZcetGZ13PCU9vxa95573tNrZFU\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/Chains.sol":"Chains"},"evmVersion":"london","libraries":{}},"sources":{"scripts/Chains.sol":{"keccak256":"0x6ee0e8cc4f01b0c67df02e595c32547da3b88b93d1fe633e9b24e767e2bbc837","urls":["bzz-raw://f24856c4c9eaa87989592312b3d8ba09fe26ae153292da10248c0b0a8e2a7f79","dweb:/ipfs/QmUSwkqvorB8Y7kvu2NLZcetGZ13PCU9vxa95573tNrZFU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Chain IDs for the various networks."},"devdoc":{"version":1,"kind":"dev"},"id":105}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"check","inputs":[{"name":"_params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"_EventToExposeStructInABI__Params","inputs":[{"name":"params","type":"tuple","indexed":false,"internalType":"struct CheckBalanceLow.Params","components":[{"name":"target","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610210806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e3660046100c3565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610192565b6020810151905173ffffffffffffffffffffffffffffffffffffffff1631109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156100d557600080fd5b813567ffffffffffffffff808211156100ed57600080fd5b818401915084601f83011261010157600080fd5b81358181111561011357610113610094565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561015957610159610094565b8160405282815287602084870101111561017257600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000604082840312156101a457600080fd5b6040516040810181811067ffffffffffffffff821117156101c7576101c7610094565b604052825173ffffffffffffffffffffffffffffffffffffffff811681146101ee57600080fd5b8152602092830151928101929092525091905056fea164736f6c634300080f000a","sourceMap":"220:606:196:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e3660046100c3565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610192565b6020810151905173ffffffffffffffffffffffffffffffffffffffff1631109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156100d557600080fd5b813567ffffffffffffffff808211156100ed57600080fd5b818401915084601f83011261010157600080fd5b81358181111561011357610113610094565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561015957610159610094565b8160405282815287602084870101111561017257600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000604082840312156101a457600080fd5b6040516040810181811067ffffffffffffffff821117156101c7576101c7610094565b604052825173ffffffffffffffffffffffffffffffffffffffff811681146101ee57600080fd5b8152602092830151928101929092525091905056fea164736f6c634300080f000a","sourceMap":"220:606:196:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;562:262;;;;;;:::i;:::-;;:::i;:::-;;;1353:14:334;;1346:22;1328:41;;1316:2;1301:18;562:262:196;;;;;;;;622:13;647:20;681:7;670:29;;;;;;;;;;;;:::i;:::-;801:16;;;;777:13;;:21;;;:40;;562:262;-1:-1:-1;;;562:262:196:o;14:184:334:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:334;203:980;-1:-1:-1;;;;;203:980:334:o;1380:630::-;1475:6;1528:2;1516:9;1507:7;1503:23;1499:32;1496:52;;;1544:1;1541;1534:12;1496:52;1577:2;1571:9;1619:2;1611:6;1607:15;1688:6;1676:10;1673:22;1652:18;1640:10;1637:34;1634:62;1631:88;;;1699:18;;:::i;:::-;1735:2;1728:22;1772:16;;1828:42;1817:54;;1807:65;;1797:93;;1886:1;1883;1876:12;1797:93;1899:21;;1974:2;1959:18;;;1953:25;1936:15;;;1929:50;;;;-1:-1:-1;1906:6:334;1380:630;-1:-1:-1;1380:630:334:o","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct CheckBalanceLow.Params\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"_EventToExposeStructInABI__Params\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_params\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256))\":{\"params\":{\"params\":\"Parameters to encode.\"}}},\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"title\":\"CheckBalanceLow\",\"version\":1},\"userdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256))\":{\"notice\":\"External event used to help client-side tooling encode parameters.\"}},\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"notice\":\"DripCheck for checking if an account's balance is below a given threshold.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckBalanceLow.sol\":\"CheckBalanceLow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckBalanceLow.sol\":{\"keccak256\":\"0x72ed5ca6c16ff34b2131634cd2851713312b31cfa2a9a92f4ffdf8abcba1724e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5217c07c62d91054a9e7ce39242e240506a6045ed9433c8152e28f04c271fda1\",\"dweb:/ipfs/QmNyt4VXhHi7wkKPPPiaXhFF7fHMcoNn2D8MZXzDsEyHF2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct CheckBalanceLow.Params","name":"params","type":"tuple","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}],"indexed":false}],"type":"event","name":"_EventToExposeStructInABI__Params","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_params","type":"bytes"}],"stateMutability":"view","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckBalanceLow.sol":"CheckBalanceLow"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckBalanceLow.sol":{"keccak256":"0x72ed5ca6c16ff34b2131634cd2851713312b31cfa2a9a92f4ffdf8abcba1724e","urls":["bzz-raw://5217c07c62d91054a9e7ce39242e240506a6045ed9433c8152e28f04c271fda1","dweb:/ipfs/QmNyt4VXhHi7wkKPPPiaXhFF7fHMcoNn2D8MZXzDsEyHF2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"events":{"_EventToExposeStructInABI__Params((address,uint256))":{"notice":"External event used to help client-side tooling encode parameters."}},"notice":"DripCheck for checking if an account's balance is below a given threshold."},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"events":{"_EventToExposeStructInABI__Params((address,uint256))":{"params":{"params":"Parameters to encode."}}},"title":"CheckBalanceLow"},"ast":{"absolutePath":"src/periphery/drippie/dripchecks/CheckBalanceLow.sol","id":96687,"exportedSymbols":{"CheckBalanceLow":[96686],"IDripCheck":[96639]},"nodeType":"SourceUnit","src":"32:795:196","nodes":[{"id":96641,"nodeType":"PragmaDirective","src":"32:23:196","nodes":[],"literals":["solidity","0.8",".15"]},{"id":96643,"nodeType":"ImportDirective","src":"57:47:196","nodes":[],"absolutePath":"src/periphery/drippie/IDripCheck.sol","file":"../IDripCheck.sol","nameLocation":"-1:-1:-1","scope":96687,"sourceUnit":96640,"symbolAliases":[{"foreign":{"id":96642,"name":"IDripCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96639,"src":"66:10:196","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":96686,"nodeType":"ContractDefinition","src":"220:606:196","nodes":[{"id":96651,"nodeType":"StructDefinition","src":"265:72:196","nodes":[],"canonicalName":"CheckBalanceLow.Params","members":[{"constant":false,"id":96648,"mutability":"mutable","name":"target","nameLocation":"297:6:196","nodeType":"VariableDeclaration","scope":96651,"src":"289:14:196","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96647,"name":"address","nodeType":"ElementaryTypeName","src":"289:7:196","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":96650,"mutability":"mutable","name":"threshold","nameLocation":"321:9:196","nodeType":"VariableDeclaration","scope":96651,"src":"313:17:196","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96649,"name":"uint256","nodeType":"ElementaryTypeName","src":"313:7:196","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Params","nameLocation":"272:6:196","scope":96686,"visibility":"public"},{"id":96657,"nodeType":"EventDefinition","src":"470:55:196","nodes":[],"anonymous":false,"documentation":{"id":96652,"nodeType":"StructuredDocumentation","src":"343:122:196","text":"@notice External event used to help client-side tooling encode parameters.\n @param params Parameters to encode."},"eventSelector":"d675e8c1bf2f28f052b74c311412663dd60576c00ce3346b9a6d614df2b0b60b","name":"_EventToExposeStructInABI__Params","nameLocation":"476:33:196","parameters":{"id":96656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96655,"indexed":false,"mutability":"mutable","name":"params","nameLocation":"517:6:196","nodeType":"VariableDeclaration","scope":96657,"src":"510:13:196","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96651_memory_ptr","typeString":"struct CheckBalanceLow.Params"},"typeName":{"id":96654,"nodeType":"UserDefinedTypeName","pathNode":{"id":96653,"name":"Params","nodeType":"IdentifierPath","referencedDeclaration":96651,"src":"510:6:196"},"referencedDeclaration":96651,"src":"510:6:196","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96651_storage_ptr","typeString":"struct CheckBalanceLow.Params"}},"visibility":"internal"}],"src":"509:15:196"}},{"id":96685,"nodeType":"FunctionDefinition","src":"562:262:196","nodes":[],"body":{"id":96684,"nodeType":"Block","src":"637:187:196","nodes":[],"statements":[{"assignments":[96667],"declarations":[{"constant":false,"id":96667,"mutability":"mutable","name":"params","nameLocation":"661:6:196","nodeType":"VariableDeclaration","scope":96684,"src":"647:20:196","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96651_memory_ptr","typeString":"struct CheckBalanceLow.Params"},"typeName":{"id":96666,"nodeType":"UserDefinedTypeName","pathNode":{"id":96665,"name":"Params","nodeType":"IdentifierPath","referencedDeclaration":96651,"src":"647:6:196"},"referencedDeclaration":96651,"src":"647:6:196","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96651_storage_ptr","typeString":"struct CheckBalanceLow.Params"}},"visibility":"internal"}],"id":96674,"initialValue":{"arguments":[{"id":96670,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96660,"src":"681:7:196","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":96671,"name":"Params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96651,"src":"691:6:196","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Params_$96651_storage_ptr_$","typeString":"type(struct CheckBalanceLow.Params storage pointer)"}}],"id":96672,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"690:8:196","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Params_$96651_storage_ptr_$","typeString":"type(struct CheckBalanceLow.Params storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Params_$96651_storage_ptr_$","typeString":"type(struct CheckBalanceLow.Params storage pointer)"}],"expression":{"id":96668,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"670:3:196","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":96669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"670:10:196","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":96673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"670:29:196","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96651_memory_ptr","typeString":"struct CheckBalanceLow.Params memory"}},"nodeType":"VariableDeclarationStatement","src":"647:52:196"},{"expression":{"id":96682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":96675,"name":"execute_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96663,"src":"766:8:196","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":96681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":96676,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96667,"src":"777:6:196","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96651_memory_ptr","typeString":"struct CheckBalanceLow.Params memory"}},"id":96677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"target","nodeType":"MemberAccess","referencedDeclaration":96648,"src":"777:13:196","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":96678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"777:21:196","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":96679,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96667,"src":"801:6:196","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96651_memory_ptr","typeString":"struct CheckBalanceLow.Params memory"}},"id":96680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":96650,"src":"801:16:196","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"777:40:196","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"766:51:196","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":96683,"nodeType":"ExpressionStatement","src":"766:51:196"}]},"baseFunctions":[96638],"documentation":{"id":96658,"nodeType":"StructuredDocumentation","src":"531:26:196","text":"@inheritdoc IDripCheck"},"functionSelector":"c64b3bb5","implemented":true,"kind":"function","modifiers":[],"name":"check","nameLocation":"571:5:196","parameters":{"id":96661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96660,"mutability":"mutable","name":"_params","nameLocation":"590:7:196","nodeType":"VariableDeclaration","scope":96685,"src":"577:20:196","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":96659,"name":"bytes","nodeType":"ElementaryTypeName","src":"577:5:196","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"576:22:196"},"returnParameters":{"id":96664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96663,"mutability":"mutable","name":"execute_","nameLocation":"627:8:196","nodeType":"VariableDeclaration","scope":96685,"src":"622:13:196","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":96662,"name":"bool","nodeType":"ElementaryTypeName","src":"622:4:196","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"621:15:196"},"scope":96686,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":96645,"name":"IDripCheck","nodeType":"IdentifierPath","referencedDeclaration":96639,"src":"248:10:196"},"id":96646,"nodeType":"InheritanceSpecifier","src":"248:10:196"}],"canonicalName":"CheckBalanceLow","contractDependencies":[],"contractKind":"contract","documentation":{"id":96644,"nodeType":"StructuredDocumentation","src":"106:114:196","text":"@title CheckBalanceLow\n @notice DripCheck for checking if an account's balance is below a given threshold."},"fullyImplemented":true,"linearizedBaseContracts":[96686,96639],"name":"CheckBalanceLow","nameLocation":"229:15:196","scope":96687,"usedErrors":[]}],"license":"MIT"},"id":196}
{"abi":[{"type":"function","name":"check","inputs":[{"name":"_params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"_EventToExposeStructInABI__Params","inputs":[{"name":"params","type":"tuple","indexed":false,"internalType":"struct CheckBalanceLow.Params","components":[{"name":"target","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610210806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e3660046100c3565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610192565b6020810151905173ffffffffffffffffffffffffffffffffffffffff1631109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156100d557600080fd5b813567ffffffffffffffff808211156100ed57600080fd5b818401915084601f83011261010157600080fd5b81358181111561011357610113610094565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561015957610159610094565b8160405282815287602084870101111561017257600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000604082840312156101a457600080fd5b6040516040810181811067ffffffffffffffff821117156101c7576101c7610094565b604052825173ffffffffffffffffffffffffffffffffffffffff811681146101ee57600080fd5b8152602092830151928101929092525091905056fea164736f6c634300080f000a","sourceMap":"220:606:207:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e3660046100c3565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610192565b6020810151905173ffffffffffffffffffffffffffffffffffffffff1631109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156100d557600080fd5b813567ffffffffffffffff808211156100ed57600080fd5b818401915084601f83011261010157600080fd5b81358181111561011357610113610094565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561015957610159610094565b8160405282815287602084870101111561017257600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000604082840312156101a457600080fd5b6040516040810181811067ffffffffffffffff821117156101c7576101c7610094565b604052825173ffffffffffffffffffffffffffffffffffffffff811681146101ee57600080fd5b8152602092830151928101929092525091905056fea164736f6c634300080f000a","sourceMap":"220:606:207:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;562:262;;;;;;:::i;:::-;;:::i;:::-;;;1353:14:350;;1346:22;1328:41;;1316:2;1301:18;562:262:207;;;;;;;;622:13;647:20;681:7;670:29;;;;;;;;;;;;:::i;:::-;801:16;;;;777:13;;:21;;;:40;;562:262;-1:-1:-1;;;562:262:207:o;14:184:350:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:350;203:980;-1:-1:-1;;;;;203:980:350:o;1380:631::-;1476:6;1529:2;1517:9;1508:7;1504:23;1500:32;1497:52;;;1545:1;1542;1535:12;1497:52;1578:2;1572:9;1620:2;1612:6;1608:15;1689:6;1677:10;1674:22;1653:18;1641:10;1638:34;1635:62;1632:88;;;1700:18;;:::i;:::-;1736:2;1729:22;1773:16;;1829:42;1818:54;;1808:65;;1798:93;;1887:1;1884;1877:12;1798:93;1900:21;;1975:2;1960:18;;;1954:25;1937:15;;;1930:50;;;;-1:-1:-1;1907:6:350;1380:631;-1:-1:-1;1380:631:350:o","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct CheckBalanceLow.Params\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"_EventToExposeStructInABI__Params\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_params\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256))\":{\"params\":{\"params\":\"Parameters to encode.\"}}},\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"title\":\"CheckBalanceLow\",\"version\":1},\"userdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256))\":{\"notice\":\"External event used to help client-side tooling encode parameters.\"}},\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"notice\":\"DripCheck for checking if an account's balance is below a given threshold.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckBalanceLow.sol\":\"CheckBalanceLow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckBalanceLow.sol\":{\"keccak256\":\"0x72ed5ca6c16ff34b2131634cd2851713312b31cfa2a9a92f4ffdf8abcba1724e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5217c07c62d91054a9e7ce39242e240506a6045ed9433c8152e28f04c271fda1\",\"dweb:/ipfs/QmNyt4VXhHi7wkKPPPiaXhFF7fHMcoNn2D8MZXzDsEyHF2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct CheckBalanceLow.Params","name":"params","type":"tuple","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}],"indexed":false}],"type":"event","name":"_EventToExposeStructInABI__Params","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_params","type":"bytes"}],"stateMutability":"view","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckBalanceLow.sol":"CheckBalanceLow"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckBalanceLow.sol":{"keccak256":"0x72ed5ca6c16ff34b2131634cd2851713312b31cfa2a9a92f4ffdf8abcba1724e","urls":["bzz-raw://5217c07c62d91054a9e7ce39242e240506a6045ed9433c8152e28f04c271fda1","dweb:/ipfs/QmNyt4VXhHi7wkKPPPiaXhFF7fHMcoNn2D8MZXzDsEyHF2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"events":{"_EventToExposeStructInABI__Params((address,uint256))":{"notice":"External event used to help client-side tooling encode parameters."}},"notice":"DripCheck for checking if an account's balance is below a given threshold."},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"events":{"_EventToExposeStructInABI__Params((address,uint256))":{"params":{"params":"Parameters to encode."}}},"title":"CheckBalanceLow"},"id":207}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"check","inputs":[{"name":"_params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"_EventToExposeStructInABI__Params","inputs":[{"name":"params","type":"tuple","indexed":false,"internalType":"struct CheckGelatoLow.Params","components":[{"name":"treasury","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}]}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506102e3806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e366004610160565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610258565b6020810151815160408084015190517fb47064c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6024820152939450919291169063b47064c890604401602060405180830381865afa158015610105573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012991906102bd565b109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561017257600080fd5b813567ffffffffffffffff8082111561018a57600080fd5b818401915084601f83011261019e57600080fd5b8135818111156101b0576101b0610131565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156101f6576101f6610131565b8160405282815287602084870101111561020f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b805173ffffffffffffffffffffffffffffffffffffffff8116811461025357600080fd5b919050565b60006060828403121561026a57600080fd5b6040516060810181811067ffffffffffffffff8211171561028d5761028d610131565b6040526102998361022f565b8152602083015160208201526102b16040840161022f565b60408201529392505050565b6000602082840312156102cf57600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"352:823:197:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e366004610160565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610258565b6020810151815160408084015190517fb47064c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6024820152939450919291169063b47064c890604401602060405180830381865afa158015610105573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012991906102bd565b109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561017257600080fd5b813567ffffffffffffffff8082111561018a57600080fd5b818401915084601f83011261019e57600080fd5b8135818111156101b0576101b0610131565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156101f6576101f6610131565b8160405282815287602084870101111561020f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b805173ffffffffffffffffffffffffffffffffffffffff8116811461025357600080fd5b919050565b60006060828403121561026a57600080fd5b6040516060810181811067ffffffffffffffff8211171561028d5761028d610131565b6040526102998361022f565b8152602083015160208201526102b16040840161022f565b60408201529392505050565b6000602082840312156102cf57600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"352:823:197:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;722:451;;;;;;:::i;:::-;;:::i;:::-;;;1353:14:334;;1346:22;1328:41;;1316:2;1301:18;722:451:197;;;;;;;;782:13;807:20;841:7;830:29;;;;;;;;;;;;:::i;:::-;1150:16;;;;961:15;;1008:16;;;;;945:202;;;;;:49;2451:15:334;;;945:202:197;;;2433:34:334;1095:42:197;2483:18:334;;;2476:43;807:52:197;;-1:-1:-1;1150:16:197;;945:49;;;;;2345:18:334;;945:202:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:221;;722:451;-1:-1:-1;;;722:451:197:o;14:184:334:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:334;203:980;-1:-1:-1;;;;;203:980:334:o;1380:200::-;1459:13;;1512:42;1501:54;;1491:65;;1481:93;;1570:1;1567;1560:12;1481:93;1380:200;;;:::o;1585:608::-;1680:6;1733:2;1721:9;1712:7;1708:23;1704:32;1701:52;;;1749:1;1746;1739:12;1701:52;1782:2;1776:9;1824:2;1816:6;1812:15;1893:6;1881:10;1878:22;1857:18;1845:10;1842:34;1839:62;1836:88;;;1904:18;;:::i;:::-;1940:2;1933:22;1979:40;2009:9;1979:40;:::i;:::-;1971:6;1964:56;2074:2;2063:9;2059:18;2053:25;2048:2;2040:6;2036:15;2029:50;2112:49;2157:2;2146:9;2142:18;2112:49;:::i;:::-;2107:2;2095:15;;2088:74;2099:6;1585:608;-1:-1:-1;;;1585:608:334:o;2530:184::-;2600:6;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;2692:16:334;;2530:184;-1:-1:-1;2530:184:334:o","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct CheckGelatoLow.Params\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"_EventToExposeStructInABI__Params\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_params\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256,address))\":{\"params\":{\"params\":\"Parameters to encode.\"}}},\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"title\":\"CheckGelatoLow\",\"version\":1},\"userdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256,address))\":{\"notice\":\"External event used to help client-side tooling encode parameters.\"}},\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"notice\":\"DripCheck for checking if an account's Gelato ETH balance is below some threshold.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":\"CheckGelatoLow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":{\"keccak256\":\"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e\",\"dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct CheckGelatoLow.Params","name":"params","type":"tuple","components":[{"internalType":"address","name":"treasury","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"indexed":false}],"type":"event","name":"_EventToExposeStructInABI__Params","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_params","type":"bytes"}],"stateMutability":"view","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":"CheckGelatoLow"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":{"keccak256":"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289","urls":["bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e","dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"events":{"_EventToExposeStructInABI__Params((address,uint256,address))":{"notice":"External event used to help client-side tooling encode parameters."}},"notice":"DripCheck for checking if an account's Gelato ETH balance is below some threshold."},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"events":{"_EventToExposeStructInABI__Params((address,uint256,address))":{"params":{"params":"Parameters to encode."}}},"title":"CheckGelatoLow"},"ast":{"absolutePath":"src/periphery/drippie/dripchecks/CheckGelatoLow.sol","id":96752,"exportedSymbols":{"CheckGelatoLow":[96751],"IDripCheck":[96639],"IGelatoTreasury":[96700]},"nodeType":"SourceUnit","src":"32:1144:197","nodes":[{"id":96688,"nodeType":"PragmaDirective","src":"32:23:197","nodes":[],"literals":["solidity","0.8",".15"]},{"id":96690,"nodeType":"ImportDirective","src":"57:47:197","nodes":[],"absolutePath":"src/periphery/drippie/IDripCheck.sol","file":"../IDripCheck.sol","nameLocation":"-1:-1:-1","scope":96752,"sourceUnit":96640,"symbolAliases":[{"foreign":{"id":96689,"name":"IDripCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96639,"src":"66:10:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":96700,"nodeType":"ContractDefinition","src":"106:123:197","nodes":[{"id":96699,"nodeType":"FunctionDefinition","src":"138:89:197","nodes":[],"functionSelector":"b47064c8","implemented":false,"kind":"function","modifiers":[],"name":"userTokenBalance","nameLocation":"147:16:197","parameters":{"id":96695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96692,"mutability":"mutable","name":"_user","nameLocation":"172:5:197","nodeType":"VariableDeclaration","scope":96699,"src":"164:13:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96691,"name":"address","nodeType":"ElementaryTypeName","src":"164:7:197","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":96694,"mutability":"mutable","name":"_token","nameLocation":"187:6:197","nodeType":"VariableDeclaration","scope":96699,"src":"179:14:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96693,"name":"address","nodeType":"ElementaryTypeName","src":"179:7:197","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"163:31:197"},"returnParameters":{"id":96698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":96699,"src":"218:7:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96696,"name":"uint256","nodeType":"ElementaryTypeName","src":"218:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"217:9:197"},"scope":96700,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IGelatoTreasury","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[96700],"name":"IGelatoTreasury","nameLocation":"116:15:197","scope":96752,"usedErrors":[]},{"id":96751,"nodeType":"ContractDefinition","src":"352:823:197","nodes":[{"id":96710,"nodeType":"StructDefinition","src":"396:101:197","nodes":[],"canonicalName":"CheckGelatoLow.Params","members":[{"constant":false,"id":96705,"mutability":"mutable","name":"treasury","nameLocation":"428:8:197","nodeType":"VariableDeclaration","scope":96710,"src":"420:16:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96704,"name":"address","nodeType":"ElementaryTypeName","src":"420:7:197","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":96707,"mutability":"mutable","name":"threshold","nameLocation":"454:9:197","nodeType":"VariableDeclaration","scope":96710,"src":"446:17:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96706,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":96709,"mutability":"mutable","name":"recipient","nameLocation":"481:9:197","nodeType":"VariableDeclaration","scope":96710,"src":"473:17:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96708,"name":"address","nodeType":"ElementaryTypeName","src":"473:7:197","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Params","nameLocation":"403:6:197","scope":96751,"visibility":"public"},{"id":96716,"nodeType":"EventDefinition","src":"630:55:197","nodes":[],"anonymous":false,"documentation":{"id":96711,"nodeType":"StructuredDocumentation","src":"503:122:197","text":"@notice External event used to help client-side tooling encode parameters.\n @param params Parameters to encode."},"eventSelector":"70b37aa219c5dbaa4c32bf3eb790cd0139092a31a18b69cec0036f7d67c342bc","name":"_EventToExposeStructInABI__Params","nameLocation":"636:33:197","parameters":{"id":96715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96714,"indexed":false,"mutability":"mutable","name":"params","nameLocation":"677:6:197","nodeType":"VariableDeclaration","scope":96716,"src":"670:13:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_memory_ptr","typeString":"struct CheckGelatoLow.Params"},"typeName":{"id":96713,"nodeType":"UserDefinedTypeName","pathNode":{"id":96712,"name":"Params","nodeType":"IdentifierPath","referencedDeclaration":96710,"src":"670:6:197"},"referencedDeclaration":96710,"src":"670:6:197","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_storage_ptr","typeString":"struct CheckGelatoLow.Params"}},"visibility":"internal"}],"src":"669:15:197"}},{"id":96750,"nodeType":"FunctionDefinition","src":"722:451:197","nodes":[],"body":{"id":96749,"nodeType":"Block","src":"797:376:197","nodes":[],"statements":[{"assignments":[96726],"declarations":[{"constant":false,"id":96726,"mutability":"mutable","name":"params","nameLocation":"821:6:197","nodeType":"VariableDeclaration","scope":96749,"src":"807:20:197","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_memory_ptr","typeString":"struct CheckGelatoLow.Params"},"typeName":{"id":96725,"nodeType":"UserDefinedTypeName","pathNode":{"id":96724,"name":"Params","nodeType":"IdentifierPath","referencedDeclaration":96710,"src":"807:6:197"},"referencedDeclaration":96710,"src":"807:6:197","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_storage_ptr","typeString":"struct CheckGelatoLow.Params"}},"visibility":"internal"}],"id":96733,"initialValue":{"arguments":[{"id":96729,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96719,"src":"841:7:197","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":96730,"name":"Params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96710,"src":"851:6:197","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Params_$96710_storage_ptr_$","typeString":"type(struct CheckGelatoLow.Params storage pointer)"}}],"id":96731,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"850:8:197","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Params_$96710_storage_ptr_$","typeString":"type(struct CheckGelatoLow.Params storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Params_$96710_storage_ptr_$","typeString":"type(struct CheckGelatoLow.Params storage pointer)"}],"expression":{"id":96727,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"830:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":96728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"830:10:197","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":96732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"830:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"nodeType":"VariableDeclarationStatement","src":"807:52:197"},{"expression":{"id":96747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":96734,"name":"execute_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96722,"src":"934:8:197","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":96746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":96740,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96726,"src":"1008:6:197","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"id":96741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"recipient","nodeType":"MemberAccess","referencedDeclaration":96709,"src":"1008:16:197","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":96742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1095:42:197","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":96736,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96726,"src":"961:6:197","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"id":96737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"treasury","nodeType":"MemberAccess","referencedDeclaration":96705,"src":"961:15:197","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":96735,"name":"IGelatoTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96700,"src":"945:15:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGelatoTreasury_$96700_$","typeString":"type(contract IGelatoTreasury)"}},"id":96738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"945:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGelatoTreasury_$96700","typeString":"contract IGelatoTreasury"}},"id":96739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"userTokenBalance","nodeType":"MemberAccess","referencedDeclaration":96699,"src":"945:49:197","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":96743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"945:202:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":96744,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96726,"src":"1150:6:197","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"id":96745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":96707,"src":"1150:16:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"945:221:197","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"934:232:197","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":96748,"nodeType":"ExpressionStatement","src":"934:232:197"}]},"baseFunctions":[96638],"documentation":{"id":96717,"nodeType":"StructuredDocumentation","src":"691:26:197","text":"@inheritdoc IDripCheck"},"functionSelector":"c64b3bb5","implemented":true,"kind":"function","modifiers":[],"name":"check","nameLocation":"731:5:197","parameters":{"id":96720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96719,"mutability":"mutable","name":"_params","nameLocation":"750:7:197","nodeType":"VariableDeclaration","scope":96750,"src":"737:20:197","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":96718,"name":"bytes","nodeType":"ElementaryTypeName","src":"737:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"736:22:197"},"returnParameters":{"id":96723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96722,"mutability":"mutable","name":"execute_","nameLocation":"787:8:197","nodeType":"VariableDeclaration","scope":96750,"src":"782:13:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":96721,"name":"bool","nodeType":"ElementaryTypeName","src":"782:4:197","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"781:15:197"},"scope":96751,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":96702,"name":"IDripCheck","nodeType":"IdentifierPath","referencedDeclaration":96639,"src":"379:10:197"},"id":96703,"nodeType":"InheritanceSpecifier","src":"379:10:197"}],"canonicalName":"CheckGelatoLow","contractDependencies":[],"contractKind":"contract","documentation":{"id":96701,"nodeType":"StructuredDocumentation","src":"231:121:197","text":"@title CheckGelatoLow\n @notice DripCheck for checking if an account's Gelato ETH balance is below some threshold."},"fullyImplemented":true,"linearizedBaseContracts":[96751,96639],"name":"CheckGelatoLow","nameLocation":"361:14:197","scope":96752,"usedErrors":[]}],"license":"MIT"},"id":197}
{"abi":[{"type":"function","name":"check","inputs":[{"name":"_params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"_EventToExposeStructInABI__Params","inputs":[{"name":"params","type":"tuple","indexed":false,"internalType":"struct CheckGelatoLow.Params","components":[{"name":"treasury","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}]}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506102e3806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e366004610160565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610258565b6020810151815160408084015190517fb47064c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6024820152939450919291169063b47064c890604401602060405180830381865afa158015610105573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012991906102bd565b109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561017257600080fd5b813567ffffffffffffffff8082111561018a57600080fd5b818401915084601f83011261019e57600080fd5b8135818111156101b0576101b0610131565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156101f6576101f6610131565b8160405282815287602084870101111561020f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b805173ffffffffffffffffffffffffffffffffffffffff8116811461025357600080fd5b919050565b60006060828403121561026a57600080fd5b6040516060810181811067ffffffffffffffff8211171561028d5761028d610131565b6040526102998361022f565b8152602083015160208201526102b16040840161022f565b60408201529392505050565b6000602082840312156102cf57600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"352:823:208:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004361003e366004610160565b610057565b604051901515815260200160405180910390f35b6000808280602001905181019061006e9190610258565b6020810151815160408084015190517fb47064c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6024820152939450919291169063b47064c890604401602060405180830381865afa158015610105573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012991906102bd565b109392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561017257600080fd5b813567ffffffffffffffff8082111561018a57600080fd5b818401915084601f83011261019e57600080fd5b8135818111156101b0576101b0610131565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156101f6576101f6610131565b8160405282815287602084870101111561020f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b805173ffffffffffffffffffffffffffffffffffffffff8116811461025357600080fd5b919050565b60006060828403121561026a57600080fd5b6040516060810181811067ffffffffffffffff8211171561028d5761028d610131565b6040526102998361022f565b8152602083015160208201526102b16040840161022f565b60408201529392505050565b6000602082840312156102cf57600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"352:823:208:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;722:451;;;;;;:::i;:::-;;:::i;:::-;;;1353:14:350;;1346:22;1328:41;;1316:2;1301:18;722:451:208;;;;;;;;782:13;807:20;841:7;830:29;;;;;;;;;;;;:::i;:::-;1150:16;;;;961:15;;1008:16;;;;;945:202;;;;;:49;2452:15:350;;;945:202:208;;;2434:34:350;1095:42:208;2484:18:350;;;2477:43;807:52:208;;-1:-1:-1;1150:16:208;;945:49;;;;;2346:18:350;;945:202:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:221;;722:451;-1:-1:-1;;;722:451:208:o;14:184:350:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:350;203:980;-1:-1:-1;;;;;203:980:350:o;1380:200::-;1459:13;;1512:42;1501:54;;1491:65;;1481:93;;1570:1;1567;1560:12;1481:93;1380:200;;;:::o;1585:609::-;1681:6;1734:2;1722:9;1713:7;1709:23;1705:32;1702:52;;;1750:1;1747;1740:12;1702:52;1783:2;1777:9;1825:2;1817:6;1813:15;1894:6;1882:10;1879:22;1858:18;1846:10;1843:34;1840:62;1837:88;;;1905:18;;:::i;:::-;1941:2;1934:22;1980:40;2010:9;1980:40;:::i;:::-;1972:6;1965:56;2075:2;2064:9;2060:18;2054:25;2049:2;2041:6;2037:15;2030:50;2113:49;2158:2;2147:9;2143:18;2113:49;:::i;:::-;2108:2;2096:15;;2089:74;2100:6;1585:609;-1:-1:-1;;;1585:609:350:o;2531:184::-;2601:6;2654:2;2642:9;2633:7;2629:23;2625:32;2622:52;;;2670:1;2667;2660:12;2622:52;-1:-1:-1;2693:16:350;;2531:184;-1:-1:-1;2531:184:350:o","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct CheckGelatoLow.Params\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"_EventToExposeStructInABI__Params\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_params\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256,address))\":{\"params\":{\"params\":\"Parameters to encode.\"}}},\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"title\":\"CheckGelatoLow\",\"version\":1},\"userdoc\":{\"events\":{\"_EventToExposeStructInABI__Params((address,uint256,address))\":{\"notice\":\"External event used to help client-side tooling encode parameters.\"}},\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"notice\":\"DripCheck for checking if an account's Gelato ETH balance is below some threshold.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":\"CheckGelatoLow\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":{\"keccak256\":\"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e\",\"dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct CheckGelatoLow.Params","name":"params","type":"tuple","components":[{"internalType":"address","name":"treasury","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"indexed":false}],"type":"event","name":"_EventToExposeStructInABI__Params","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_params","type":"bytes"}],"stateMutability":"view","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":"CheckGelatoLow"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":{"keccak256":"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289","urls":["bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e","dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"events":{"_EventToExposeStructInABI__Params((address,uint256,address))":{"notice":"External event used to help client-side tooling encode parameters."}},"notice":"DripCheck for checking if an account's Gelato ETH balance is below some threshold."},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"events":{"_EventToExposeStructInABI__Params((address,uint256,address))":{"params":{"params":"Parameters to encode."}}},"title":"CheckGelatoLow"},"id":208}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"userTokenBalance","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"userTokenBalance(address,address)":"b47064c8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"userTokenBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":\"IGelatoTreasury\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":{\"keccak256\":\"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e\",\"dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"userTokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":"IGelatoTreasury"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":{"keccak256":"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289","urls":["bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e","dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/periphery/drippie/dripchecks/CheckGelatoLow.sol","id":96752,"exportedSymbols":{"CheckGelatoLow":[96751],"IDripCheck":[96639],"IGelatoTreasury":[96700]},"nodeType":"SourceUnit","src":"32:1144:197","nodes":[{"id":96688,"nodeType":"PragmaDirective","src":"32:23:197","nodes":[],"literals":["solidity","0.8",".15"]},{"id":96690,"nodeType":"ImportDirective","src":"57:47:197","nodes":[],"absolutePath":"src/periphery/drippie/IDripCheck.sol","file":"../IDripCheck.sol","nameLocation":"-1:-1:-1","scope":96752,"sourceUnit":96640,"symbolAliases":[{"foreign":{"id":96689,"name":"IDripCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96639,"src":"66:10:197","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":96700,"nodeType":"ContractDefinition","src":"106:123:197","nodes":[{"id":96699,"nodeType":"FunctionDefinition","src":"138:89:197","nodes":[],"functionSelector":"b47064c8","implemented":false,"kind":"function","modifiers":[],"name":"userTokenBalance","nameLocation":"147:16:197","parameters":{"id":96695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96692,"mutability":"mutable","name":"_user","nameLocation":"172:5:197","nodeType":"VariableDeclaration","scope":96699,"src":"164:13:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96691,"name":"address","nodeType":"ElementaryTypeName","src":"164:7:197","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":96694,"mutability":"mutable","name":"_token","nameLocation":"187:6:197","nodeType":"VariableDeclaration","scope":96699,"src":"179:14:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96693,"name":"address","nodeType":"ElementaryTypeName","src":"179:7:197","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"163:31:197"},"returnParameters":{"id":96698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":96699,"src":"218:7:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96696,"name":"uint256","nodeType":"ElementaryTypeName","src":"218:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"217:9:197"},"scope":96700,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IGelatoTreasury","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[96700],"name":"IGelatoTreasury","nameLocation":"116:15:197","scope":96752,"usedErrors":[]},{"id":96751,"nodeType":"ContractDefinition","src":"352:823:197","nodes":[{"id":96710,"nodeType":"StructDefinition","src":"396:101:197","nodes":[],"canonicalName":"CheckGelatoLow.Params","members":[{"constant":false,"id":96705,"mutability":"mutable","name":"treasury","nameLocation":"428:8:197","nodeType":"VariableDeclaration","scope":96710,"src":"420:16:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96704,"name":"address","nodeType":"ElementaryTypeName","src":"420:7:197","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":96707,"mutability":"mutable","name":"threshold","nameLocation":"454:9:197","nodeType":"VariableDeclaration","scope":96710,"src":"446:17:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96706,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":96709,"mutability":"mutable","name":"recipient","nameLocation":"481:9:197","nodeType":"VariableDeclaration","scope":96710,"src":"473:17:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96708,"name":"address","nodeType":"ElementaryTypeName","src":"473:7:197","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Params","nameLocation":"403:6:197","scope":96751,"visibility":"public"},{"id":96716,"nodeType":"EventDefinition","src":"630:55:197","nodes":[],"anonymous":false,"documentation":{"id":96711,"nodeType":"StructuredDocumentation","src":"503:122:197","text":"@notice External event used to help client-side tooling encode parameters.\n @param params Parameters to encode."},"eventSelector":"70b37aa219c5dbaa4c32bf3eb790cd0139092a31a18b69cec0036f7d67c342bc","name":"_EventToExposeStructInABI__Params","nameLocation":"636:33:197","parameters":{"id":96715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96714,"indexed":false,"mutability":"mutable","name":"params","nameLocation":"677:6:197","nodeType":"VariableDeclaration","scope":96716,"src":"670:13:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_memory_ptr","typeString":"struct CheckGelatoLow.Params"},"typeName":{"id":96713,"nodeType":"UserDefinedTypeName","pathNode":{"id":96712,"name":"Params","nodeType":"IdentifierPath","referencedDeclaration":96710,"src":"670:6:197"},"referencedDeclaration":96710,"src":"670:6:197","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_storage_ptr","typeString":"struct CheckGelatoLow.Params"}},"visibility":"internal"}],"src":"669:15:197"}},{"id":96750,"nodeType":"FunctionDefinition","src":"722:451:197","nodes":[],"body":{"id":96749,"nodeType":"Block","src":"797:376:197","nodes":[],"statements":[{"assignments":[96726],"declarations":[{"constant":false,"id":96726,"mutability":"mutable","name":"params","nameLocation":"821:6:197","nodeType":"VariableDeclaration","scope":96749,"src":"807:20:197","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_memory_ptr","typeString":"struct CheckGelatoLow.Params"},"typeName":{"id":96725,"nodeType":"UserDefinedTypeName","pathNode":{"id":96724,"name":"Params","nodeType":"IdentifierPath","referencedDeclaration":96710,"src":"807:6:197"},"referencedDeclaration":96710,"src":"807:6:197","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_storage_ptr","typeString":"struct CheckGelatoLow.Params"}},"visibility":"internal"}],"id":96733,"initialValue":{"arguments":[{"id":96729,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96719,"src":"841:7:197","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":96730,"name":"Params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96710,"src":"851:6:197","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Params_$96710_storage_ptr_$","typeString":"type(struct CheckGelatoLow.Params storage pointer)"}}],"id":96731,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"850:8:197","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Params_$96710_storage_ptr_$","typeString":"type(struct CheckGelatoLow.Params storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Params_$96710_storage_ptr_$","typeString":"type(struct CheckGelatoLow.Params storage pointer)"}],"expression":{"id":96727,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"830:3:197","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":96728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"830:10:197","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":96732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"830:29:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"nodeType":"VariableDeclarationStatement","src":"807:52:197"},{"expression":{"id":96747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":96734,"name":"execute_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96722,"src":"934:8:197","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":96746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":96740,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96726,"src":"1008:6:197","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"id":96741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"recipient","nodeType":"MemberAccess","referencedDeclaration":96709,"src":"1008:16:197","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":96742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1095:42:197","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":96736,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96726,"src":"961:6:197","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"id":96737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"treasury","nodeType":"MemberAccess","referencedDeclaration":96705,"src":"961:15:197","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":96735,"name":"IGelatoTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96700,"src":"945:15:197","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGelatoTreasury_$96700_$","typeString":"type(contract IGelatoTreasury)"}},"id":96738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"945:32:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGelatoTreasury_$96700","typeString":"contract IGelatoTreasury"}},"id":96739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"userTokenBalance","nodeType":"MemberAccess","referencedDeclaration":96699,"src":"945:49:197","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":96743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"945:202:197","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":96744,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96726,"src":"1150:6:197","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$96710_memory_ptr","typeString":"struct CheckGelatoLow.Params memory"}},"id":96745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":96707,"src":"1150:16:197","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"945:221:197","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"934:232:197","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":96748,"nodeType":"ExpressionStatement","src":"934:232:197"}]},"baseFunctions":[96638],"documentation":{"id":96717,"nodeType":"StructuredDocumentation","src":"691:26:197","text":"@inheritdoc IDripCheck"},"functionSelector":"c64b3bb5","implemented":true,"kind":"function","modifiers":[],"name":"check","nameLocation":"731:5:197","parameters":{"id":96720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96719,"mutability":"mutable","name":"_params","nameLocation":"750:7:197","nodeType":"VariableDeclaration","scope":96750,"src":"737:20:197","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":96718,"name":"bytes","nodeType":"ElementaryTypeName","src":"737:5:197","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"736:22:197"},"returnParameters":{"id":96723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96722,"mutability":"mutable","name":"execute_","nameLocation":"787:8:197","nodeType":"VariableDeclaration","scope":96750,"src":"782:13:197","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":96721,"name":"bool","nodeType":"ElementaryTypeName","src":"782:4:197","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"781:15:197"},"scope":96751,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":96702,"name":"IDripCheck","nodeType":"IdentifierPath","referencedDeclaration":96639,"src":"379:10:197"},"id":96703,"nodeType":"InheritanceSpecifier","src":"379:10:197"}],"canonicalName":"CheckGelatoLow","contractDependencies":[],"contractKind":"contract","documentation":{"id":96701,"nodeType":"StructuredDocumentation","src":"231:121:197","text":"@title CheckGelatoLow\n @notice DripCheck for checking if an account's Gelato ETH balance is below some threshold."},"fullyImplemented":true,"linearizedBaseContracts":[96751,96639],"name":"CheckGelatoLow","nameLocation":"361:14:197","scope":96752,"usedErrors":[]}],"license":"MIT"},"id":197}
{"abi":[{"type":"function","name":"userTokenBalance","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"userTokenBalance(address,address)":"b47064c8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"userTokenBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":\"IGelatoTreasury\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckGelatoLow.sol\":{\"keccak256\":\"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e\",\"dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function","name":"userTokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":"IGelatoTreasury"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckGelatoLow.sol":{"keccak256":"0x44e0e4d49407e786ef475249a68160348829d1afcb6ce89ae2879de848f69289","urls":["bzz-raw://fb3790b5e80e5c96946335a5773ba082aaa64585e6549772b5e74e7fcce0745e","dweb:/ipfs/QmbJcZqCf67uWNpBfrnrhGvECp4X2cpfKKc18wzsimqM1Z"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":208}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"check","inputs":[{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610163806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004461003e366004610087565b50600190565b604051901515815260200160405180910390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561009957600080fd5b813567ffffffffffffffff808211156100b157600080fd5b818401915084601f8301126100c557600080fd5b8135818111156100d7576100d7610058565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561011d5761011d610058565b8160405282815287602084870101111561013657600080fd5b82602086016020830137600092810160200192909252509594505050505056fea164736f6c634300080f000a","sourceMap":"175:171:198:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004461003e366004610087565b50600190565b604051901515815260200160405180910390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561009957600080fd5b813567ffffffffffffffff808211156100b157600080fd5b818401915084601f8301126100c557600080fd5b8135818111156100d7576100d7610058565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561011d5761011d610058565b8160405282815287602084870101111561013657600080fd5b82602086016020830137600092810160200192909252509594505050505056fea164736f6c634300080f000a","sourceMap":"175:171:198:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;245:99;;;;;;:::i;:::-;-1:-1:-1;333:4:198;;245:99;;;;1353:14:334;;1346:22;1328:41;;1316:2;1301:18;245:99:198;;;;;;;14:184:334;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:334;203:980;-1:-1:-1;;;;;203:980:334:o","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"title\":\"CheckTrue\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"notice\":\"DripCheck that always returns true.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckTrue.sol\":\"CheckTrue\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckTrue.sol\":{\"keccak256\":\"0x668e81020f14efb12acf0874d2910c2904b06ba548bc817ad52f6bfff1bab677\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea27dd4db41b4b0ae510b387792cbe24f903a851e75249c73c0b5ae8419b3cbb\",\"dweb:/ipfs/QmaXWgxP3Pd4m5jPzAAHQChUUBiN8LTC6HdSSkxChkCifA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckTrue.sol":"CheckTrue"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckTrue.sol":{"keccak256":"0x668e81020f14efb12acf0874d2910c2904b06ba548bc817ad52f6bfff1bab677","urls":["bzz-raw://ea27dd4db41b4b0ae510b387792cbe24f903a851e75249c73c0b5ae8419b3cbb","dweb:/ipfs/QmaXWgxP3Pd4m5jPzAAHQChUUBiN8LTC6HdSSkxChkCifA"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"notice":"DripCheck that always returns true."},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"title":"CheckTrue"},"ast":{"absolutePath":"src/periphery/drippie/dripchecks/CheckTrue.sol","id":96773,"exportedSymbols":{"CheckTrue":[96772],"IDripCheck":[96639]},"nodeType":"SourceUnit","src":"32:315:198","nodes":[{"id":96753,"nodeType":"PragmaDirective","src":"32:23:198","nodes":[],"literals":["solidity","0.8",".15"]},{"id":96755,"nodeType":"ImportDirective","src":"57:47:198","nodes":[],"absolutePath":"src/periphery/drippie/IDripCheck.sol","file":"../IDripCheck.sol","nameLocation":"-1:-1:-1","scope":96773,"sourceUnit":96640,"symbolAliases":[{"foreign":{"id":96754,"name":"IDripCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96639,"src":"66:10:198","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":96772,"nodeType":"ContractDefinition","src":"175:171:198","nodes":[{"id":96771,"nodeType":"FunctionDefinition","src":"245:99:198","nodes":[],"body":{"id":96770,"nodeType":"Block","src":"312:32:198","nodes":[],"statements":[{"expression":{"id":96768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":96766,"name":"execute_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96764,"src":"322:8:198","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":96767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"333:4:198","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"322:15:198","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":96769,"nodeType":"ExpressionStatement","src":"322:15:198"}]},"baseFunctions":[96638],"documentation":{"id":96759,"nodeType":"StructuredDocumentation","src":"214:26:198","text":"@inheritdoc IDripCheck"},"functionSelector":"c64b3bb5","implemented":true,"kind":"function","modifiers":[],"name":"check","nameLocation":"254:5:198","parameters":{"id":96762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96761,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":96771,"src":"260:12:198","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":96760,"name":"bytes","nodeType":"ElementaryTypeName","src":"260:5:198","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"259:14:198"},"returnParameters":{"id":96765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96764,"mutability":"mutable","name":"execute_","nameLocation":"302:8:198","nodeType":"VariableDeclaration","scope":96771,"src":"297:13:198","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":96763,"name":"bool","nodeType":"ElementaryTypeName","src":"297:4:198","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"296:15:198"},"scope":96772,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":96757,"name":"IDripCheck","nodeType":"IdentifierPath","referencedDeclaration":96639,"src":"197:10:198"},"id":96758,"nodeType":"InheritanceSpecifier","src":"197:10:198"}],"canonicalName":"CheckTrue","contractDependencies":[],"contractKind":"contract","documentation":{"id":96756,"nodeType":"StructuredDocumentation","src":"106:69:198","text":"@title CheckTrue\n @notice DripCheck that always returns true."},"fullyImplemented":true,"linearizedBaseContracts":[96772,96639],"name":"CheckTrue","nameLocation":"184:9:198","scope":96773,"usedErrors":[]}],"license":"MIT"},"id":198}
{"abi":[{"type":"function","name":"check","inputs":[{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610163806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004461003e366004610087565b50600190565b604051901515815260200160405180910390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561009957600080fd5b813567ffffffffffffffff808211156100b157600080fd5b818401915084601f8301126100c557600080fd5b8135818111156100d7576100d7610058565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561011d5761011d610058565b8160405282815287602084870101111561013657600080fd5b82602086016020830137600092810160200192909252509594505050505056fea164736f6c634300080f000a","sourceMap":"175:171:209:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c64b3bb514610030575b600080fd5b61004461003e366004610087565b50600190565b604051901515815260200160405180910390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561009957600080fd5b813567ffffffffffffffff808211156100b157600080fd5b818401915084601f8301126100c557600080fd5b8135818111156100d7576100d7610058565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561011d5761011d610058565b8160405282815287602084870101111561013657600080fd5b82602086016020830137600092810160200192909252509594505050505056fea164736f6c634300080f000a","sourceMap":"175:171:209:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;245:99;;;;;;:::i;:::-;-1:-1:-1;333:4:209;;245:99;;;;1353:14:350;;1346:22;1328:41;;1316:2;1301:18;245:99:209;;;;;;;14:184:350;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:350;203:980;-1:-1:-1;;;;;203:980:350:o","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"title\":\"CheckTrue\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"notice\":\"DripCheck that always returns true.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/dripchecks/CheckTrue.sol\":\"CheckTrue\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]},\"src/periphery/drippie/dripchecks/CheckTrue.sol\":{\"keccak256\":\"0x668e81020f14efb12acf0874d2910c2904b06ba548bc817ad52f6bfff1bab677\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea27dd4db41b4b0ae510b387792cbe24f903a851e75249c73c0b5ae8419b3cbb\",\"dweb:/ipfs/QmaXWgxP3Pd4m5jPzAAHQChUUBiN8LTC6HdSSkxChkCifA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/dripchecks/CheckTrue.sol":"CheckTrue"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"},"src/periphery/drippie/dripchecks/CheckTrue.sol":{"keccak256":"0x668e81020f14efb12acf0874d2910c2904b06ba548bc817ad52f6bfff1bab677","urls":["bzz-raw://ea27dd4db41b4b0ae510b387792cbe24f903a851e75249c73c0b5ae8419b3cbb","dweb:/ipfs/QmaXWgxP3Pd4m5jPzAAHQChUUBiN8LTC6HdSSkxChkCifA"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"notice":"DripCheck that always returns true."},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"title":"CheckTrue"},"id":209}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50601680601d6000396000f3fe6080604052600080fdfea164736f6c634300080f000a","sourceMap":"437:3367:176:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea164736f6c634300080f000a","sourceMap":"437:3367:176:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"zefram.eth, Saw-mon & Natalie, clabby\",\"details\":\"Original: https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args/ blob/105efee1b9127ed7f6fedf139e1fc796ce8791f2/src/Clone.solMODIFICATIONS: - Added `_getArgDynBytes` function.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Clone\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Provides helper functions for reading immutable args from calldata\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Clone.sol\":\"Clone\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Clone.sol\":{\"keccak256\":\"0x5893eb0f0cb5ab0ed0db1ba47ce78de2362610864368a71963615334f3f5a829\",\"license\":\"BSD\",\"urls\":[\"bzz-raw://6bda119dc186663e7f67bcadb72263b4af023b2e1bff5aff559e86ceed339d1a\",\"dweb:/ipfs/QmdqZyX8GMptLderaZW8cEeoKy5doNhW6jkTX2SySn1a8e\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Clone.sol":"Clone"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Clone.sol":{"keccak256":"0x5893eb0f0cb5ab0ed0db1ba47ce78de2362610864368a71963615334f3f5a829","urls":["bzz-raw://6bda119dc186663e7f67bcadb72263b4af023b2e1bff5aff559e86ceed339d1a","dweb:/ipfs/QmdqZyX8GMptLderaZW8cEeoKy5doNhW6jkTX2SySn1a8e"],"license":"BSD"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Provides helper functions for reading immutable args from calldata"},"devdoc":{"version":1,"kind":"dev","author":"zefram.eth, Saw-mon & Natalie, clabby","details":"Original: https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args/ blob/105efee1b9127ed7f6fedf139e1fc796ce8791f2/src/Clone.solMODIFICATIONS: - Added `_getArgDynBytes` function.","title":"Clone"},"ast":{"absolutePath":"src/libraries/Clone.sol","id":92844,"exportedSymbols":{"Clone":[92843]},"nodeType":"SourceUnit","src":"32:3773:176","nodes":[{"id":92701,"nodeType":"PragmaDirective","src":"32:24:176","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":92843,"nodeType":"ContractDefinition","src":"437:3367:176","nodes":[{"id":92705,"nodeType":"VariableDeclaration","src":"458:40:176","nodes":[],"constant":true,"mutability":"constant","name":"ONE_WORD","nameLocation":"483:8:176","scope":92843,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92703,"name":"uint256","nodeType":"ElementaryTypeName","src":"458:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783230","id":92704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"494:4:176","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"visibility":"private"},{"id":92720,"nodeType":"FunctionDefinition","src":"662:234:176","nodes":[],"body":{"id":92719,"nodeType":"Block","src":"741:155:176","nodes":[],"statements":[{"assignments":[92714],"declarations":[{"constant":false,"id":92714,"mutability":"mutable","name":"offset","nameLocation":"759:6:176","nodeType":"VariableDeclaration","scope":92719,"src":"751:14:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92713,"name":"uint256","nodeType":"ElementaryTypeName","src":"751:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":92717,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":92715,"name":"_getImmutableArgsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92842,"src":"768:23:176","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":92716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"768:25:176","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"751:42:176"},{"AST":{"nodeType":"YulBlock","src":"812:78:176","statements":[{"nodeType":"YulAssignment","src":"826:54:176","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"837:4:176","type":"","value":"0x60"},{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"860:6:176"},{"name":"argOffset","nodeType":"YulIdentifier","src":"868:9:176"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"856:3:176"},"nodeType":"YulFunctionCall","src":"856:22:176"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"843:12:176"},"nodeType":"YulFunctionCall","src":"843:36:176"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"833:3:176"},"nodeType":"YulFunctionCall","src":"833:47:176"},"variableNames":[{"name":"arg","nodeType":"YulIdentifier","src":"826:3:176"}]}]},"evmVersion":"london","externalReferences":[{"declaration":92711,"isOffset":false,"isSlot":false,"src":"826:3:176","valueSize":1},{"declaration":92708,"isOffset":false,"isSlot":false,"src":"868:9:176","valueSize":1},{"declaration":92714,"isOffset":false,"isSlot":false,"src":"860:6:176","valueSize":1}],"id":92718,"nodeType":"InlineAssembly","src":"803:87:176"}]},"documentation":{"id":92706,"nodeType":"StructuredDocumentation","src":"505:152:176","text":"@notice Reads an immutable arg with type address\n @param argOffset The offset of the arg in the packed data\n @return arg The arg value"},"implemented":true,"kind":"function","modifiers":[],"name":"_getArgAddress","nameLocation":"671:14:176","parameters":{"id":92709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92708,"mutability":"mutable","name":"argOffset","nameLocation":"694:9:176","nodeType":"VariableDeclaration","scope":92720,"src":"686:17:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92707,"name":"uint256","nodeType":"ElementaryTypeName","src":"686:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"685:19:176"},"returnParameters":{"id":92712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92711,"mutability":"mutable","name":"arg","nameLocation":"736:3:176","nodeType":"VariableDeclaration","scope":92720,"src":"728:11:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92710,"name":"address","nodeType":"ElementaryTypeName","src":"728:7:176","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"727:13:176"},"scope":92843,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":92735,"nodeType":"FunctionDefinition","src":"1059:223:176","nodes":[],"body":{"id":92734,"nodeType":"Block","src":"1138:144:176","nodes":[],"statements":[{"assignments":[92729],"declarations":[{"constant":false,"id":92729,"mutability":"mutable","name":"offset","nameLocation":"1156:6:176","nodeType":"VariableDeclaration","scope":92734,"src":"1148:14:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92728,"name":"uint256","nodeType":"ElementaryTypeName","src":"1148:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":92732,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":92730,"name":"_getImmutableArgsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92842,"src":"1165:23:176","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":92731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1165:25:176","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1148:42:176"},{"AST":{"nodeType":"YulBlock","src":"1209:67:176","statements":[{"nodeType":"YulAssignment","src":"1223:43:176","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1247:6:176"},{"name":"argOffset","nodeType":"YulIdentifier","src":"1255:9:176"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1243:3:176"},"nodeType":"YulFunctionCall","src":"1243:22:176"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1230:12:176"},"nodeType":"YulFunctionCall","src":"1230:36:176"},"variableNames":[{"name":"arg","nodeType":"YulIdentifier","src":"1223:3:176"}]}]},"evmVersion":"london","externalReferences":[{"declaration":92726,"isOffset":false,"isSlot":false,"src":"1223:3:176","valueSize":1},{"declaration":92723,"isOffset":false,"isSlot":false,"src":"1255:9:176","valueSize":1},{"declaration":92729,"isOffset":false,"isSlot":false,"src":"1247:6:176","valueSize":1}],"id":92733,"nodeType":"InlineAssembly","src":"1200:76:176"}]},"documentation":{"id":92721,"nodeType":"StructuredDocumentation","src":"902:152:176","text":"@notice Reads an immutable arg with type uint256\n @param argOffset The offset of the arg in the packed data\n @return arg The arg value"},"implemented":true,"kind":"function","modifiers":[],"name":"_getArgUint256","nameLocation":"1068:14:176","parameters":{"id":92724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92723,"mutability":"mutable","name":"argOffset","nameLocation":"1091:9:176","nodeType":"VariableDeclaration","scope":92735,"src":"1083:17:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92722,"name":"uint256","nodeType":"ElementaryTypeName","src":"1083:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1082:19:176"},"returnParameters":{"id":92727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92726,"mutability":"mutable","name":"arg","nameLocation":"1133:3:176","nodeType":"VariableDeclaration","scope":92735,"src":"1125:11:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92725,"name":"uint256","nodeType":"ElementaryTypeName","src":"1125:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1124:13:176"},"scope":92843,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":92750,"nodeType":"FunctionDefinition","src":"1445:226:176","nodes":[],"body":{"id":92749,"nodeType":"Block","src":"1527:144:176","nodes":[],"statements":[{"assignments":[92744],"declarations":[{"constant":false,"id":92744,"mutability":"mutable","name":"offset","nameLocation":"1545:6:176","nodeType":"VariableDeclaration","scope":92749,"src":"1537:14:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92743,"name":"uint256","nodeType":"ElementaryTypeName","src":"1537:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":92747,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":92745,"name":"_getImmutableArgsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92842,"src":"1554:23:176","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":92746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1554:25:176","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1537:42:176"},{"AST":{"nodeType":"YulBlock","src":"1598:67:176","statements":[{"nodeType":"YulAssignment","src":"1612:43:176","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1636:6:176"},{"name":"argOffset","nodeType":"YulIdentifier","src":"1644:9:176"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1632:3:176"},"nodeType":"YulFunctionCall","src":"1632:22:176"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1619:12:176"},"nodeType":"YulFunctionCall","src":"1619:36:176"},"variableNames":[{"name":"arg","nodeType":"YulIdentifier","src":"1612:3:176"}]}]},"evmVersion":"london","externalReferences":[{"declaration":92741,"isOffset":false,"isSlot":false,"src":"1612:3:176","valueSize":1},{"declaration":92738,"isOffset":false,"isSlot":false,"src":"1644:9:176","valueSize":1},{"declaration":92744,"isOffset":false,"isSlot":false,"src":"1636:6:176","valueSize":1}],"id":92748,"nodeType":"InlineAssembly","src":"1589:76:176"}]},"documentation":{"id":92736,"nodeType":"StructuredDocumentation","src":"1288:152:176","text":"@notice Reads an immutable arg with type bytes32\n @param argOffset The offset of the arg in the packed data\n @return arg The arg value"},"implemented":true,"kind":"function","modifiers":[],"name":"_getArgFixedBytes","nameLocation":"1454:17:176","parameters":{"id":92739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92738,"mutability":"mutable","name":"argOffset","nameLocation":"1480:9:176","nodeType":"VariableDeclaration","scope":92750,"src":"1472:17:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92737,"name":"uint256","nodeType":"ElementaryTypeName","src":"1472:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1471:19:176"},"returnParameters":{"id":92742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92741,"mutability":"mutable","name":"arg","nameLocation":"1522:3:176","nodeType":"VariableDeclaration","scope":92750,"src":"1514:11:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":92740,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1514:7:176","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1513:13:176"},"scope":92843,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":92778,"nodeType":"FunctionDefinition","src":"1895:315:176","nodes":[],"body":{"id":92777,"nodeType":"Block","src":"2003:207:176","nodes":[],"statements":[{"assignments":[92762],"declarations":[{"constant":false,"id":92762,"mutability":"mutable","name":"offset","nameLocation":"2021:6:176","nodeType":"VariableDeclaration","scope":92777,"src":"2013:14:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92761,"name":"uint256","nodeType":"ElementaryTypeName","src":"2013:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":92767,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":92763,"name":"_getImmutableArgsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92842,"src":"2030:23:176","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":92764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2030:25:176","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":92765,"name":"argOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92753,"src":"2058:9:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2030:37:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2013:54:176"},{"expression":{"id":92774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":92768,"name":"arr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92759,"src":"2077:3:176","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":92772,"name":"arrLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92755,"src":"2097:6:176","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":92771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2083:13:176","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":92769,"name":"uint256","nodeType":"ElementaryTypeName","src":"2087:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":92770,"nodeType":"ArrayTypeName","src":"2087:9:176","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":92773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2083:21:176","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2077:27:176","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":92775,"nodeType":"ExpressionStatement","src":"2077:27:176"},{"AST":{"nodeType":"YulBlock","src":"2124:80:176","statements":[{"expression":{"arguments":[{"arguments":[{"name":"arr","nodeType":"YulIdentifier","src":"2155:3:176"},{"name":"ONE_WORD","nodeType":"YulIdentifier","src":"2160:8:176"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2151:3:176"},"nodeType":"YulFunctionCall","src":"2151:18:176"},{"name":"offset","nodeType":"YulIdentifier","src":"2171:6:176"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2183:1:176","type":"","value":"5"},{"name":"arrLen","nodeType":"YulIdentifier","src":"2186:6:176"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2179:3:176"},"nodeType":"YulFunctionCall","src":"2179:14:176"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2138:12:176"},"nodeType":"YulFunctionCall","src":"2138:56:176"},"nodeType":"YulExpressionStatement","src":"2138:56:176"}]},"evmVersion":"london","externalReferences":[{"declaration":92705,"isOffset":false,"isSlot":false,"src":"2160:8:176","valueSize":1},{"declaration":92759,"isOffset":false,"isSlot":false,"src":"2155:3:176","valueSize":1},{"declaration":92755,"isOffset":false,"isSlot":false,"src":"2186:6:176","valueSize":1},{"declaration":92762,"isOffset":false,"isSlot":false,"src":"2171:6:176","valueSize":1}],"id":92776,"nodeType":"InlineAssembly","src":"2115:89:176"}]},"documentation":{"id":92751,"nodeType":"StructuredDocumentation","src":"1677:213:176","text":"@notice Reads a uint256 array stored in the immutable args.\n @param argOffset The offset of the arg in the packed data\n @param arrLen Number of elements in the array\n @return arr The array"},"implemented":true,"kind":"function","modifiers":[],"name":"_getArgUint256Array","nameLocation":"1904:19:176","parameters":{"id":92756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92753,"mutability":"mutable","name":"argOffset","nameLocation":"1932:9:176","nodeType":"VariableDeclaration","scope":92778,"src":"1924:17:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92752,"name":"uint256","nodeType":"ElementaryTypeName","src":"1924:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":92755,"mutability":"mutable","name":"arrLen","nameLocation":"1950:6:176","nodeType":"VariableDeclaration","scope":92778,"src":"1943:13:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":92754,"name":"uint64","nodeType":"ElementaryTypeName","src":"1943:6:176","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1923:34:176"},"returnParameters":{"id":92760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92759,"mutability":"mutable","name":"arr","nameLocation":"1998:3:176","nodeType":"VariableDeclaration","scope":92778,"src":"1981:20:176","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":92757,"name":"uint256","nodeType":"ElementaryTypeName","src":"1981:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":92758,"nodeType":"ArrayTypeName","src":"1981:9:176","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1980:22:176"},"scope":92843,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":92804,"nodeType":"FunctionDefinition","src":"2440:295:176","nodes":[],"body":{"id":92803,"nodeType":"Block","src":"2540:195:176","nodes":[],"statements":[{"assignments":[92789],"declarations":[{"constant":false,"id":92789,"mutability":"mutable","name":"offset","nameLocation":"2558:6:176","nodeType":"VariableDeclaration","scope":92803,"src":"2550:14:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92788,"name":"uint256","nodeType":"ElementaryTypeName","src":"2550:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":92794,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":92793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":92790,"name":"_getImmutableArgsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92842,"src":"2567:23:176","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":92791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2567:25:176","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":92792,"name":"argOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92781,"src":"2595:9:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2567:37:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2550:54:176"},{"expression":{"id":92800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":92795,"name":"arr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92786,"src":"2614:3:176","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":92798,"name":"arrLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92783,"src":"2630:6:176","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":92797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2620:9:176","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":92796,"name":"bytes","nodeType":"ElementaryTypeName","src":"2624:5:176","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":92799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2620:17:176","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2614:23:176","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":92801,"nodeType":"ExpressionStatement","src":"2614:23:176"},{"AST":{"nodeType":"YulBlock","src":"2657:72:176","statements":[{"expression":{"arguments":[{"arguments":[{"name":"arr","nodeType":"YulIdentifier","src":"2688:3:176"},{"name":"ONE_WORD","nodeType":"YulIdentifier","src":"2693:8:176"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2684:3:176"},"nodeType":"YulFunctionCall","src":"2684:18:176"},{"name":"offset","nodeType":"YulIdentifier","src":"2704:6:176"},{"name":"arrLen","nodeType":"YulIdentifier","src":"2712:6:176"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2671:12:176"},"nodeType":"YulFunctionCall","src":"2671:48:176"},"nodeType":"YulExpressionStatement","src":"2671:48:176"}]},"evmVersion":"london","externalReferences":[{"declaration":92705,"isOffset":false,"isSlot":false,"src":"2693:8:176","valueSize":1},{"declaration":92786,"isOffset":false,"isSlot":false,"src":"2688:3:176","valueSize":1},{"declaration":92783,"isOffset":false,"isSlot":false,"src":"2712:6:176","valueSize":1},{"declaration":92789,"isOffset":false,"isSlot":false,"src":"2704:6:176","valueSize":1}],"id":92802,"nodeType":"InlineAssembly","src":"2648:81:176"}]},"documentation":{"id":92779,"nodeType":"StructuredDocumentation","src":"2216:219:176","text":"@notice Reads a dynamic bytes array stored in the immutable args.\n @param argOffset The offset of the arg in the packed data\n @param arrLen Number of elements in the array\n @return arr The array"},"implemented":true,"kind":"function","modifiers":[],"name":"_getArgDynBytes","nameLocation":"2449:15:176","parameters":{"id":92784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92781,"mutability":"mutable","name":"argOffset","nameLocation":"2473:9:176","nodeType":"VariableDeclaration","scope":92804,"src":"2465:17:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92780,"name":"uint256","nodeType":"ElementaryTypeName","src":"2465:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":92783,"mutability":"mutable","name":"arrLen","nameLocation":"2491:6:176","nodeType":"VariableDeclaration","scope":92804,"src":"2484:13:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":92782,"name":"uint64","nodeType":"ElementaryTypeName","src":"2484:6:176","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2464:34:176"},"returnParameters":{"id":92787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92786,"mutability":"mutable","name":"arr","nameLocation":"2535:3:176","nodeType":"VariableDeclaration","scope":92804,"src":"2522:16:176","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":92785,"name":"bytes","nodeType":"ElementaryTypeName","src":"2522:5:176","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2521:18:176"},"scope":92843,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":92819,"nodeType":"FunctionDefinition","src":"2897:232:176","nodes":[],"body":{"id":92818,"nodeType":"Block","src":"2974:155:176","nodes":[],"statements":[{"assignments":[92813],"declarations":[{"constant":false,"id":92813,"mutability":"mutable","name":"offset","nameLocation":"2992:6:176","nodeType":"VariableDeclaration","scope":92818,"src":"2984:14:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92812,"name":"uint256","nodeType":"ElementaryTypeName","src":"2984:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":92816,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":92814,"name":"_getImmutableArgsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92842,"src":"3001:23:176","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":92815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3001:25:176","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2984:42:176"},{"AST":{"nodeType":"YulBlock","src":"3045:78:176","statements":[{"nodeType":"YulAssignment","src":"3059:54:176","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3070:4:176","type":"","value":"0xc0"},{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3093:6:176"},{"name":"argOffset","nodeType":"YulIdentifier","src":"3101:9:176"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3089:3:176"},"nodeType":"YulFunctionCall","src":"3089:22:176"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3076:12:176"},"nodeType":"YulFunctionCall","src":"3076:36:176"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3066:3:176"},"nodeType":"YulFunctionCall","src":"3066:47:176"},"variableNames":[{"name":"arg","nodeType":"YulIdentifier","src":"3059:3:176"}]}]},"evmVersion":"london","externalReferences":[{"declaration":92810,"isOffset":false,"isSlot":false,"src":"3059:3:176","valueSize":1},{"declaration":92807,"isOffset":false,"isSlot":false,"src":"3101:9:176","valueSize":1},{"declaration":92813,"isOffset":false,"isSlot":false,"src":"3093:6:176","valueSize":1}],"id":92817,"nodeType":"InlineAssembly","src":"3036:87:176"}]},"documentation":{"id":92805,"nodeType":"StructuredDocumentation","src":"2741:151:176","text":"@notice Reads an immutable arg with type uint64\n @param argOffset The offset of the arg in the packed data\n @return arg The arg value"},"implemented":true,"kind":"function","modifiers":[],"name":"_getArgUint64","nameLocation":"2906:13:176","parameters":{"id":92808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92807,"mutability":"mutable","name":"argOffset","nameLocation":"2928:9:176","nodeType":"VariableDeclaration","scope":92819,"src":"2920:17:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92806,"name":"uint256","nodeType":"ElementaryTypeName","src":"2920:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2919:19:176"},"returnParameters":{"id":92811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92810,"mutability":"mutable","name":"arg","nameLocation":"2969:3:176","nodeType":"VariableDeclaration","scope":92819,"src":"2962:10:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":92809,"name":"uint64","nodeType":"ElementaryTypeName","src":"2962:6:176","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2961:12:176"},"scope":92843,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":92834,"nodeType":"FunctionDefinition","src":"3290:230:176","nodes":[],"body":{"id":92833,"nodeType":"Block","src":"3365:155:176","nodes":[],"statements":[{"assignments":[92828],"declarations":[{"constant":false,"id":92828,"mutability":"mutable","name":"offset","nameLocation":"3383:6:176","nodeType":"VariableDeclaration","scope":92833,"src":"3375:14:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92827,"name":"uint256","nodeType":"ElementaryTypeName","src":"3375:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":92831,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":92829,"name":"_getImmutableArgsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92842,"src":"3392:23:176","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":92830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3392:25:176","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3375:42:176"},{"AST":{"nodeType":"YulBlock","src":"3436:78:176","statements":[{"nodeType":"YulAssignment","src":"3450:54:176","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3461:4:176","type":"","value":"0xf8"},{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3484:6:176"},{"name":"argOffset","nodeType":"YulIdentifier","src":"3492:9:176"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3480:3:176"},"nodeType":"YulFunctionCall","src":"3480:22:176"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3467:12:176"},"nodeType":"YulFunctionCall","src":"3467:36:176"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3457:3:176"},"nodeType":"YulFunctionCall","src":"3457:47:176"},"variableNames":[{"name":"arg","nodeType":"YulIdentifier","src":"3450:3:176"}]}]},"evmVersion":"london","externalReferences":[{"declaration":92825,"isOffset":false,"isSlot":false,"src":"3450:3:176","valueSize":1},{"declaration":92822,"isOffset":false,"isSlot":false,"src":"3492:9:176","valueSize":1},{"declaration":92828,"isOffset":false,"isSlot":false,"src":"3484:6:176","valueSize":1}],"id":92832,"nodeType":"InlineAssembly","src":"3427:87:176"}]},"documentation":{"id":92820,"nodeType":"StructuredDocumentation","src":"3135:150:176","text":"@notice Reads an immutable arg with type uint8\n @param argOffset The offset of the arg in the packed data\n @return arg The arg value"},"implemented":true,"kind":"function","modifiers":[],"name":"_getArgUint8","nameLocation":"3299:12:176","parameters":{"id":92823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92822,"mutability":"mutable","name":"argOffset","nameLocation":"3320:9:176","nodeType":"VariableDeclaration","scope":92834,"src":"3312:17:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92821,"name":"uint256","nodeType":"ElementaryTypeName","src":"3312:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3311:19:176"},"returnParameters":{"id":92826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92825,"mutability":"mutable","name":"arg","nameLocation":"3360:3:176","nodeType":"VariableDeclaration","scope":92834,"src":"3354:9:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":92824,"name":"uint8","nodeType":"ElementaryTypeName","src":"3354:5:176","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3353:11:176"},"scope":92843,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":92842,"nodeType":"FunctionDefinition","src":"3601:201:176","nodes":[],"body":{"id":92841,"nodeType":"Block","src":"3675:127:176","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3694:102:176","statements":[{"nodeType":"YulAssignment","src":"3708:78:176","value":{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"3722:12:176"},"nodeType":"YulFunctionCall","src":"3722:14:176"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3742:4:176","type":"","value":"0xf0"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"3765:12:176"},"nodeType":"YulFunctionCall","src":"3765:14:176"},{"kind":"number","nodeType":"YulLiteral","src":"3781:1:176","type":"","value":"2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3761:3:176"},"nodeType":"YulFunctionCall","src":"3761:22:176"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3748:12:176"},"nodeType":"YulFunctionCall","src":"3748:36:176"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3738:3:176"},"nodeType":"YulFunctionCall","src":"3738:47:176"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3718:3:176"},"nodeType":"YulFunctionCall","src":"3718:68:176"},"variableNames":[{"name":"offset","nodeType":"YulIdentifier","src":"3708:6:176"}]}]},"evmVersion":"london","externalReferences":[{"declaration":92838,"isOffset":false,"isSlot":false,"src":"3708:6:176","valueSize":1}],"id":92840,"nodeType":"InlineAssembly","src":"3685:111:176"}]},"documentation":{"id":92835,"nodeType":"StructuredDocumentation","src":"3526:70:176","text":"@return offset The offset of the packed immutable args in calldata"},"implemented":true,"kind":"function","modifiers":[],"name":"_getImmutableArgsOffset","nameLocation":"3610:23:176","parameters":{"id":92836,"nodeType":"ParameterList","parameters":[],"src":"3633:2:176"},"returnParameters":{"id":92839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92838,"mutability":"mutable","name":"offset","nameLocation":"3667:6:176","nodeType":"VariableDeclaration","scope":92842,"src":"3659:14:176","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92837,"name":"uint256","nodeType":"ElementaryTypeName","src":"3659:7:176","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3658:16:176"},"scope":92843,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Clone","contractDependencies":[],"contractKind":"contract","documentation":{"id":92702,"nodeType":"StructuredDocumentation","src":"58:379:176","text":"@title Clone\n @author zefram.eth, Saw-mon & Natalie, clabby\n @notice Provides helper functions for reading immutable args from calldata\n @dev Original:\n https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args/\n blob/105efee1b9127ed7f6fedf139e1fc796ce8791f2/src/Clone.sol\n @dev MODIFICATIONS:\n - Added `_getArgDynBytes` function."},"fullyImplemented":true,"linearizedBaseContracts":[92843],"name":"Clone","nameLocation":"446:5:176","scope":92844,"usedErrors":[]}],"license":"BSD"},"id":176}
{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50601680601d6000396000f3fe6080604052600080fdfea164736f6c634300080f000a","sourceMap":"437:3367:187:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea164736f6c634300080f000a","sourceMap":"437:3367:187:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"zefram.eth, Saw-mon & Natalie, clabby\",\"details\":\"Original: https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args/ blob/105efee1b9127ed7f6fedf139e1fc796ce8791f2/src/Clone.solMODIFICATIONS: - Added `_getArgDynBytes` function.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Clone\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Provides helper functions for reading immutable args from calldata\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Clone.sol\":\"Clone\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Clone.sol\":{\"keccak256\":\"0x5893eb0f0cb5ab0ed0db1ba47ce78de2362610864368a71963615334f3f5a829\",\"license\":\"BSD\",\"urls\":[\"bzz-raw://6bda119dc186663e7f67bcadb72263b4af023b2e1bff5aff559e86ceed339d1a\",\"dweb:/ipfs/QmdqZyX8GMptLderaZW8cEeoKy5doNhW6jkTX2SySn1a8e\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Clone.sol":"Clone"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Clone.sol":{"keccak256":"0x5893eb0f0cb5ab0ed0db1ba47ce78de2362610864368a71963615334f3f5a829","urls":["bzz-raw://6bda119dc186663e7f67bcadb72263b4af023b2e1bff5aff559e86ceed339d1a","dweb:/ipfs/QmdqZyX8GMptLderaZW8cEeoKy5doNhW6jkTX2SySn1a8e"],"license":"BSD"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Provides helper functions for reading immutable args from calldata"},"devdoc":{"version":1,"kind":"dev","author":"zefram.eth, Saw-mon & Natalie, clabby","details":"Original: https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args/ blob/105efee1b9127ed7f6fedf139e1fc796ce8791f2/src/Clone.solMODIFICATIONS: - Added `_getArgDynBytes` function.","title":"Clone"},"id":187}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"210:8349:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;210:8349:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"210:8349:0:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"wighawag, zefram.eth, Saw-mon & Natalie\",\"kind\":\"dev\",\"methods\":{},\"title\":\"ClonesWithImmutableArgs\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Enables creating clone contracts with immutable args\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/clones-with-immutable-args/src/ClonesWithImmutableArgs.sol\":\"ClonesWithImmutableArgs\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/clones-with-immutable-args/src/ClonesWithImmutableArgs.sol\":{\"keccak256\":\"0x220db41bfceb0146f86e9be87d3d954fd1d52eadcb3bbfc5cd89e5543a46fd1e\",\"license\":\"BSD\",\"urls\":[\"bzz-raw://19155470db05e2e67a8c14f21cc903bb4833d8e5d248c2183073320c8a595705\",\"dweb:/ipfs/QmTchpXE8MMH1XcYxaZvx64UiVzBatbWy7Sw5HFhVJJjxi\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/clones-with-immutable-args/src/ClonesWithImmutableArgs.sol":"ClonesWithImmutableArgs"},"evmVersion":"london","libraries":{}},"sources":{"lib/clones-with-immutable-args/src/ClonesWithImmutableArgs.sol":{"keccak256":"0x220db41bfceb0146f86e9be87d3d954fd1d52eadcb3bbfc5cd89e5543a46fd1e","urls":["bzz-raw://19155470db05e2e67a8c14f21cc903bb4833d8e5d248c2183073320c8a595705","dweb:/ipfs/QmTchpXE8MMH1XcYxaZvx64UiVzBatbWy7Sw5HFhVJJjxi"],"license":"BSD"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Enables creating clone contracts with immutable args"},"devdoc":{"version":1,"kind":"dev","author":"wighawag, zefram.eth, Saw-mon & Natalie","title":"ClonesWithImmutableArgs"},"ast":{"absolutePath":"lib/clones-with-immutable-args/src/ClonesWithImmutableArgs.sol","id":31,"exportedSymbols":{"ClonesWithImmutableArgs":[30]},"nodeType":"SourceUnit","src":"33:8527:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"33:23:0","nodes":[],"literals":["solidity","^","0.8",".4"]},{"id":30,"nodeType":"ContractDefinition","src":"210:8349:0","nodes":[{"id":5,"nodeType":"VariableDeclaration","src":"248:56:0","nodes":[],"constant":true,"mutability":"constant","name":"FREE_MEMORY_POINTER_SLOT","nameLocation":"273:24:0","scope":30,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3,"name":"uint256","nodeType":"ElementaryTypeName","src":"248:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783430","id":4,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"300:4:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"0x40"},"visibility":"private"},{"id":8,"nodeType":"VariableDeclaration","src":"310:48:0","nodes":[],"constant":true,"mutability":"constant","name":"BOOTSTRAP_LENGTH","nameLocation":"335:16:0","scope":30,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6,"name":"uint256","nodeType":"ElementaryTypeName","src":"310:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783366","id":7,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"354:4:0","typeDescriptions":{"typeIdentifier":"t_rational_63_by_1","typeString":"int_const 63"},"value":"0x3f"},"visibility":"private"},{"id":11,"nodeType":"VariableDeclaration","src":"364:40:0","nodes":[],"constant":true,"mutability":"constant","name":"ONE_WORD","nameLocation":"389:8:0","scope":30,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9,"name":"uint256","nodeType":"ElementaryTypeName","src":"364:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783230","id":10,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"400:4:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"visibility":"private"},{"id":14,"nodeType":"VariableDeclaration","src":"410:105:0","nodes":[],"constant":true,"mutability":"constant","name":"MAX_UINT256","nameLocation":"435:11:0","scope":30,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12,"name":"uint256","nodeType":"ElementaryTypeName","src":"410:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":13,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"449:66:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"visibility":"private"},{"id":17,"nodeType":"VariableDeclaration","src":"521:111:0","nodes":[],"constant":true,"mutability":"constant","name":"CREATE_FAIL_ERROR","nameLocation":"546:17:0","scope":30,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15,"name":"bytes32","nodeType":"ElementaryTypeName","src":"521:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307865626665663138383030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030","id":16,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"566:66:0","typeDescriptions":{"typeIdentifier":"t_rational_106743965558943634145805119060759539813005424477757578264636368643321260670976_by_1","typeString":"int_const 1067...(70 digits omitted)...0976"},"value":"0xebfef18800000000000000000000000000000000000000000000000000000000"},"visibility":"private"},{"id":29,"nodeType":"FunctionDefinition","src":"990:7567:0","nodes":[],"body":{"id":28,"nodeType":"Block","src":"1112:7445:0","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1259:7292:0","statements":[{"nodeType":"YulVariableDeclaration","src":"1273:38:0","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1302:4:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1296:5:0"},"nodeType":"YulFunctionCall","src":"1296:11:0"},{"kind":"number","nodeType":"YulLiteral","src":"1309:1:0","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1292:3:0"},"nodeType":"YulFunctionCall","src":"1292:19:0"},"variables":[{"name":"extraLength","nodeType":"YulTypedName","src":"1277:11:0","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1392:54:0","value":{"arguments":[{"name":"extraLength","nodeType":"YulIdentifier","src":"1416:11:0"},{"name":"BOOTSTRAP_LENGTH","nodeType":"YulIdentifier","src":"1429:16:0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1412:3:0"},"nodeType":"YulFunctionCall","src":"1412:34:0"},"variables":[{"name":"creationSize","nodeType":"YulTypedName","src":"1396:12:0","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1459:38:0","value":{"arguments":[{"name":"creationSize","nodeType":"YulIdentifier","src":"1478:12:0"},{"kind":"number","nodeType":"YulLiteral","src":"1492:4:0","type":"","value":"0x0a"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1474:3:0"},"nodeType":"YulFunctionCall","src":"1474:23:0"},"variables":[{"name":"runSize","nodeType":"YulTypedName","src":"1463:7:0","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1546:42:0","value":{"arguments":[{"name":"FREE_MEMORY_POINTER_SLOT","nodeType":"YulIdentifier","src":"1563:24:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1557:5:0"},"nodeType":"YulFunctionCall","src":"1557:31:0"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"1550:3:0","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6514:3:0"},{"arguments":[{"hexValue":"6100003d81600a3d39f3363d3d373d3d3d3d610000806035363936013d73","kind":"string","nodeType":"YulLiteral","src":"6559:88:0","type":""},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6701:4:0","type":"","value":"0xe8"},{"name":"runSize","nodeType":"YulIdentifier","src":"6707:7:0"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6697:3:0"},"nodeType":"YulFunctionCall","src":"6697:18:0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6745:4:0","type":"","value":"0x58"},{"name":"extraLength","nodeType":"YulIdentifier","src":"6751:11:0"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6741:3:0"},"nodeType":"YulFunctionCall","src":"6741:22:0"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"6669:2:0"},"nodeType":"YulFunctionCall","src":"6669:116:0"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"6535:2:0"},"nodeType":"YulFunctionCall","src":"6535:268:0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6490:6:0"},"nodeType":"YulFunctionCall","src":"6490:327:0"},"nodeType":"YulExpressionStatement","src":"6490:327:0"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6871:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"6876:4:0","type":"","value":"0x1e"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6867:3:0"},"nodeType":"YulFunctionCall","src":"6867:14:0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6903:4:0","type":"","value":"0x60"},{"name":"implementation","nodeType":"YulIdentifier","src":"6909:14:0"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6899:3:0"},"nodeType":"YulFunctionCall","src":"6899:25:0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6843:6:0"},"nodeType":"YulFunctionCall","src":"6843:95:0"},"nodeType":"YulExpressionStatement","src":"6843:95:0"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6980:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"6985:4:0","type":"","value":"0x32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6976:3:0"},"nodeType":"YulFunctionCall","src":"6976:14:0"},{"hexValue":"5af43d3d93803e603357fd5bf3","kind":"string","nodeType":"YulLiteral","src":"7008:42:0","type":""}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6952:6:0"},"nodeType":"YulFunctionCall","src":"6952:112:0"},"nodeType":"YulExpressionStatement","src":"6952:112:0"},{"nodeType":"YulVariableDeclaration","src":"7457:26:0","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"7478:4:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7472:5:0"},"nodeType":"YulFunctionCall","src":"7472:11:0"},"variables":[{"name":"counter","nodeType":"YulTypedName","src":"7461:7:0","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7496:41:0","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"7515:3:0"},{"name":"BOOTSTRAP_LENGTH","nodeType":"YulIdentifier","src":"7520:16:0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7511:3:0"},"nodeType":"YulFunctionCall","src":"7511:26:0"},"variables":[{"name":"copyPtr","nodeType":"YulTypedName","src":"7500:7:0","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7550:34:0","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"7569:4:0"},{"name":"ONE_WORD","nodeType":"YulIdentifier","src":"7575:8:0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7565:3:0"},"nodeType":"YulFunctionCall","src":"7565:19:0"},"variables":[{"name":"dataPtr","nodeType":"YulTypedName","src":"7554:7:0","type":""}]},{"body":{"nodeType":"YulBlock","src":"7613:303:0","statements":[{"body":{"nodeType":"YulBlock","src":"7656:45:0","statements":[{"nodeType":"YulBreak","src":"7678:5:0"}]},"condition":{"arguments":[{"name":"counter","nodeType":"YulIdentifier","src":"7637:7:0"},{"name":"ONE_WORD","nodeType":"YulIdentifier","src":"7646:8:0"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7634:2:0"},"nodeType":"YulFunctionCall","src":"7634:21:0"},"nodeType":"YulIf","src":"7631:70:0"},{"expression":{"arguments":[{"name":"copyPtr","nodeType":"YulIdentifier","src":"7726:7:0"},{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"7741:7:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7735:5:0"},"nodeType":"YulFunctionCall","src":"7735:14:0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7719:6:0"},"nodeType":"YulFunctionCall","src":"7719:31:0"},"nodeType":"YulExpressionStatement","src":"7719:31:0"},{"nodeType":"YulAssignment","src":"7768:33:0","value":{"arguments":[{"name":"copyPtr","nodeType":"YulIdentifier","src":"7783:7:0"},{"name":"ONE_WORD","nodeType":"YulIdentifier","src":"7792:8:0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7779:3:0"},"nodeType":"YulFunctionCall","src":"7779:22:0"},"variableNames":[{"name":"copyPtr","nodeType":"YulIdentifier","src":"7768:7:0"}]},{"nodeType":"YulAssignment","src":"7818:33:0","value":{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"7833:7:0"},{"name":"ONE_WORD","nodeType":"YulIdentifier","src":"7842:8:0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7829:3:0"},"nodeType":"YulFunctionCall","src":"7829:22:0"},"variableNames":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"7818:7:0"}]},{"nodeType":"YulAssignment","src":"7869:33:0","value":{"arguments":[{"name":"counter","nodeType":"YulIdentifier","src":"7884:7:0"},{"name":"ONE_WORD","nodeType":"YulIdentifier","src":"7893:8:0"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7880:3:0"},"nodeType":"YulFunctionCall","src":"7880:22:0"},"variableNames":[{"name":"counter","nodeType":"YulIdentifier","src":"7869:7:0"}]}]},"condition":{"kind":"bool","nodeType":"YulLiteral","src":"7605:4:0","type":"","value":"true"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7610:2:0","statements":[]},"pre":{"nodeType":"YulBlock","src":"7602:2:0","statements":[]},"src":"7598:318:0"},{"nodeType":"YulVariableDeclaration","src":"7946:107:0","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7983:1:0","type":"","value":"3"},{"arguments":[{"name":"ONE_WORD","nodeType":"YulIdentifier","src":"7990:8:0"},{"name":"counter","nodeType":"YulIdentifier","src":"8000:7:0"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7986:3:0"},"nodeType":"YulFunctionCall","src":"7986:22:0"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7979:3:0"},"nodeType":"YulFunctionCall","src":"7979:30:0"},{"name":"MAX_UINT256","nodeType":"YulIdentifier","src":"8028:11:0"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7958:3:0"},"nodeType":"YulFunctionCall","src":"7958:95:0"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"7950:4:0","type":""}]},{"expression":{"arguments":[{"name":"copyPtr","nodeType":"YulIdentifier","src":"8074:7:0"},{"arguments":[{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"8093:7:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8087:5:0"},"nodeType":"YulFunctionCall","src":"8087:14:0"},{"name":"mask","nodeType":"YulIdentifier","src":"8103:4:0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8083:3:0"},"nodeType":"YulFunctionCall","src":"8083:25:0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8067:6:0"},"nodeType":"YulFunctionCall","src":"8067:42:0"},"nodeType":"YulExpressionStatement","src":"8067:42:0"},{"nodeType":"YulAssignment","src":"8122:32:0","value":{"arguments":[{"name":"copyPtr","nodeType":"YulIdentifier","src":"8137:7:0"},{"name":"counter","nodeType":"YulIdentifier","src":"8146:7:0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8133:3:0"},"nodeType":"YulFunctionCall","src":"8133:21:0"},"variableNames":[{"name":"copyPtr","nodeType":"YulIdentifier","src":"8122:7:0"}]},{"expression":{"arguments":[{"name":"copyPtr","nodeType":"YulIdentifier","src":"8174:7:0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8187:4:0","type":"","value":"0xf0"},{"name":"extraLength","nodeType":"YulIdentifier","src":"8193:11:0"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8183:3:0"},"nodeType":"YulFunctionCall","src":"8183:22:0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8167:6:0"},"nodeType":"YulFunctionCall","src":"8167:39:0"},"nodeType":"YulExpressionStatement","src":"8167:39:0"},{"nodeType":"YulAssignment","src":"8220:40:0","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8239:1:0","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"8242:3:0"},{"name":"creationSize","nodeType":"YulIdentifier","src":"8247:12:0"}],"functionName":{"name":"create","nodeType":"YulIdentifier","src":"8232:6:0"},"nodeType":"YulFunctionCall","src":"8232:28:0"},"variableNames":[{"name":"instance","nodeType":"YulIdentifier","src":"8220:8:0"}]},{"body":{"nodeType":"YulBlock","src":"8294:135:0","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8358:1:0","type":"","value":"0"},{"name":"CREATE_FAIL_ERROR","nodeType":"YulIdentifier","src":"8361:17:0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8351:6:0"},"nodeType":"YulFunctionCall","src":"8351:28:0"},"nodeType":"YulExpressionStatement","src":"8351:28:0"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8403:1:0","type":"","value":"0"},{"name":"ONE_WORD","nodeType":"YulIdentifier","src":"8406:8:0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8396:6:0"},"nodeType":"YulFunctionCall","src":"8396:19:0"},"nodeType":"YulExpressionStatement","src":"8396:19:0"}]},"condition":{"arguments":[{"name":"instance","nodeType":"YulIdentifier","src":"8284:8:0"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8277:6:0"},"nodeType":"YulFunctionCall","src":"8277:16:0"},"nodeType":"YulIf","src":"8274:155:0"},{"expression":{"arguments":[{"name":"FREE_MEMORY_POINTER_SLOT","nodeType":"YulIdentifier","src":"8492:24:0"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"8522:3:0"},{"name":"creationSize","nodeType":"YulIdentifier","src":"8527:12:0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8518:3:0"},"nodeType":"YulFunctionCall","src":"8518:22:0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8485:6:0"},"nodeType":"YulFunctionCall","src":"8485:56:0"},"nodeType":"YulExpressionStatement","src":"8485:56:0"}]},"evmVersion":"london","externalReferences":[{"declaration":8,"isOffset":false,"isSlot":false,"src":"1429:16:0","valueSize":1},{"declaration":8,"isOffset":false,"isSlot":false,"src":"7520:16:0","valueSize":1},{"declaration":17,"isOffset":false,"isSlot":false,"src":"8361:17:0","valueSize":1},{"declaration":5,"isOffset":false,"isSlot":false,"src":"1563:24:0","valueSize":1},{"declaration":5,"isOffset":false,"isSlot":false,"src":"8492:24:0","valueSize":1},{"declaration":14,"isOffset":false,"isSlot":false,"src":"8028:11:0","valueSize":1},{"declaration":11,"isOffset":false,"isSlot":false,"src":"7575:8:0","valueSize":1},{"declaration":11,"isOffset":false,"isSlot":false,"src":"7646:8:0","valueSize":1},{"declaration":11,"isOffset":false,"isSlot":false,"src":"7792:8:0","valueSize":1},{"declaration":11,"isOffset":false,"isSlot":false,"src":"7842:8:0","valueSize":1},{"declaration":11,"isOffset":false,"isSlot":false,"src":"7893:8:0","valueSize":1},{"declaration":11,"isOffset":false,"isSlot":false,"src":"7990:8:0","valueSize":1},{"declaration":11,"isOffset":false,"isSlot":false,"src":"8406:8:0","valueSize":1},{"declaration":22,"isOffset":false,"isSlot":false,"src":"1302:4:0","valueSize":1},{"declaration":22,"isOffset":false,"isSlot":false,"src":"7478:4:0","valueSize":1},{"declaration":22,"isOffset":false,"isSlot":false,"src":"7569:4:0","valueSize":1},{"declaration":20,"isOffset":false,"isSlot":false,"src":"6909:14:0","valueSize":1},{"declaration":25,"isOffset":false,"isSlot":false,"src":"8220:8:0","valueSize":1},{"declaration":25,"isOffset":false,"isSlot":false,"src":"8284:8:0","valueSize":1}],"id":27,"nodeType":"InlineAssembly","src":"1250:7301:0"}]},"documentation":{"id":18,"nodeType":"StructuredDocumentation","src":"639:346:0","text":"@notice Creates a clone proxy of the implementation contract, with immutable args\n @dev data cannot exceed 65535 bytes, since 2 bytes are used to store the data length\n @param implementation The implementation contract to clone\n @param data Encoded immutable args\n @return instance The address of the created clone"},"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"999:5:0","parameters":{"id":23,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20,"mutability":"mutable","name":"implementation","nameLocation":"1013:14:0","nodeType":"VariableDeclaration","scope":29,"src":"1005:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19,"name":"address","nodeType":"ElementaryTypeName","src":"1005:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22,"mutability":"mutable","name":"data","nameLocation":"1042:4:0","nodeType":"VariableDeclaration","scope":29,"src":"1029:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":21,"name":"bytes","nodeType":"ElementaryTypeName","src":"1029:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1004:43:0"},"returnParameters":{"id":26,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25,"mutability":"mutable","name":"instance","nameLocation":"1098:8:0","nodeType":"VariableDeclaration","scope":29,"src":"1082:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"1082:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"1081:26:0"},"scope":30,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"ClonesWithImmutableArgs","contractDependencies":[],"contractKind":"library","documentation":{"id":2,"nodeType":"StructuredDocumentation","src":"58:152:0","text":"@title ClonesWithImmutableArgs\n @author wighawag, zefram.eth, Saw-mon & Natalie\n @notice Enables creating clone contracts with immutable args"},"fullyImplemented":true,"linearizedBaseContracts":[30],"name":"ClonesWithImmutableArgs","nameLocation":"218:23:0","scope":31,"usedErrors":[]}],"license":"BSD"},"id":0}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"210:8349:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;210:8349:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"210:8349:0:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"wighawag, zefram.eth, Saw-mon & Natalie\",\"kind\":\"dev\",\"methods\":{},\"title\":\"ClonesWithImmutableArgs\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Enables creating clone contracts with immutable args\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/clones-with-immutable-args/src/ClonesWithImmutableArgs.sol\":\"ClonesWithImmutableArgs\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/clones-with-immutable-args/src/ClonesWithImmutableArgs.sol\":{\"keccak256\":\"0x220db41bfceb0146f86e9be87d3d954fd1d52eadcb3bbfc5cd89e5543a46fd1e\",\"license\":\"BSD\",\"urls\":[\"bzz-raw://19155470db05e2e67a8c14f21cc903bb4833d8e5d248c2183073320c8a595705\",\"dweb:/ipfs/QmTchpXE8MMH1XcYxaZvx64UiVzBatbWy7Sw5HFhVJJjxi\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/clones-with-immutable-args/src/ClonesWithImmutableArgs.sol":"ClonesWithImmutableArgs"},"evmVersion":"london","libraries":{}},"sources":{"lib/clones-with-immutable-args/src/ClonesWithImmutableArgs.sol":{"keccak256":"0x220db41bfceb0146f86e9be87d3d954fd1d52eadcb3bbfc5cd89e5543a46fd1e","urls":["bzz-raw://19155470db05e2e67a8c14f21cc903bb4833d8e5d248c2183073320c8a595705","dweb:/ipfs/QmTchpXE8MMH1XcYxaZvx64UiVzBatbWy7Sw5HFhVJJjxi"],"license":"BSD"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Enables creating clone contracts with immutable args"},"devdoc":{"version":1,"kind":"dev","author":"wighawag, zefram.eth, Saw-mon & Natalie","title":"ClonesWithImmutableArgs"},"id":0}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"397:2170:177:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;397:2170:177;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"397:2170:177:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"PROXY_IMPLEMENTATION_ADDRESS\":{\"details\":\"`bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)`\"},\"PROXY_OWNER_ADDRESS\":{\"details\":\"`bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)`\"}},\"title\":\"Constants\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Constants is a library for storing constants. Simple! Don't put everything in here, just the stuff used in multiple contracts. Constants that only apply to a single contract should be defined in that contract instead.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Constants.sol\":\"Constants\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145\",\"dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Constants.sol":"Constants"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330","urls":["bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145","dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Constants is a library for storing constants. Simple! Don't put everything in here, just the stuff used in multiple contracts. Constants that only apply to a single contract should be defined in that contract instead."},"devdoc":{"version":1,"kind":"dev","title":"Constants"},"ast":{"absolutePath":"src/libraries/Constants.sol","id":92898,"exportedSymbols":{"Constants":[92897],"ResourceMetering":[80165]},"nodeType":"SourceUnit","src":"32:2536:177","nodes":[{"id":92845,"nodeType":"PragmaDirective","src":"32:23:177","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":92847,"nodeType":"ImportDirective","src":"57:63:177","nodes":[],"absolutePath":"src/L1/ResourceMetering.sol","file":"src/L1/ResourceMetering.sol","nameLocation":"-1:-1:-1","scope":92898,"sourceUnit":80166,"symbolAliases":[{"foreign":{"id":92846,"name":"ResourceMetering","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80165,"src":"66:16:177","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92897,"nodeType":"ContractDefinition","src":"397:2170:177","nodes":[{"id":92855,"nodeType":"VariableDeclaration","src":"961:57:177","nodes":[],"constant":true,"documentation":{"id":92849,"nodeType":"StructuredDocumentation","src":"421:535:177","text":"@notice Special address to be used as the tx origin for gas estimation calls in the\n OptimismPortal and CrossDomainMessenger calls. You only need to use this address if\n the minimum gas limit specified by the user is not actually enough to execute the\n given message and you're attempting to estimate the actual necessary gas limit. We\n use address(1) because it's the ecrecover precompile and therefore guaranteed to\n never have any code on any EVM chain."},"mutability":"constant","name":"ESTIMATION_ADDRESS","nameLocation":"987:18:177","scope":92897,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92850,"name":"address","nodeType":"ElementaryTypeName","src":"961:7:177","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":92853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1016:1:177","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":92852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1008:7:177","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":92851,"name":"address","nodeType":"ElementaryTypeName","src":"1008:7:177","typeDescriptions":{}}},"id":92854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1008:10:177","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":92859,"nodeType":"VariableDeclaration","src":"1292:88:177","nodes":[],"constant":true,"documentation":{"id":92856,"nodeType":"StructuredDocumentation","src":"1025:262:177","text":"@notice Value used for the L2 sender storage slot in both the OptimismPortal and the\n CrossDomainMessenger contracts before an actual sender is set. This value is\n non-zero to reduce the gas cost of message passing transactions."},"mutability":"constant","name":"DEFAULT_L2_SENDER","nameLocation":"1318:17:177","scope":92897,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92857,"name":"address","nodeType":"ElementaryTypeName","src":"1292:7:177","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303064456144","id":92858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1338:42:177","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000000000000000000000dEaD"},"visibility":"internal"},{"id":92863,"nodeType":"VariableDeclaration","src":"1549:131:177","nodes":[],"constant":true,"documentation":{"id":92860,"nodeType":"StructuredDocumentation","src":"1387:157:177","text":"@notice The storage slot that holds the address of a proxy implementation.\n @dev `bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)`"},"mutability":"constant","name":"PROXY_IMPLEMENTATION_ADDRESS","nameLocation":"1575:28:177","scope":92897,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":92861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1549:7:177","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":92862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1614:66:177","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"id":92867,"nodeType":"VariableDeclaration","src":"1827:114:177","nodes":[],"constant":true,"documentation":{"id":92864,"nodeType":"StructuredDocumentation","src":"1687:135:177","text":"@notice The storage slot that holds the address of the owner.\n @dev `bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)`"},"mutability":"constant","name":"PROXY_OWNER_ADDRESS","nameLocation":"1853:19:177","scope":92897,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":92865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1827:7:177","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":92866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1875:66:177","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"id":92896,"nodeType":"FunctionDefinition","src":"2090:475:177","nodes":[],"body":{"id":92895,"nodeType":"Block","src":"2188:377:177","nodes":[],"statements":[{"assignments":[92878],"declarations":[{"constant":false,"id":92878,"mutability":"mutable","name":"config","nameLocation":"2237:6:177","nodeType":"VariableDeclaration","scope":92895,"src":"2198:45:177","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$79843_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig"},"typeName":{"id":92877,"nodeType":"UserDefinedTypeName","pathNode":{"id":92876,"name":"ResourceMetering.ResourceConfig","nodeType":"IdentifierPath","referencedDeclaration":79843,"src":"2198:31:177"},"referencedDeclaration":79843,"src":"2198:31:177","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$79843_storage_ptr","typeString":"struct ResourceMetering.ResourceConfig"}},"visibility":"internal"}],"id":92892,"initialValue":{"arguments":[{"hexValue":"32305f3030305f303030","id":92881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2310:10:177","typeDescriptions":{"typeIdentifier":"t_rational_20000000_by_1","typeString":"int_const 20000000"},"value":"20_000_000"},{"hexValue":"3130","id":92882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2356:2:177","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"38","id":92883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2401:1:177","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"hexValue":"31","id":92884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2432:6:177","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1"},{"hexValue":"315f3030305f303030","id":92885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2468:9:177","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},{"expression":{"arguments":[{"id":92888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2512:7:177","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":92887,"name":"uint128","nodeType":"ElementaryTypeName","src":"2512:7:177","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":92886,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2507:4:177","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":92889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2507:13:177","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":92890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2507:17:177","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_20000000_by_1","typeString":"int_const 20000000"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":92879,"name":"ResourceMetering","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80165,"src":"2246:16:177","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ResourceMetering_$80165_$","typeString":"type(contract ResourceMetering)"}},"id":92880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ResourceConfig","nodeType":"MemberAccess","referencedDeclaration":79843,"src":"2246:31:177","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ResourceConfig_$79843_storage_ptr_$","typeString":"type(struct ResourceMetering.ResourceConfig storage pointer)"}},"id":92891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":["maxResourceLimit","elasticityMultiplier","baseFeeMaxChangeDenominator","minimumBaseFee","systemTxMaxGas","maximumBaseFee"],"nodeType":"FunctionCall","src":"2246:289:177","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$79843_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig memory"}},"nodeType":"VariableDeclarationStatement","src":"2198:337:177"},{"expression":{"id":92893,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92878,"src":"2552:6:177","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$79843_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig memory"}},"functionReturnParameters":92873,"id":92894,"nodeType":"Return","src":"2545:13:177"}]},"documentation":{"id":92868,"nodeType":"StructuredDocumentation","src":"1948:137:177","text":"@notice Returns the default values for the ResourceConfig. These are the recommended values\n for a production network."},"implemented":true,"kind":"function","modifiers":[],"name":"DEFAULT_RESOURCE_CONFIG","nameLocation":"2099:23:177","parameters":{"id":92869,"nodeType":"ParameterList","parameters":[],"src":"2122:2:177"},"returnParameters":{"id":92873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92872,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":92896,"src":"2148:38:177","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$79843_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig"},"typeName":{"id":92871,"nodeType":"UserDefinedTypeName","pathNode":{"id":92870,"name":"ResourceMetering.ResourceConfig","nodeType":"IdentifierPath","referencedDeclaration":79843,"src":"2148:31:177"},"referencedDeclaration":79843,"src":"2148:31:177","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$79843_storage_ptr","typeString":"struct ResourceMetering.ResourceConfig"}},"visibility":"internal"}],"src":"2147:40:177"},"scope":92897,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Constants","contractDependencies":[],"contractKind":"library","documentation":{"id":92848,"nodeType":"StructuredDocumentation","src":"122:275:177","text":"@title Constants\n @notice Constants is a library for storing constants. Simple! Don't put everything in here, just\n the stuff used in multiple contracts. Constants that only apply to a single contract\n should be defined in that contract instead."},"fullyImplemented":true,"linearizedBaseContracts":[92897],"name":"Constants","nameLocation":"405:9:177","scope":92898,"usedErrors":[]}],"license":"MIT"},"id":177}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"397:2170:188:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;397:2170:188;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"397:2170:188:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"PROXY_IMPLEMENTATION_ADDRESS\":{\"details\":\"`bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)`\"},\"PROXY_OWNER_ADDRESS\":{\"details\":\"`bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)`\"}},\"title\":\"Constants\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Constants is a library for storing constants. Simple! Don't put everything in here, just the stuff used in multiple contracts. Constants that only apply to a single contract should be defined in that contract instead.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Constants.sol\":\"Constants\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Constants.sol":"Constants"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Constants is a library for storing constants. Simple! Don't put everything in here, just the stuff used in multiple contracts. Constants that only apply to a single contract should be defined in that contract instead."},"devdoc":{"version":1,"kind":"dev","title":"Constants"},"id":188}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":"Context"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts."},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","id":51635,"exportedSymbols":{"Context":[51634]},"nodeType":"SourceUnit","src":"86:758:58","nodes":[{"id":51614,"nodeType":"PragmaDirective","src":"86:23:58","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51634,"nodeType":"ContractDefinition","src":"608:235:58","nodes":[{"id":51624,"nodeType":"FunctionDefinition","src":"640:96:58","nodes":[],"body":{"id":51623,"nodeType":"Block","src":"702:34:58","nodes":[],"statements":[{"expression":{"expression":{"id":51620,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"719:10:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":51619,"id":51622,"nodeType":"Return","src":"712:17:58"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:58","parameters":{"id":51616,"nodeType":"ParameterList","parameters":[],"src":"659:2:58"},"returnParameters":{"id":51619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51618,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51624,"src":"693:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51617,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:58"},"scope":51634,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":51633,"nodeType":"FunctionDefinition","src":"742:99:58","nodes":[],"body":{"id":51632,"nodeType":"Block","src":"809:32:58","nodes":[],"statements":[{"expression":{"expression":{"id":51629,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"826:8:58","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":51628,"id":51631,"nodeType":"Return","src":"819:15:58"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:58","parameters":{"id":51625,"nodeType":"ParameterList","parameters":[],"src":"759:2:58"},"returnParameters":{"id":51628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51627,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51633,"src":"793:14:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51626,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:58"},"scope":51634,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":51615,"nodeType":"StructuredDocumentation","src":"111:496:58","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"linearizedBaseContracts":[51634],"name":"Context","nameLocation":"626:7:58","scope":51635,"usedErrors":[]}],"license":"MIT"},"id":58}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":"Context"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts."},"id":58}

@@ -1,1 +0,1 @@

{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":"ContextUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":46844,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts."},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","id":46846,"exportedSymbols":{"AddressUpgradeable":[46803],"ContextUpgradeable":[46845],"Initializable":[45457]},"nodeType":"SourceUnit","src":"86:1259:32","nodes":[{"id":46805,"nodeType":"PragmaDirective","src":"86:23:32","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":46806,"nodeType":"ImportDirective","src":"110:42:32","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":46846,"sourceUnit":45458,"symbolAliases":[],"unitAlias":""},{"id":46845,"nodeType":"ContractDefinition","src":"651:693:32","nodes":[{"id":46815,"nodeType":"FunctionDefinition","src":"711:59:32","nodes":[],"body":{"id":46814,"nodeType":"Block","src":"763:7:32","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":46812,"kind":"modifierInvocation","modifierName":{"id":46811,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":45420,"src":"746:16:32"},"nodeType":"ModifierInvocation","src":"746:16:32"}],"name":"__Context_init","nameLocation":"720:14:32","parameters":{"id":46810,"nodeType":"ParameterList","parameters":[],"src":"734:2:32"},"returnParameters":{"id":46813,"nodeType":"ParameterList","parameters":[],"src":"763:0:32"},"scope":46845,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46821,"nodeType":"FunctionDefinition","src":"776:69:32","nodes":[],"body":{"id":46820,"nodeType":"Block","src":"838:7:32","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":46818,"kind":"modifierInvocation","modifierName":{"id":46817,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":45420,"src":"821:16:32"},"nodeType":"ModifierInvocation","src":"821:16:32"}],"name":"__Context_init_unchained","nameLocation":"785:24:32","parameters":{"id":46816,"nodeType":"ParameterList","parameters":[],"src":"809:2:32"},"returnParameters":{"id":46819,"nodeType":"ParameterList","parameters":[],"src":"838:0:32"},"scope":46845,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46830,"nodeType":"FunctionDefinition","src":"850:96:32","nodes":[],"body":{"id":46829,"nodeType":"Block","src":"912:34:32","nodes":[],"statements":[{"expression":{"expression":{"id":46826,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"929:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":46827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"929:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":46825,"id":46828,"nodeType":"Return","src":"922:17:32"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"859:10:32","parameters":{"id":46822,"nodeType":"ParameterList","parameters":[],"src":"869:2:32"},"returnParameters":{"id":46825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46830,"src":"903:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46823,"name":"address","nodeType":"ElementaryTypeName","src":"903:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"902:9:32"},"scope":46845,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":46839,"nodeType":"FunctionDefinition","src":"952:99:32","nodes":[],"body":{"id":46838,"nodeType":"Block","src":"1019:32:32","nodes":[],"statements":[{"expression":{"expression":{"id":46835,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1036:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":46836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"1036:8:32","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":46834,"id":46837,"nodeType":"Return","src":"1029:15:32"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"961:8:32","parameters":{"id":46831,"nodeType":"ParameterList","parameters":[],"src":"969:2:32"},"returnParameters":{"id":46834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46839,"src":"1003:14:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46832,"name":"bytes","nodeType":"ElementaryTypeName","src":"1003:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1002:16:32"},"scope":46845,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":46844,"nodeType":"VariableDeclaration","src":"1316:25:32","nodes":[],"constant":false,"documentation":{"id":46840,"nodeType":"StructuredDocumentation","src":"1057:254:32","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"mutability":"mutable","name":"__gap","nameLocation":"1336:5:32","scope":46845,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":46841,"name":"uint256","nodeType":"ElementaryTypeName","src":"1316:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46843,"length":{"hexValue":"3530","id":46842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1324:2:32","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1316:11:32","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"abstract":true,"baseContracts":[{"baseName":{"id":46808,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":45457,"src":"691:13:32"},"id":46809,"nodeType":"InheritanceSpecifier","src":"691:13:32"}],"canonicalName":"ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":46807,"nodeType":"StructuredDocumentation","src":"154:496:32","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"linearizedBaseContracts":[46845,45457],"name":"ContextUpgradeable","nameLocation":"669:18:32","scope":46846,"usedErrors":[]}],"license":"MIT"},"id":32}
{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":"ContextUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":46844,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts."},"id":32}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"424:971:59:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;424:971:59;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"424:971:59:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Counters.sol":"Counters"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Counters.sol":{"keccak256":"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1","urls":["bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee","dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Matt Condon (@shrugs)","details":"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`","title":"Counters"},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Counters.sol","id":51709,"exportedSymbols":{"Counters":[51708]},"nodeType":"SourceUnit","src":"87:1309:59","nodes":[{"id":51636,"nodeType":"PragmaDirective","src":"87:23:59","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51708,"nodeType":"ContractDefinition","src":"424:971:59","nodes":[{"id":51640,"nodeType":"StructDefinition","src":"447:374:59","nodes":[],"canonicalName":"Counters.Counter","members":[{"constant":false,"id":51639,"mutability":"mutable","name":"_value","nameLocation":"794:6:59","nodeType":"VariableDeclaration","scope":51640,"src":"786:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51638,"name":"uint256","nodeType":"ElementaryTypeName","src":"786:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Counter","nameLocation":"454:7:59","scope":51708,"visibility":"public"},{"id":51652,"nodeType":"FunctionDefinition","src":"827:112:59","nodes":[],"body":{"id":51651,"nodeType":"Block","src":"901:38:59","nodes":[],"statements":[{"expression":{"expression":{"id":51648,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51643,"src":"918:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$51640_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":51649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":51639,"src":"918:14:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":51647,"id":51650,"nodeType":"Return","src":"911:21:59"}]},"implemented":true,"kind":"function","modifiers":[],"name":"current","nameLocation":"836:7:59","parameters":{"id":51644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51643,"mutability":"mutable","name":"counter","nameLocation":"860:7:59","nodeType":"VariableDeclaration","scope":51652,"src":"844:23:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$51640_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":51642,"nodeType":"UserDefinedTypeName","pathNode":{"id":51641,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":51640,"src":"844:7:59"},"referencedDeclaration":51640,"src":"844:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$51640_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"843:25:59"},"returnParameters":{"id":51647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51652,"src":"892:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51645,"name":"uint256","nodeType":"ElementaryTypeName","src":"892:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:9:59"},"scope":51708,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":51666,"nodeType":"FunctionDefinition","src":"945:123:59","nodes":[],"body":{"id":51665,"nodeType":"Block","src":"998:70:59","nodes":[],"statements":[{"id":51664,"nodeType":"UncheckedBlock","src":"1008:54:59","statements":[{"expression":{"id":51662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51658,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51655,"src":"1032:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$51640_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":51660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":51639,"src":"1032:14:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":51661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:1:59","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1032:19:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51663,"nodeType":"ExpressionStatement","src":"1032:19:59"}]}]},"implemented":true,"kind":"function","modifiers":[],"name":"increment","nameLocation":"954:9:59","parameters":{"id":51656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51655,"mutability":"mutable","name":"counter","nameLocation":"980:7:59","nodeType":"VariableDeclaration","scope":51666,"src":"964:23:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$51640_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":51654,"nodeType":"UserDefinedTypeName","pathNode":{"id":51653,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":51640,"src":"964:7:59"},"referencedDeclaration":51640,"src":"964:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$51640_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"963:25:59"},"returnParameters":{"id":51657,"nodeType":"ParameterList","parameters":[],"src":"998:0:59"},"scope":51708,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":51694,"nodeType":"FunctionDefinition","src":"1074:229:59","nodes":[],"body":{"id":51693,"nodeType":"Block","src":"1127:176:59","nodes":[],"statements":[{"assignments":[51673],"declarations":[{"constant":false,"id":51673,"mutability":"mutable","name":"value","nameLocation":"1145:5:59","nodeType":"VariableDeclaration","scope":51693,"src":"1137:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51672,"name":"uint256","nodeType":"ElementaryTypeName","src":"1137:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51676,"initialValue":{"expression":{"id":51674,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51669,"src":"1153:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$51640_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":51675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":51639,"src":"1153:14:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1137:30:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51678,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51673,"src":"1185:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":51679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1193:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1185:9:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f756e7465723a2064656372656d656e74206f766572666c6f77","id":51681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1196:29:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""},"value":"Counter: decrement overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""}],"id":51677,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1177:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1177:49:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51683,"nodeType":"ExpressionStatement","src":"1177:49:59"},{"id":51692,"nodeType":"UncheckedBlock","src":"1236:61:59","statements":[{"expression":{"id":51690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51684,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51669,"src":"1260:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$51640_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":51686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":51639,"src":"1260:14:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51687,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51673,"src":"1277:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":51688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1285:1:59","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1277:9:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1260:26:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51691,"nodeType":"ExpressionStatement","src":"1260:26:59"}]}]},"implemented":true,"kind":"function","modifiers":[],"name":"decrement","nameLocation":"1083:9:59","parameters":{"id":51670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51669,"mutability":"mutable","name":"counter","nameLocation":"1109:7:59","nodeType":"VariableDeclaration","scope":51694,"src":"1093:23:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$51640_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":51668,"nodeType":"UserDefinedTypeName","pathNode":{"id":51667,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":51640,"src":"1093:7:59"},"referencedDeclaration":51640,"src":"1093:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$51640_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1092:25:59"},"returnParameters":{"id":51671,"nodeType":"ParameterList","parameters":[],"src":"1127:0:59"},"scope":51708,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":51707,"nodeType":"FunctionDefinition","src":"1309:84:59","nodes":[],"body":{"id":51706,"nodeType":"Block","src":"1358:35:59","nodes":[],"statements":[{"expression":{"id":51704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51700,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51697,"src":"1368:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$51640_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":51702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":51639,"src":"1368:14:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":51703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1385:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1368:18:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51705,"nodeType":"ExpressionStatement","src":"1368:18:59"}]},"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"1318:5:59","parameters":{"id":51698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51697,"mutability":"mutable","name":"counter","nameLocation":"1340:7:59","nodeType":"VariableDeclaration","scope":51707,"src":"1324:23:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$51640_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":51696,"nodeType":"UserDefinedTypeName","pathNode":{"id":51695,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":51640,"src":"1324:7:59"},"referencedDeclaration":51640,"src":"1324:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$51640_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1323:25:59"},"returnParameters":{"id":51699,"nodeType":"ParameterList","parameters":[],"src":"1358:0:59"},"scope":51708,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Counters","contractDependencies":[],"contractKind":"library","documentation":{"id":51637,"nodeType":"StructuredDocumentation","src":"112:311:59","text":" @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`"},"fullyImplemented":true,"linearizedBaseContracts":[51708],"name":"Counters","nameLocation":"432:8:59","scope":51709,"usedErrors":[]}],"license":"MIT"},"id":59}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"424:971:59:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;424:971:59;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"424:971:59:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Counters.sol":"Counters"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Counters.sol":{"keccak256":"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1","urls":["bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee","dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Matt Condon (@shrugs)","details":"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`","title":"Counters"},"id":59}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"CrossDomainOwnable\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on L1. Note that this contract is only safe to be used if the CrossDomainMessenger system is bypassed and the caller on L1 is calling the OptimismPortal directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/CrossDomainOwnable.sol\":\"CrossDomainOwnable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/L2/CrossDomainOwnable.sol\":{\"keccak256\":\"0x74c620dc7398f04a512e71bfb077c22b1d770775869a842a3902ea2e4dffc96c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e719a7c63d513f659698cfa00b3ae91b87a38dcef0d0d09285b0ade16c6ada67\",\"dweb:/ipfs/QmaW6Fvnqxo2G49ZSqhVhV2553evrkjbL9rMB8nrLVWJBN\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/CrossDomainOwnable.sol":"CrossDomainOwnable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/L2/CrossDomainOwnable.sol":{"keccak256":"0x74c620dc7398f04a512e71bfb077c22b1d770775869a842a3902ea2e4dffc96c","urls":["bzz-raw://e719a7c63d513f659698cfa00b3ae91b87a38dcef0d0d09285b0ade16c6ada67","dweb:/ipfs/QmaW6Fvnqxo2G49ZSqhVhV2553evrkjbL9rMB8nrLVWJBN"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"src/L2/CrossDomainOwnable.sol:CrossDomainOwnable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","notice":"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on L1. Note that this contract is only safe to be used if the CrossDomainMessenger system is bypassed and the caller on L1 is calling the OptimismPortal directly."},"devdoc":{"version":1,"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"CrossDomainOwnable"},"ast":{"absolutePath":"src/L2/CrossDomainOwnable.sol","id":81253,"exportedSymbols":{"AddressAliasHelper":[101645],"CrossDomainOwnable":[81252],"Ownable":[47778]},"nodeType":"SourceUnit","src":"32:924:132","nodes":[{"id":81226,"nodeType":"PragmaDirective","src":"32:23:132","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":81228,"nodeType":"ImportDirective","src":"57:69:132","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":81253,"sourceUnit":47779,"symbolAliases":[{"foreign":{"id":81227,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47778,"src":"66:7:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81230,"nodeType":"ImportDirective","src":"127:71:132","nodes":[],"absolutePath":"src/vendor/AddressAliasHelper.sol","file":"src/vendor/AddressAliasHelper.sol","nameLocation":"-1:-1:-1","scope":81253,"sourceUnit":101646,"symbolAliases":[{"foreign":{"id":81229,"name":"AddressAliasHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101645,"src":"136:18:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81252,"nodeType":"ContractDefinition","src":"541:414:132","nodes":[{"id":81251,"nodeType":"FunctionDefinition","src":"755:198:132","nodes":[],"body":{"id":81250,"nodeType":"Block","src":"801:152:132","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":81239,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"832:5:132","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"832:7:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":81243,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"878:3:132","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"878:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":81241,"name":"AddressAliasHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101645,"src":"843:18:132","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressAliasHelper_$101645_$","typeString":"type(library AddressAliasHelper)"}},"id":81242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"undoL1ToL2Alias","nodeType":"MemberAccess","referencedDeclaration":101644,"src":"843:34:132","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_address_$","typeString":"function (address) pure returns (address)"}},"id":81245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"843:46:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"832:57:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":81247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"891:45:132","typeDescriptions":{"typeIdentifier":"t_stringliteral_34d987cb70bded1286d07f3c5039172359e8e6cc694bc0779ca078ef18622293","typeString":"literal_string \"CrossDomainOwnable: caller is not the owner\""},"value":"CrossDomainOwnable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_34d987cb70bded1286d07f3c5039172359e8e6cc694bc0779ca078ef18622293","typeString":"literal_string \"CrossDomainOwnable: caller is not the owner\""}],"id":81238,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"811:7:132","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"811:135:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81249,"nodeType":"ExpressionStatement","src":"811:135:132"}]},"baseFunctions":[47720],"documentation":{"id":81234,"nodeType":"StructuredDocumentation","src":"595:155:132","text":"@notice Overrides the implementation of the `onlyOwner` modifier to check that the unaliased\n `msg.sender` is the owner of the contract."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"764:11:132","overrides":{"id":81236,"nodeType":"OverrideSpecifier","overrides":[],"src":"792:8:132"},"parameters":{"id":81235,"nodeType":"ParameterList","parameters":[],"src":"775:2:132"},"returnParameters":{"id":81237,"nodeType":"ParameterList","parameters":[],"src":"801:0:132"},"scope":81252,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":81232,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":47778,"src":"581:7:132"},"id":81233,"nodeType":"InheritanceSpecifier","src":"581:7:132"}],"canonicalName":"CrossDomainOwnable","contractDependencies":[],"contractKind":"contract","documentation":{"id":81231,"nodeType":"StructuredDocumentation","src":"200:341:132","text":"@title CrossDomainOwnable\n @notice This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned\n by contracts on L1. Note that this contract is only safe to be used if the\n CrossDomainMessenger system is bypassed and the caller on L1 is calling the\n OptimismPortal directly."},"fullyImplemented":true,"linearizedBaseContracts":[81252,47778,51634],"name":"CrossDomainOwnable","nameLocation":"559:18:132","scope":81253,"usedErrors":[]}],"license":"MIT"},"id":132}
{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"CrossDomainOwnable\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on L1. Note that this contract is only safe to be used if the CrossDomainMessenger system is bypassed and the caller on L1 is calling the OptimismPortal directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/CrossDomainOwnable.sol\":\"CrossDomainOwnable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/L2/CrossDomainOwnable.sol\":{\"keccak256\":\"0x74c620dc7398f04a512e71bfb077c22b1d770775869a842a3902ea2e4dffc96c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e719a7c63d513f659698cfa00b3ae91b87a38dcef0d0d09285b0ade16c6ada67\",\"dweb:/ipfs/QmaW6Fvnqxo2G49ZSqhVhV2553evrkjbL9rMB8nrLVWJBN\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/CrossDomainOwnable.sol":"CrossDomainOwnable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/L2/CrossDomainOwnable.sol":{"keccak256":"0x74c620dc7398f04a512e71bfb077c22b1d770775869a842a3902ea2e4dffc96c","urls":["bzz-raw://e719a7c63d513f659698cfa00b3ae91b87a38dcef0d0d09285b0ade16c6ada67","dweb:/ipfs/QmaW6Fvnqxo2G49ZSqhVhV2553evrkjbL9rMB8nrLVWJBN"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"src/L2/CrossDomainOwnable.sol:CrossDomainOwnable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","notice":"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on L1. Note that this contract is only safe to be used if the CrossDomainMessenger system is bypassed and the caller on L1 is calling the OptimismPortal directly."},"devdoc":{"version":1,"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"CrossDomainOwnable"},"id":137}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"CrossDomainOwnable2\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on L1. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/CrossDomainOwnable2.sol\":\"CrossDomainOwnable2\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145\",\"dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7\"]},\"src/L2/CrossDomainOwnable2.sol\":{\"keccak256\":\"0x3870d0e14e8d2621c806821f9850f09006472b57778b2fa0a0da19503efb39b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f7378828551219dfaa2216274d59cbed466da03f0cee2a7cf8ad60770833c8c\",\"dweb:/ipfs/Qmb8XYG18pZX8cGRGVaEH24SmXuZ7gvyhYPFoE8xsDje55\"]},\"src/L2/L2CrossDomainMessenger.sol\":{\"keccak256\":\"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b\",\"dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC\"]},\"src/L2/L2ToL1MessagePasser.sol\":{\"keccak256\":\"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460\",\"dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xdd186cc21cfd5eb4404e02382a60674283b55a7fd488d5a3b5e902772644d6f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a03255efeec621c48e60316f38bfd919744c1379c36072e6990d14f20e2186fd\",\"dweb:/ipfs/QmbWjAZXN7sBzZuypMXrH92zKbMtq376NXxGAK1xj5VssB\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/CrossDomainOwnable2.sol":"CrossDomainOwnable2"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330","urls":["bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145","dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7"],"license":"MIT"},"src/L2/CrossDomainOwnable2.sol":{"keccak256":"0x3870d0e14e8d2621c806821f9850f09006472b57778b2fa0a0da19503efb39b1","urls":["bzz-raw://7f7378828551219dfaa2216274d59cbed466da03f0cee2a7cf8ad60770833c8c","dweb:/ipfs/Qmb8XYG18pZX8cGRGVaEH24SmXuZ7gvyhYPFoE8xsDje55"],"license":"MIT"},"src/L2/L2CrossDomainMessenger.sol":{"keccak256":"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355","urls":["bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b","dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC"],"license":"MIT"},"src/L2/L2ToL1MessagePasser.sol":{"keccak256":"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21","urls":["bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460","dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xdd186cc21cfd5eb4404e02382a60674283b55a7fd488d5a3b5e902772644d6f4","urls":["bzz-raw://a03255efeec621c48e60316f38bfd919744c1379c36072e6990d14f20e2186fd","dweb:/ipfs/QmbWjAZXN7sBzZuypMXrH92zKbMtq376NXxGAK1xj5VssB"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"src/L2/CrossDomainOwnable2.sol:CrossDomainOwnable2","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","notice":"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on L1. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly."},"devdoc":{"version":1,"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"CrossDomainOwnable2"},"ast":{"absolutePath":"src/L2/CrossDomainOwnable2.sol","id":81300,"exportedSymbols":{"CrossDomainOwnable2":[81299],"L2CrossDomainMessenger":[82072],"Ownable":[47778],"Predeploys":[93856]},"nodeType":"SourceUnit","src":"32:1253:133","nodes":[{"id":81254,"nodeType":"PragmaDirective","src":"32:23:133","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":81256,"nodeType":"ImportDirective","src":"57:58:133","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":81300,"sourceUnit":93857,"symbolAliases":[{"foreign":{"id":81255,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93856,"src":"66:10:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81258,"nodeType":"ImportDirective","src":"116:75:133","nodes":[],"absolutePath":"src/L2/L2CrossDomainMessenger.sol","file":"src/L2/L2CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":81300,"sourceUnit":82073,"symbolAliases":[{"foreign":{"id":81257,"name":"L2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82072,"src":"125:22:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81260,"nodeType":"ImportDirective","src":"192:69:133","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":81300,"sourceUnit":47779,"symbolAliases":[{"foreign":{"id":81259,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47778,"src":"201:7:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81299,"nodeType":"ContractDefinition","src":"605:679:133","nodes":[{"id":81298,"nodeType":"FunctionDefinition","src":"909:373:133","nodes":[],"body":{"id":81297,"nodeType":"Block","src":"955:327:133","nodes":[],"statements":[{"assignments":[81270],"declarations":[{"constant":false,"id":81270,"mutability":"mutable","name":"messenger","nameLocation":"988:9:133","nodeType":"VariableDeclaration","scope":81297,"src":"965:32:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$82072","typeString":"contract L2CrossDomainMessenger"},"typeName":{"id":81269,"nodeType":"UserDefinedTypeName","pathNode":{"id":81268,"name":"L2CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":82072,"src":"965:22:133"},"referencedDeclaration":82072,"src":"965:22:133","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$82072","typeString":"contract L2CrossDomainMessenger"}},"visibility":"internal"}],"id":81275,"initialValue":{"arguments":[{"expression":{"id":81272,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93856,"src":"1023:10:133","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$93856_$","typeString":"type(library Predeploys)"}},"id":81273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_CROSS_DOMAIN_MESSENGER","nodeType":"MemberAccess","referencedDeclaration":93736,"src":"1023:36:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81271,"name":"L2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82072,"src":"1000:22:133","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L2CrossDomainMessenger_$82072_$","typeString":"type(contract L2CrossDomainMessenger)"}},"id":81274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1000:60:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$82072","typeString":"contract L2CrossDomainMessenger"}},"nodeType":"VariableDeclarationStatement","src":"965:95:133"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81277,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1079:3:133","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1079:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":81281,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81270,"src":"1101:9:133","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$82072","typeString":"contract L2CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$82072","typeString":"contract L2CrossDomainMessenger"}],"id":81280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1093:7:133","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81279,"name":"address","nodeType":"ElementaryTypeName","src":"1093:7:133","typeDescriptions":{}}},"id":81282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1093:18:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1079:32:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4f776e61626c65323a2063616c6c6572206973206e6f7420746865206d657373656e676572","id":81284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1113:50:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_90885beba6d8ea36f745326ff4a084c229725071692f6ddfe94d01d3b4813888","typeString":"literal_string \"CrossDomainOwnable2: caller is not the messenger\""},"value":"CrossDomainOwnable2: caller is not the messenger"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_90885beba6d8ea36f745326ff4a084c229725071692f6ddfe94d01d3b4813888","typeString":"literal_string \"CrossDomainOwnable2: caller is not the messenger\""}],"id":81276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1071:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1071:93:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81286,"nodeType":"ExpressionStatement","src":"1071:93:133"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":81288,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"1183:5:133","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1183:7:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":81290,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81270,"src":"1194:9:133","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$82072","typeString":"contract L2CrossDomainMessenger"}},"id":81291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"xDomainMessageSender","nodeType":"MemberAccess","referencedDeclaration":98498,"src":"1194:30:133","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":81292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1194:32:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1183:43:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4f776e61626c65323a2063616c6c6572206973206e6f7420746865206f776e6572","id":81294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1228:46:133","typeDescriptions":{"typeIdentifier":"t_stringliteral_6286a957f53e75ef1584fc725b50b9b26cd2ce78d6f59b02b2b5732930e665ff","typeString":"literal_string \"CrossDomainOwnable2: caller is not the owner\""},"value":"CrossDomainOwnable2: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6286a957f53e75ef1584fc725b50b9b26cd2ce78d6f59b02b2b5732930e665ff","typeString":"literal_string \"CrossDomainOwnable2: caller is not the owner\""}],"id":81287,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1175:7:133","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1175:100:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81296,"nodeType":"ExpressionStatement","src":"1175:100:133"}]},"baseFunctions":[47720],"documentation":{"id":81264,"nodeType":"StructuredDocumentation","src":"660:244:133","text":"@notice Overrides the implementation of the `onlyOwner` modifier to check that the unaliased\n `xDomainMessageSender` is the owner of the contract. This value is set to the caller\n of the L1CrossDomainMessenger."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"918:11:133","overrides":{"id":81266,"nodeType":"OverrideSpecifier","overrides":[],"src":"946:8:133"},"parameters":{"id":81265,"nodeType":"ParameterList","parameters":[],"src":"929:2:133"},"returnParameters":{"id":81267,"nodeType":"ParameterList","parameters":[],"src":"955:0:133"},"scope":81299,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":81262,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":47778,"src":"646:7:133"},"id":81263,"nodeType":"InheritanceSpecifier","src":"646:7:133"}],"canonicalName":"CrossDomainOwnable2","contractDependencies":[],"contractKind":"contract","documentation":{"id":81261,"nodeType":"StructuredDocumentation","src":"263:342:133","text":"@title CrossDomainOwnable2\n @notice This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned\n by contracts on L1. Note that this contract is meant to be used with systems that use\n the CrossDomainMessenger system. It will not work if the OptimismPortal is used\n directly."},"fullyImplemented":true,"linearizedBaseContracts":[81299,47778,51634],"name":"CrossDomainOwnable2","nameLocation":"623:19:133","scope":81300,"usedErrors":[]}],"license":"MIT"},"id":133}
{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"CrossDomainOwnable2\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on L1. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/CrossDomainOwnable2.sol\":\"CrossDomainOwnable2\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/L2/CrossDomainOwnable2.sol\":{\"keccak256\":\"0x3870d0e14e8d2621c806821f9850f09006472b57778b2fa0a0da19503efb39b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f7378828551219dfaa2216274d59cbed466da03f0cee2a7cf8ad60770833c8c\",\"dweb:/ipfs/Qmb8XYG18pZX8cGRGVaEH24SmXuZ7gvyhYPFoE8xsDje55\"]},\"src/L2/L2CrossDomainMessenger.sol\":{\"keccak256\":\"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b\",\"dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC\"]},\"src/L2/L2ToL1MessagePasser.sol\":{\"keccak256\":\"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460\",\"dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776\",\"dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/CrossDomainOwnable2.sol":"CrossDomainOwnable2"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/L2/CrossDomainOwnable2.sol":{"keccak256":"0x3870d0e14e8d2621c806821f9850f09006472b57778b2fa0a0da19503efb39b1","urls":["bzz-raw://7f7378828551219dfaa2216274d59cbed466da03f0cee2a7cf8ad60770833c8c","dweb:/ipfs/Qmb8XYG18pZX8cGRGVaEH24SmXuZ7gvyhYPFoE8xsDje55"],"license":"MIT"},"src/L2/L2CrossDomainMessenger.sol":{"keccak256":"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355","urls":["bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b","dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC"],"license":"MIT"},"src/L2/L2ToL1MessagePasser.sol":{"keccak256":"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21","urls":["bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460","dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd","urls":["bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776","dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"src/L2/CrossDomainOwnable2.sol:CrossDomainOwnable2","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","notice":"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on L1. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly."},"devdoc":{"version":1,"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"CrossDomainOwnable2"},"id":138}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"isLocal","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_isLocal","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"},{"name":"isLocal","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isLocal()":"0ee04629","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","transferOwnership(address,bool)":"b242e534"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isLocal\",\"type\":\"bool\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"isLocal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isLocal\",\"type\":\"bool\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"OwnershipTransferred(address,address,bool)\":{\"params\":{\"isLocal\":\"Configures the `isLocal` contract variable.\",\"newOwner\":\"The new owner of the contract.\",\"previousOwner\":\"The previous owner of the contract.\"}}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferOwnership(address,bool)\":{\"params\":{\"_isLocal\":\"Configures the locality of the ownership.\",\"_owner\":\"The new owner of the contract.\"}}},\"title\":\"CrossDomainOwnable3\",\"version\":1},\"userdoc\":{\"events\":{\"OwnershipTransferred(address,address,bool)\":{\"notice\":\"Emits when ownership of the contract is transferred. Includes the isLocal field in addition to the standard `Ownable` OwnershipTransferred event.\"}},\"kind\":\"user\",\"methods\":{\"isLocal()\":{\"notice\":\"If true, the contract uses the cross domain _checkOwner function override. If false it uses the standard Ownable _checkOwner function.\"},\"transferOwnership(address,bool)\":{\"notice\":\"Allows for ownership to be transferred with specifying the locality.\"}},\"notice\":\"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on either L1 or L2. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/CrossDomainOwnable3.sol\":\"CrossDomainOwnable3\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145\",\"dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7\"]},\"src/L2/CrossDomainOwnable3.sol\":{\"keccak256\":\"0x21c72e76df8a82be8cd0bbaa647a6afde61128c8159ccdcbbc576a5136804afd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6973f96c66413d0d1fc2a9711cd555123389d4b9f7285e5715068c5994d0c7\",\"dweb:/ipfs/QmXFekgYu4KrKFTcbFMAfBEKsA2BAxJcVfaKquFjpHBedR\"]},\"src/L2/L2CrossDomainMessenger.sol\":{\"keccak256\":\"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b\",\"dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC\"]},\"src/L2/L2ToL1MessagePasser.sol\":{\"keccak256\":\"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460\",\"dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xdd186cc21cfd5eb4404e02382a60674283b55a7fd488d5a3b5e902772644d6f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a03255efeec621c48e60316f38bfd919744c1379c36072e6990d14f20e2186fd\",\"dweb:/ipfs/QmbWjAZXN7sBzZuypMXrH92zKbMtq376NXxGAK1xj5VssB\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true},{"internalType":"bool","name":"isLocal","type":"bool","indexed":false}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"isLocal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bool","name":"_isLocal","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferOwnership(address,bool)":{"params":{"_isLocal":"Configures the locality of the ownership.","_owner":"The new owner of the contract."}}},"version":1},"userdoc":{"kind":"user","methods":{"isLocal()":{"notice":"If true, the contract uses the cross domain _checkOwner function override. If false it uses the standard Ownable _checkOwner function."},"transferOwnership(address,bool)":{"notice":"Allows for ownership to be transferred with specifying the locality."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/CrossDomainOwnable3.sol":"CrossDomainOwnable3"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330","urls":["bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145","dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7"],"license":"MIT"},"src/L2/CrossDomainOwnable3.sol":{"keccak256":"0x21c72e76df8a82be8cd0bbaa647a6afde61128c8159ccdcbbc576a5136804afd","urls":["bzz-raw://ed6973f96c66413d0d1fc2a9711cd555123389d4b9f7285e5715068c5994d0c7","dweb:/ipfs/QmXFekgYu4KrKFTcbFMAfBEKsA2BAxJcVfaKquFjpHBedR"],"license":"MIT"},"src/L2/L2CrossDomainMessenger.sol":{"keccak256":"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355","urls":["bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b","dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC"],"license":"MIT"},"src/L2/L2ToL1MessagePasser.sol":{"keccak256":"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21","urls":["bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460","dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xdd186cc21cfd5eb4404e02382a60674283b55a7fd488d5a3b5e902772644d6f4","urls":["bzz-raw://a03255efeec621c48e60316f38bfd919744c1379c36072e6990d14f20e2186fd","dweb:/ipfs/QmbWjAZXN7sBzZuypMXrH92zKbMtq376NXxGAK1xj5VssB"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"src/L2/CrossDomainOwnable3.sol:CrossDomainOwnable3","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":81314,"contract":"src/L2/CrossDomainOwnable3.sol:CrossDomainOwnable3","label":"isLocal","offset":20,"slot":"0","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"isLocal()":{"notice":"If true, the contract uses the cross domain _checkOwner function override. If false it uses the standard Ownable _checkOwner function."},"transferOwnership(address,bool)":{"notice":"Allows for ownership to be transferred with specifying the locality."}},"events":{"OwnershipTransferred(address,address,bool)":{"notice":"Emits when ownership of the contract is transferred. Includes the isLocal field in addition to the standard `Ownable` OwnershipTransferred event."}},"notice":"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on either L1 or L2. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly."},"devdoc":{"version":1,"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferOwnership(address,bool)":{"params":{"_isLocal":"Configures the locality of the ownership.","_owner":"The new owner of the contract."}}},"events":{"OwnershipTransferred(address,address,bool)":{"params":{"isLocal":"Configures the `isLocal` contract variable.","newOwner":"The new owner of the contract.","previousOwner":"The previous owner of the contract."}}},"title":"CrossDomainOwnable3"},"ast":{"absolutePath":"src/L2/CrossDomainOwnable3.sol","id":81413,"exportedSymbols":{"CrossDomainOwnable3":[81412],"L2CrossDomainMessenger":[82072],"Ownable":[47778],"Predeploys":[93856]},"nodeType":"SourceUnit","src":"32:2654:134","nodes":[{"id":81301,"nodeType":"PragmaDirective","src":"32:23:134","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":81303,"nodeType":"ImportDirective","src":"57:58:134","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":81413,"sourceUnit":93857,"symbolAliases":[{"foreign":{"id":81302,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93856,"src":"66:10:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81305,"nodeType":"ImportDirective","src":"116:75:134","nodes":[],"absolutePath":"src/L2/L2CrossDomainMessenger.sol","file":"src/L2/L2CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":81413,"sourceUnit":82073,"symbolAliases":[{"foreign":{"id":81304,"name":"L2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82072,"src":"125:22:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81307,"nodeType":"ImportDirective","src":"192:69:134","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":81413,"sourceUnit":47779,"symbolAliases":[{"foreign":{"id":81306,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47778,"src":"201:7:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81412,"nodeType":"ContractDefinition","src":"618:2067:134","nodes":[{"id":81314,"nodeType":"VariableDeclaration","src":"840:26:134","nodes":[],"constant":false,"documentation":{"id":81311,"nodeType":"StructuredDocumentation","src":"673:162:134","text":"@notice If true, the contract uses the cross domain _checkOwner function override.\n If false it uses the standard Ownable _checkOwner function."},"functionSelector":"0ee04629","mutability":"mutable","name":"isLocal","nameLocation":"852:7:134","scope":81412,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81312,"name":"bool","nodeType":"ElementaryTypeName","src":"840:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":81313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"862:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"id":81323,"nodeType":"EventDefinition","src":"1249:98:134","nodes":[],"anonymous":false,"documentation":{"id":81315,"nodeType":"StructuredDocumentation","src":"873:371:134","text":"@notice Emits when ownership of the contract is transferred. Includes the\n isLocal field in addition to the standard `Ownable` OwnershipTransferred event.\n @param previousOwner The previous owner of the contract.\n @param newOwner The new owner of the contract.\n @param isLocal Configures the `isLocal` contract variable."},"eventSelector":"7fdc2a4b6eb39ec3363d710d188620bd1e97b3c434161f187b4d0dc0544faa58","name":"OwnershipTransferred","nameLocation":"1255:20:134","parameters":{"id":81322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81317,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1292:13:134","nodeType":"VariableDeclaration","scope":81323,"src":"1276:29:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81316,"name":"address","nodeType":"ElementaryTypeName","src":"1276:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81319,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1323:8:134","nodeType":"VariableDeclaration","scope":81323,"src":"1307:24:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81318,"name":"address","nodeType":"ElementaryTypeName","src":"1307:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81321,"indexed":false,"mutability":"mutable","name":"isLocal","nameLocation":"1338:7:134","nodeType":"VariableDeclaration","scope":81323,"src":"1333:12:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81320,"name":"bool","nodeType":"ElementaryTypeName","src":"1333:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1275:71:134"}},{"id":81363,"nodeType":"FunctionDefinition","src":"1559:342:134","nodes":[],"body":{"id":81362,"nodeType":"Block","src":"1636:265:134","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81334,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81326,"src":"1654:6:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1672:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":81336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1664:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81335,"name":"address","nodeType":"ElementaryTypeName","src":"1664:7:134","typeDescriptions":{}}},"id":81338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1664:10:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1654:20:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4f776e61626c65333a206e6577206f776e657220697320746865207a65726f2061646472657373","id":81340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1676:52:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_be4b0b25cc2355352f816852ea21b8f9b1cdcbc6e0dedd0c3fe6e6aa861b2f4f","typeString":"literal_string \"CrossDomainOwnable3: new owner is the zero address\""},"value":"CrossDomainOwnable3: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be4b0b25cc2355352f816852ea21b8f9b1cdcbc6e0dedd0c3fe6e6aa861b2f4f","typeString":"literal_string \"CrossDomainOwnable3: new owner is the zero address\""}],"id":81333,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1646:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1646:83:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81342,"nodeType":"ExpressionStatement","src":"1646:83:134"},{"assignments":[81344],"declarations":[{"constant":false,"id":81344,"mutability":"mutable","name":"oldOwner","nameLocation":"1748:8:134","nodeType":"VariableDeclaration","scope":81362,"src":"1740:16:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81343,"name":"address","nodeType":"ElementaryTypeName","src":"1740:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81347,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81345,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"1759:5:134","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1759:7:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1740:26:134"},{"expression":{"arguments":[{"id":81349,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81326,"src":"1795:6:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81348,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47777,"src":"1776:18:134","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":81350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1776:26:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81351,"nodeType":"ExpressionStatement","src":"1776:26:134"},{"expression":{"id":81354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81352,"name":"isLocal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81314,"src":"1812:7:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81353,"name":"_isLocal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81328,"src":"1822:8:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1812:18:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81355,"nodeType":"ExpressionStatement","src":"1812:18:134"},{"eventCall":{"arguments":[{"id":81357,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81344,"src":"1867:8:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81358,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81326,"src":"1877:6:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81359,"name":"_isLocal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81328,"src":"1885:8:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81356,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[81323,47679],"referencedDeclaration":81323,"src":"1846:20:134","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":81360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1846:48:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81361,"nodeType":"EmitStatement","src":"1841:53:134"}]},"documentation":{"id":81324,"nodeType":"StructuredDocumentation","src":"1353:201:134","text":"@notice Allows for ownership to be transferred with specifying the locality.\n @param _owner The new owner of the contract.\n @param _isLocal Configures the locality of the ownership."},"functionSelector":"b242e534","implemented":true,"kind":"function","modifiers":[{"id":81331,"kind":"modifierInvocation","modifierName":{"id":81330,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":47697,"src":"1626:9:134"},"nodeType":"ModifierInvocation","src":"1626:9:134"}],"name":"transferOwnership","nameLocation":"1568:17:134","parameters":{"id":81329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81326,"mutability":"mutable","name":"_owner","nameLocation":"1594:6:134","nodeType":"VariableDeclaration","scope":81363,"src":"1586:14:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81325,"name":"address","nodeType":"ElementaryTypeName","src":"1586:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81328,"mutability":"mutable","name":"_isLocal","nameLocation":"1607:8:134","nodeType":"VariableDeclaration","scope":81363,"src":"1602:13:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81327,"name":"bool","nodeType":"ElementaryTypeName","src":"1602:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1585:31:134"},"returnParameters":{"id":81332,"nodeType":"ParameterList","parameters":[],"src":"1636:0:134"},"scope":81412,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81411,"nodeType":"FunctionDefinition","src":"2156:527:134","nodes":[],"body":{"id":81410,"nodeType":"Block","src":"2202:481:134","nodes":[],"statements":[{"condition":{"id":81368,"name":"isLocal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81314,"src":"2216:7:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81408,"nodeType":"Block","src":"2334:343:134","statements":[{"assignments":[81381],"declarations":[{"constant":false,"id":81381,"mutability":"mutable","name":"messenger","nameLocation":"2371:9:134","nodeType":"VariableDeclaration","scope":81408,"src":"2348:32:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$82072","typeString":"contract L2CrossDomainMessenger"},"typeName":{"id":81380,"nodeType":"UserDefinedTypeName","pathNode":{"id":81379,"name":"L2CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":82072,"src":"2348:22:134"},"referencedDeclaration":82072,"src":"2348:22:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$82072","typeString":"contract L2CrossDomainMessenger"}},"visibility":"internal"}],"id":81386,"initialValue":{"arguments":[{"expression":{"id":81383,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93856,"src":"2406:10:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$93856_$","typeString":"type(library Predeploys)"}},"id":81384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_CROSS_DOMAIN_MESSENGER","nodeType":"MemberAccess","referencedDeclaration":93736,"src":"2406:36:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81382,"name":"L2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82072,"src":"2383:22:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L2CrossDomainMessenger_$82072_$","typeString":"type(contract L2CrossDomainMessenger)"}},"id":81385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2383:60:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$82072","typeString":"contract L2CrossDomainMessenger"}},"nodeType":"VariableDeclarationStatement","src":"2348:95:134"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81388,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2466:3:134","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2466:10:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":81392,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81381,"src":"2488:9:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$82072","typeString":"contract L2CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$82072","typeString":"contract L2CrossDomainMessenger"}],"id":81391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2480:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81390,"name":"address","nodeType":"ElementaryTypeName","src":"2480:7:134","typeDescriptions":{}}},"id":81393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2480:18:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2466:32:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4f776e61626c65333a2063616c6c6572206973206e6f7420746865206d657373656e676572","id":81395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2500:50:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7bb06fddc1c0d80ca10e23ae2ae408a2315b4adc9714311ac28fc515a39266f","typeString":"literal_string \"CrossDomainOwnable3: caller is not the messenger\""},"value":"CrossDomainOwnable3: caller is not the messenger"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b7bb06fddc1c0d80ca10e23ae2ae408a2315b4adc9714311ac28fc515a39266f","typeString":"literal_string \"CrossDomainOwnable3: caller is not the messenger\""}],"id":81387,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2458:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2458:93:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81397,"nodeType":"ExpressionStatement","src":"2458:93:134"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":81399,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"2574:5:134","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2574:7:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":81401,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81381,"src":"2585:9:134","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$82072","typeString":"contract L2CrossDomainMessenger"}},"id":81402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"xDomainMessageSender","nodeType":"MemberAccess","referencedDeclaration":98498,"src":"2585:30:134","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":81403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2585:32:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2574:43:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4f776e61626c65333a2063616c6c6572206973206e6f7420746865206f776e6572","id":81405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2619:46:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_3273fbee76464174db088187e8bad70aa020a2ab8e21530cd96bbba312c00a2a","typeString":"literal_string \"CrossDomainOwnable3: caller is not the owner\""},"value":"CrossDomainOwnable3: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3273fbee76464174db088187e8bad70aa020a2ab8e21530cd96bbba312c00a2a","typeString":"literal_string \"CrossDomainOwnable3: caller is not the owner\""}],"id":81398,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2566:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2566:100:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81407,"nodeType":"ExpressionStatement","src":"2566:100:134"}]},"id":81409,"nodeType":"IfStatement","src":"2212:465:134","trueBody":{"id":81378,"nodeType":"Block","src":"2225:103:134","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":81370,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"2247:5:134","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2247:7:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":81372,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2258:3:134","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2258:10:134","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2247:21:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4f776e61626c65333a2063616c6c6572206973206e6f7420746865206f776e6572","id":81375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2270:46:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_3273fbee76464174db088187e8bad70aa020a2ab8e21530cd96bbba312c00a2a","typeString":"literal_string \"CrossDomainOwnable3: caller is not the owner\""},"value":"CrossDomainOwnable3: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3273fbee76464174db088187e8bad70aa020a2ab8e21530cd96bbba312c00a2a","typeString":"literal_string \"CrossDomainOwnable3: caller is not the owner\""}],"id":81369,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2239:7:134","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2239:78:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81377,"nodeType":"ExpressionStatement","src":"2239:78:134"}]}}]},"baseFunctions":[47720],"documentation":{"id":81364,"nodeType":"StructuredDocumentation","src":"1907:244:134","text":"@notice Overrides the implementation of the `onlyOwner` modifier to check that the unaliased\n `xDomainMessageSender` is the owner of the contract. This value is set to the caller\n of the L1CrossDomainMessenger."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"2165:11:134","overrides":{"id":81366,"nodeType":"OverrideSpecifier","overrides":[],"src":"2193:8:134"},"parameters":{"id":81365,"nodeType":"ParameterList","parameters":[],"src":"2176:2:134"},"returnParameters":{"id":81367,"nodeType":"ParameterList","parameters":[],"src":"2202:0:134"},"scope":81412,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":81309,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":47778,"src":"659:7:134"},"id":81310,"nodeType":"InheritanceSpecifier","src":"659:7:134"}],"canonicalName":"CrossDomainOwnable3","contractDependencies":[],"contractKind":"contract","documentation":{"id":81308,"nodeType":"StructuredDocumentation","src":"263:355:134","text":"@title CrossDomainOwnable3\n @notice This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned\n by contracts on either L1 or L2. Note that this contract is meant to be used with\n systems that use the CrossDomainMessenger system. It will not work if the\n OptimismPortal is used directly."},"fullyImplemented":true,"linearizedBaseContracts":[81412,47778,51634],"name":"CrossDomainOwnable3","nameLocation":"636:19:134","scope":81413,"usedErrors":[]}],"license":"MIT"},"id":134}
{"abi":[{"type":"function","name":"isLocal","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_isLocal","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"},{"name":"isLocal","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isLocal()":"0ee04629","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","transferOwnership(address,bool)":"b242e534"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isLocal\",\"type\":\"bool\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"isLocal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isLocal\",\"type\":\"bool\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"OwnershipTransferred(address,address,bool)\":{\"params\":{\"isLocal\":\"Configures the `isLocal` contract variable.\",\"newOwner\":\"The new owner of the contract.\",\"previousOwner\":\"The previous owner of the contract.\"}}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferOwnership(address,bool)\":{\"params\":{\"_isLocal\":\"Configures the locality of the ownership.\",\"_owner\":\"The new owner of the contract.\"}}},\"title\":\"CrossDomainOwnable3\",\"version\":1},\"userdoc\":{\"events\":{\"OwnershipTransferred(address,address,bool)\":{\"notice\":\"Emits when ownership of the contract is transferred. Includes the isLocal field in addition to the standard `Ownable` OwnershipTransferred event.\"}},\"kind\":\"user\",\"methods\":{\"isLocal()\":{\"notice\":\"If true, the contract uses the cross domain _checkOwner function override. If false it uses the standard Ownable _checkOwner function.\"},\"transferOwnership(address,bool)\":{\"notice\":\"Allows for ownership to be transferred with specifying the locality.\"}},\"notice\":\"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on either L1 or L2. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/CrossDomainOwnable3.sol\":\"CrossDomainOwnable3\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/L2/CrossDomainOwnable3.sol\":{\"keccak256\":\"0x21c72e76df8a82be8cd0bbaa647a6afde61128c8159ccdcbbc576a5136804afd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6973f96c66413d0d1fc2a9711cd555123389d4b9f7285e5715068c5994d0c7\",\"dweb:/ipfs/QmXFekgYu4KrKFTcbFMAfBEKsA2BAxJcVfaKquFjpHBedR\"]},\"src/L2/L2CrossDomainMessenger.sol\":{\"keccak256\":\"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b\",\"dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC\"]},\"src/L2/L2ToL1MessagePasser.sol\":{\"keccak256\":\"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460\",\"dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776\",\"dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true},{"internalType":"bool","name":"isLocal","type":"bool","indexed":false}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"isLocal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bool","name":"_isLocal","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferOwnership(address,bool)":{"params":{"_isLocal":"Configures the locality of the ownership.","_owner":"The new owner of the contract."}}},"version":1},"userdoc":{"kind":"user","methods":{"isLocal()":{"notice":"If true, the contract uses the cross domain _checkOwner function override. If false it uses the standard Ownable _checkOwner function."},"transferOwnership(address,bool)":{"notice":"Allows for ownership to be transferred with specifying the locality."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/CrossDomainOwnable3.sol":"CrossDomainOwnable3"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/L2/CrossDomainOwnable3.sol":{"keccak256":"0x21c72e76df8a82be8cd0bbaa647a6afde61128c8159ccdcbbc576a5136804afd","urls":["bzz-raw://ed6973f96c66413d0d1fc2a9711cd555123389d4b9f7285e5715068c5994d0c7","dweb:/ipfs/QmXFekgYu4KrKFTcbFMAfBEKsA2BAxJcVfaKquFjpHBedR"],"license":"MIT"},"src/L2/L2CrossDomainMessenger.sol":{"keccak256":"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355","urls":["bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b","dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJVDU5VYDC"],"license":"MIT"},"src/L2/L2ToL1MessagePasser.sol":{"keccak256":"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21","urls":["bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460","dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd","urls":["bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776","dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"src/L2/CrossDomainOwnable3.sol:CrossDomainOwnable3","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":86785,"contract":"src/L2/CrossDomainOwnable3.sol:CrossDomainOwnable3","label":"isLocal","offset":20,"slot":"0","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"isLocal()":{"notice":"If true, the contract uses the cross domain _checkOwner function override. If false it uses the standard Ownable _checkOwner function."},"transferOwnership(address,bool)":{"notice":"Allows for ownership to be transferred with specifying the locality."}},"events":{"OwnershipTransferred(address,address,bool)":{"notice":"Emits when ownership of the contract is transferred. Includes the isLocal field in addition to the standard `Ownable` OwnershipTransferred event."}},"notice":"This contract extends the OpenZeppelin `Ownable` contract for L2 contracts to be owned by contracts on either L1 or L2. Note that this contract is meant to be used with systems that use the CrossDomainMessenger system. It will not work if the OptimismPortal is used directly."},"devdoc":{"version":1,"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferOwnership(address,bool)":{"params":{"_isLocal":"Configures the locality of the ownership.","_owner":"The new owner of the contract."}}},"events":{"OwnershipTransferred(address,address,bool)":{"params":{"isLocal":"Configures the `isLocal` contract variable.","newOwner":"The new owner of the contract.","previousOwner":"The previous owner of the contract."}}},"title":"CrossDomainOwnable3"},"id":139}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"enableArbitraryContractDeployment","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDeployerAllowed","inputs":[{"name":"_deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setOwner","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWhitelistedDeployer","inputs":[{"name":"_deployer","type":"address","internalType":"address"},{"name":"_isWhitelisted","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"whitelist","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnerChanged","inputs":[{"name":"oldOwner","type":"address","indexed":false,"internalType":"address"},{"name":"newOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WhitelistDisabled","inputs":[{"name":"oldOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WhitelistStatusChanged","inputs":[{"name":"deployer","type":"address","indexed":false,"internalType":"address"},{"name":"whitelisted","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107bc806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100fc5780639b19251a14610141578063b1540a0114610174578063bdc7b54f1461018757600080fd5b806308fd63221461008257806313af40351461009757806354fd4d50146100aa575b600080fd5b6100956100903660046106de565b61018f565b005b6100956100a536600461071a565b6102ef565b6100e66040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100f3919061073c565b60405180910390f35b60005461011c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f3565b61016461014f36600461071a565b60016020526000908152604090205460ff1681565b60405190151581526020016100f3565b61016461018236600461071a565b610520565b610095610571565b60005473ffffffffffffffffffffffffffffffffffffffff163314610261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b73ffffffffffffffffffffffffffffffffffffffff8116610485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f4465706c6f79657257686974656c6973743a2063616e206f6e6c79206265206460448201527f697361626c65642076696120656e61626c65417262697472617279436f6e747260648201527f6163744465706c6f796d656e7400000000000000000000000000000000000000608482015260a401610258565b6000546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff16158061056b575073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff165b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461063e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681527fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd49060200160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d957600080fd5b919050565b600080604083850312156106f157600080fd5b6106fa836106b5565b91506020830135801515811461070f57600080fd5b809150509250929050565b60006020828403121561072c57600080fd5b610735826106b5565b9392505050565b600060208083528351808285015260005b818110156107695785810183015185820160400152820161074d565b8181111561077b576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"697:2975:166:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100fc5780639b19251a14610141578063b1540a0114610174578063bdc7b54f1461018757600080fd5b806308fd63221461008257806313af40351461009757806354fd4d50146100aa575b600080fd5b6100956100903660046106de565b61018f565b005b6100956100a536600461071a565b6102ef565b6100e66040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100f3919061073c565b60405180910390f35b60005461011c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f3565b61016461014f36600461071a565b60016020526000908152604090205460ff1681565b60405190151581526020016100f3565b61016461018236600461071a565b610520565b610095610571565b60005473ffffffffffffffffffffffffffffffffffffffff163314610261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b73ffffffffffffffffffffffffffffffffffffffff8116610485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f4465706c6f79657257686974656c6973743a2063616e206f6e6c79206265206460448201527f697361626c65642076696120656e61626c65417262697472617279436f6e747260648201527f6163744465706c6f796d656e7400000000000000000000000000000000000000608482015260a401610258565b6000546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff16158061056b575073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff165b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461063e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681527fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd49060200160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d957600080fd5b919050565b600080604083850312156106f157600080fd5b6106fa836106b5565b91506020830135801515811461070f57600080fd5b809150509250929050565b60006020828403121561072c57600080fd5b610735826106b5565b9392505050565b600060208083528351808285015260005b818110156107695785810183015185820160400152820161074d565b8181111561077b576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"697:2975:166:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:209;;;;;;:::i;:::-;;:::i;:::-;;2592:513;;;;;;:::i;:::-;;:::i;2018:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;889:20;;;;;;;;;;;;1595:42:334;1583:55;;;1565:74;;1553:2;1538:18;889:20:166;1419:226:334;991:41:166;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1815:14:334;;1808:22;1790:41;;1778:2;1763:18;991:41:166;1650:187:334;3526:144:166;;;;;;:::i;:::-;;:::i;3200:138::-;;;:::i;2277:209::-;1845:5;;;;1831:10;:19;1823:108;;;;;;;2044:2:334;1823:108:166;;;2026:21:334;2083:2;2063:18;;;2056:30;2122:34;2102:18;;;2095:62;2193:34;2173:18;;;2166:62;2265:14;2244:19;;;2237:43;2297:19;;1823:108:166;;;;;;;;;2378:20:::1;::::0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;;;:37;;;::::1;::::0;::::1;;::::0;;::::1;::::0;;;2430:49;;2495:74:334;;;2585:18;;;2578:50;2430:49:166::1;::::0;2468:18:334;2430:49:166::1;;;;;;;2277:209:::0;;:::o;2592:513::-;1845:5;;;;1831:10;:19;1823:108;;;;;;;2044:2:334;1823:108:166;;;2026:21:334;2083:2;2063:18;;;2056:30;2122:34;2102:18;;;2095:62;2193:34;2173:18;;;2166:62;2265:14;2244:19;;;2237:43;2297:19;;1823:108:166;1842:480:334;1823:108:166;2929:20:::1;::::0;::::1;2921:110;;;::::0;::::1;::::0;;2841:2:334;2921:110:166::1;::::0;::::1;2823:21:334::0;2880:2;2860:18;;;2853:30;2919:34;2899:18;;;2892:62;2990:34;2970:18;;;2963:62;3062:15;3041:19;;;3034:44;3095:19;;2921:110:166::1;2639:481:334::0;2921:110:166::1;3060:5;::::0;3047:27:::1;::::0;;3060:5:::1;::::0;;::::1;3360:34:334::0;;3430:15;;;3425:2;3410:18;;3403:43;3047:27:166::1;::::0;3272:18:334;3047:27:166::1;;;;;;;3084:5;:14:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;2592:513::o;3526:144::-;3595:4;3619:5;;:19;:5;:19;;:43;;-1:-1:-1;3642:20:166;;;;;;;:9;:20;;;;;;;;3619:43;3611:52;3526:144;-1:-1:-1;;3526:144:166:o;3200:138::-;1845:5;;;;1831:10;:19;1823:108;;;;;;;2044:2:334;1823:108:166;;;2026:21:334;2083:2;2063:18;;;2056:30;2122:34;2102:18;;;2095:62;2193:34;2173:18;;;2166:62;2265:14;2244:19;;;2237:43;2297:19;;1823:108:166;1842:480:334;1823:108:166;3297:5:::1;::::0;3279:24:::1;::::0;3297:5:::1;::::0;;::::1;1565:74:334::0;;3279:24:166::1;::::0;1553:2:334;1538:18;3279:24:166::1;;;;;;;3329:1;3313:18:::0;;;::::1;::::0;;3200:138::o;14:196:334:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:347::-;280:6;288;341:2;329:9;320:7;316:23;312:32;309:52;;;357:1;354;347:12;309:52;380:29;399:9;380:29;:::i;:::-;370:39;;459:2;448:9;444:18;431:32;506:5;499:13;492:21;485:5;482:32;472:60;;528:1;525;518:12;472:60;551:5;541:15;;;215:347;;;;;:::o;567:186::-;626:6;679:2;667:9;658:7;654:23;650:32;647:52;;;695:1;692;685:12;647:52;718:29;737:9;718:29;:::i;:::-;708:39;567:186;-1:-1:-1;;;567:186:334:o;758:656::-;870:4;899:2;928;917:9;910:21;960:6;954:13;1003:6;998:2;987:9;983:18;976:34;1028:1;1038:140;1052:6;1049:1;1046:13;1038:140;;;1147:14;;;1143:23;;1137:30;1113:17;;;1132:2;1109:26;1102:66;1067:10;;1038:140;;;1196:6;1193:1;1190:13;1187:91;;;1266:1;1261:2;1252:6;1241:9;1237:22;1233:31;1226:42;1187:91;-1:-1:-1;1330:2:334;1318:15;1335:66;1314:88;1299:104;;;;1405:2;1295:113;;758:656;-1:-1:-1;;;758:656:334:o","linkReferences":{}},"methodIdentifiers":{"enableArbitraryContractDeployment()":"bdc7b54f","isDeployerAllowed(address)":"b1540a01","owner()":"8da5cb5b","setOwner(address)":"13af4035","setWhitelistedDeployer(address,bool)":"08fd6322","version()":"54fd4d50","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"}],\"name\":\"WhitelistDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"whitelisted\",\"type\":\"bool\"}],\"name\":\"WhitelistStatusChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"enableArbitraryContractDeployment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_deployer\",\"type\":\"address\"}],\"name\":\"isDeployerAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_deployer\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isWhitelisted\",\"type\":\"bool\"}],\"name\":\"setWhitelistedDeployer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@custom:proxied\",\"custom:predeployed\":\"0x4200000000000000000000000000000000000002\",\"events\":{\"OwnerChanged(address,address)\":{\"params\":{\"newOwner\":\"Address of the new owner.\",\"oldOwner\":\"Address of the previous owner.\"}},\"WhitelistDisabled(address)\":{\"params\":{\"oldOwner\":\"Address of the final owner of the whitelist.\"}},\"WhitelistStatusChanged(address,bool)\":{\"params\":{\"deployer\":\"Address of the deployer.\",\"whitelisted\":\"Boolean indicating whether the deployer is whitelisted.\"}}},\"kind\":\"dev\",\"methods\":{\"isDeployerAllowed(address)\":{\"params\":{\"_deployer\":\"Address to check.\"},\"returns\":{\"_0\":\"Whether or not the address can deploy contracts.\"}},\"setOwner(address)\":{\"params\":{\"_owner\":\"Address of the new owner.\"}},\"setWhitelistedDeployer(address,bool)\":{\"params\":{\"_deployer\":\"Address to update permissions for.\",\"_isWhitelisted\":\"Whether or not the address is whitelisted.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"DeployerWhitelist\",\"version\":1},\"userdoc\":{\"events\":{\"OwnerChanged(address,address)\":{\"notice\":\"Emitted when the owner of this contract changes.\"},\"WhitelistDisabled(address)\":{\"notice\":\"Emitted when the whitelist is disabled.\"},\"WhitelistStatusChanged(address,bool)\":{\"notice\":\"Emitted when the whitelist status of a deployer changes.\"}},\"kind\":\"user\",\"methods\":{\"enableArbitraryContractDeployment()\":{\"notice\":\"Permanently enables arbitrary contract deployment and deletes the owner.\"},\"isDeployerAllowed(address)\":{\"notice\":\"Checks whether an address is allowed to deploy contracts.\"},\"owner()\":{\"notice\":\"Address of the owner of this contract. Note that when this address is set to address(0), the whitelist is disabled.\"},\"setOwner(address)\":{\"notice\":\"Updates the owner of this contract.\"},\"setWhitelistedDeployer(address,bool)\":{\"notice\":\"Adds or removes an address from the deployment whitelist.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"whitelist(address)\":{\"notice\":\"Mapping of deployer addresses to boolean whitelist status.\"}},\"notice\":\"DeployerWhitelist is a legacy contract that was originally used to act as a whitelist of addresses allowed to the Optimism network. The DeployerWhitelist has since been disabled, but the code is kept in state for the sake of full backwards compatibility. As of the Bedrock upgrade, the DeployerWhitelist is completely unused by the Optimism system and could, in theory, be removed entirely.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/DeployerWhitelist.sol\":\"DeployerWhitelist\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/legacy/DeployerWhitelist.sol\":{\"keccak256\":\"0x40a9ec8f0d396bf0af240181646d8b50cc46a2fa760f73dc5cd3eed6184e5cec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddf76cf897a91d0053f14091c61d1fad53f750fe5927dc7c0684e4c495145667\",\"dweb:/ipfs/QmZLhHaVb88RHR7Nxcs9zvusyqMmSy8tvx71nLrRdH52jw\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":false},{"internalType":"address","name":"newOwner","type":"address","indexed":false}],"type":"event","name":"OwnerChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":false}],"type":"event","name":"WhitelistDisabled","anonymous":false},{"inputs":[{"internalType":"address","name":"deployer","type":"address","indexed":false},{"internalType":"bool","name":"whitelisted","type":"bool","indexed":false}],"type":"event","name":"WhitelistStatusChanged","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"enableArbitraryContractDeployment"},{"inputs":[{"internalType":"address","name":"_deployer","type":"address"}],"stateMutability":"view","type":"function","name":"isDeployerAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOwner"},{"inputs":[{"internalType":"address","name":"_deployer","type":"address"},{"internalType":"bool","name":"_isWhitelisted","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setWhitelistedDeployer"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"isDeployerAllowed(address)":{"params":{"_deployer":"Address to check."},"returns":{"_0":"Whether or not the address can deploy contracts."}},"setOwner(address)":{"params":{"_owner":"Address of the new owner."}},"setWhitelistedDeployer(address,bool)":{"params":{"_deployer":"Address to update permissions for.","_isWhitelisted":"Whether or not the address is whitelisted."}}},"version":1},"userdoc":{"kind":"user","methods":{"enableArbitraryContractDeployment()":{"notice":"Permanently enables arbitrary contract deployment and deletes the owner."},"isDeployerAllowed(address)":{"notice":"Checks whether an address is allowed to deploy contracts."},"owner()":{"notice":"Address of the owner of this contract. Note that when this address is set to address(0), the whitelist is disabled."},"setOwner(address)":{"notice":"Updates the owner of this contract."},"setWhitelistedDeployer(address,bool)":{"notice":"Adds or removes an address from the deployment whitelist."},"version()":{"notice":"Semantic version."},"whitelist(address)":{"notice":"Mapping of deployer addresses to boolean whitelist status."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/DeployerWhitelist.sol":"DeployerWhitelist"},"evmVersion":"london","libraries":{}},"sources":{"src/legacy/DeployerWhitelist.sol":{"keccak256":"0x40a9ec8f0d396bf0af240181646d8b50cc46a2fa760f73dc5cd3eed6184e5cec","urls":["bzz-raw://ddf76cf897a91d0053f14091c61d1fad53f750fe5927dc7c0684e4c495145667","dweb:/ipfs/QmZLhHaVb88RHR7Nxcs9zvusyqMmSy8tvx71nLrRdH52jw"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":91523,"contract":"src/legacy/DeployerWhitelist.sol:DeployerWhitelist","label":"owner","offset":0,"slot":"0","type":"t_address"},{"astId":91528,"contract":"src/legacy/DeployerWhitelist.sol:DeployerWhitelist","label":"whitelist","offset":0,"slot":"1","type":"t_mapping(t_address,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"}}},"userdoc":{"version":1,"kind":"user","methods":{"enableArbitraryContractDeployment()":{"notice":"Permanently enables arbitrary contract deployment and deletes the owner."},"isDeployerAllowed(address)":{"notice":"Checks whether an address is allowed to deploy contracts."},"owner()":{"notice":"Address of the owner of this contract. Note that when this address is set to address(0), the whitelist is disabled."},"setOwner(address)":{"notice":"Updates the owner of this contract."},"setWhitelistedDeployer(address,bool)":{"notice":"Adds or removes an address from the deployment whitelist."},"version()":{"notice":"Semantic version."},"whitelist(address)":{"notice":"Mapping of deployer addresses to boolean whitelist status."}},"events":{"OwnerChanged(address,address)":{"notice":"Emitted when the owner of this contract changes."},"WhitelistDisabled(address)":{"notice":"Emitted when the whitelist is disabled."},"WhitelistStatusChanged(address,bool)":{"notice":"Emitted when the whitelist status of a deployer changes."}},"notice":"DeployerWhitelist is a legacy contract that was originally used to act as a whitelist of addresses allowed to the Optimism network. The DeployerWhitelist has since been disabled, but the code is kept in state for the sake of full backwards compatibility. As of the Bedrock upgrade, the DeployerWhitelist is completely unused by the Optimism system and could, in theory, be removed entirely."},"devdoc":{"version":1,"kind":"dev","methods":{"isDeployerAllowed(address)":{"params":{"_deployer":"Address to check."},"returns":{"_0":"Whether or not the address can deploy contracts."}},"setOwner(address)":{"params":{"_owner":"Address of the new owner."}},"setWhitelistedDeployer(address,bool)":{"params":{"_deployer":"Address to update permissions for.","_isWhitelisted":"Whether or not the address is whitelisted."}}},"events":{"OwnerChanged(address,address)":{"params":{"newOwner":"Address of the new owner.","oldOwner":"Address of the previous owner."}},"WhitelistDisabled(address)":{"params":{"oldOwner":"Address of the final owner of the whitelist."}},"WhitelistStatusChanged(address,bool)":{"params":{"deployer":"Address of the deployer.","whitelisted":"Boolean indicating whether the deployer is whitelisted."}}},"title":"DeployerWhitelist"},"ast":{"absolutePath":"src/legacy/DeployerWhitelist.sol","id":91655,"exportedSymbols":{"DeployerWhitelist":[91654],"ISemver":[99149]},"nodeType":"SourceUnit","src":"32:3641:166","nodes":[{"id":91515,"nodeType":"PragmaDirective","src":"32:23:166","nodes":[],"literals":["solidity","0.8",".15"]},{"id":91517,"nodeType":"ImportDirective","src":"57:52:166","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":91655,"sourceUnit":99150,"symbolAliases":[{"foreign":{"id":91516,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99149,"src":"66:7:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91654,"nodeType":"ContractDefinition","src":"697:2975:166","nodes":[{"id":91523,"nodeType":"VariableDeclaration","src":"889:20:166","nodes":[],"constant":false,"documentation":{"id":91521,"nodeType":"StructuredDocumentation","src":"741:143:166","text":"@notice Address of the owner of this contract. Note that when this address is set to\n address(0), the whitelist is disabled."},"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"904:5:166","scope":91654,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91522,"name":"address","nodeType":"ElementaryTypeName","src":"889:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":91528,"nodeType":"VariableDeclaration","src":"991:41:166","nodes":[],"constant":false,"documentation":{"id":91524,"nodeType":"StructuredDocumentation","src":"916:70:166","text":"@notice Mapping of deployer addresses to boolean whitelist status."},"functionSelector":"9b19251a","mutability":"mutable","name":"whitelist","nameLocation":"1023:9:166","scope":91654,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":91527,"keyType":{"id":91525,"name":"address","nodeType":"ElementaryTypeName","src":"999:7:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"991:24:166","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":91526,"name":"bool","nodeType":"ElementaryTypeName","src":"1010:4:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":91535,"nodeType":"EventDefinition","src":"1209:55:166","nodes":[],"anonymous":false,"documentation":{"id":91529,"nodeType":"StructuredDocumentation","src":"1039:165:166","text":"@notice Emitted when the owner of this contract changes.\n @param oldOwner Address of the previous owner.\n @param newOwner Address of the new owner."},"eventSelector":"b532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c","name":"OwnerChanged","nameLocation":"1215:12:166","parameters":{"id":91534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91531,"indexed":false,"mutability":"mutable","name":"oldOwner","nameLocation":"1236:8:166","nodeType":"VariableDeclaration","scope":91535,"src":"1228:16:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91530,"name":"address","nodeType":"ElementaryTypeName","src":"1228:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91533,"indexed":false,"mutability":"mutable","name":"newOwner","nameLocation":"1254:8:166","nodeType":"VariableDeclaration","scope":91535,"src":"1246:16:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91532,"name":"address","nodeType":"ElementaryTypeName","src":"1246:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1227:36:166"}},{"id":91542,"nodeType":"EventDefinition","src":"1478:65:166","nodes":[],"anonymous":false,"documentation":{"id":91536,"nodeType":"StructuredDocumentation","src":"1270:203:166","text":"@notice Emitted when the whitelist status of a deployer changes.\n @param deployer Address of the deployer.\n @param whitelisted Boolean indicating whether the deployer is whitelisted."},"eventSelector":"8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d","name":"WhitelistStatusChanged","nameLocation":"1484:22:166","parameters":{"id":91541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91538,"indexed":false,"mutability":"mutable","name":"deployer","nameLocation":"1515:8:166","nodeType":"VariableDeclaration","scope":91542,"src":"1507:16:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91537,"name":"address","nodeType":"ElementaryTypeName","src":"1507:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91540,"indexed":false,"mutability":"mutable","name":"whitelisted","nameLocation":"1530:11:166","nodeType":"VariableDeclaration","scope":91542,"src":"1525:16:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":91539,"name":"bool","nodeType":"ElementaryTypeName","src":"1525:4:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1506:36:166"}},{"id":91547,"nodeType":"EventDefinition","src":"1674:42:166","nodes":[],"anonymous":false,"documentation":{"id":91543,"nodeType":"StructuredDocumentation","src":"1549:120:166","text":"@notice Emitted when the whitelist is disabled.\n @param oldOwner Address of the final owner of the whitelist."},"eventSelector":"c0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd4","name":"WhitelistDisabled","nameLocation":"1680:17:166","parameters":{"id":91546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91545,"indexed":false,"mutability":"mutable","name":"oldOwner","nameLocation":"1706:8:166","nodeType":"VariableDeclaration","scope":91547,"src":"1698:16:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91544,"name":"address","nodeType":"ElementaryTypeName","src":"1698:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1697:18:166"}},{"id":91560,"nodeType":"ModifierDefinition","src":"1792:157:166","nodes":[],"body":{"id":91559,"nodeType":"Block","src":"1813:136:166","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":91554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":91551,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1831:3:166","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1831:10:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":91553,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91523,"src":"1845:5:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1831:19:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206f776e6572206f66207468697320636f6e7472616374","id":91555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1852:78:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_944140597ff5a30538e0744b8160db7f0679e9e0dbeb6b224521a395f9d3eb37","typeString":"literal_string \"DeployerWhitelist: function can only be called by the owner of this contract\""},"value":"DeployerWhitelist: function can only be called by the owner of this contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_944140597ff5a30538e0744b8160db7f0679e9e0dbeb6b224521a395f9d3eb37","typeString":"literal_string \"DeployerWhitelist: function can only be called by the owner of this contract\""}],"id":91550,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1823:7:166","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":91556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1823:108:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91557,"nodeType":"ExpressionStatement","src":"1823:108:166"},{"id":91558,"nodeType":"PlaceholderStatement","src":"1941:1:166"}]},"documentation":{"id":91548,"nodeType":"StructuredDocumentation","src":"1722:65:166","text":"@notice Blocks functions to anyone except the contract owner."},"name":"onlyOwner","nameLocation":"1801:9:166","parameters":{"id":91549,"nodeType":"ParameterList","parameters":[],"src":"1810:2:166"},"virtual":false,"visibility":"internal"},{"id":91564,"nodeType":"VariableDeclaration","src":"2018:40:166","nodes":[],"baseFunctions":[99148],"constant":true,"documentation":{"id":91561,"nodeType":"StructuredDocumentation","src":"1955:58:166","text":"@notice Semantic version.\n @custom:semver 1.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"2041:7:166","scope":91654,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":91562,"name":"string","nodeType":"ElementaryTypeName","src":"2018:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e312e30","id":91563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2051:7:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_6815ba53416ba06aff1932cc76b3832272bafab9bc8e066be382e32b06ba5546","typeString":"literal_string \"1.1.0\""},"value":"1.1.0"},"visibility":"public"},{"id":91586,"nodeType":"FunctionDefinition","src":"2277:209:166","nodes":[],"body":{"id":91585,"nodeType":"Block","src":"2368:118:166","nodes":[],"statements":[{"expression":{"id":91578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":91574,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91528,"src":"2378:9:166","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":91576,"indexExpression":{"id":91575,"name":"_deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91567,"src":"2388:9:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2378:20:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":91577,"name":"_isWhitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91569,"src":"2401:14:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2378:37:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":91579,"nodeType":"ExpressionStatement","src":"2378:37:166"},{"eventCall":{"arguments":[{"id":91581,"name":"_deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91567,"src":"2453:9:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91582,"name":"_isWhitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91569,"src":"2464:14:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":91580,"name":"WhitelistStatusChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91542,"src":"2430:22:166","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":91583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2430:49:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91584,"nodeType":"EmitStatement","src":"2425:54:166"}]},"documentation":{"id":91565,"nodeType":"StructuredDocumentation","src":"2065:207:166","text":"@notice Adds or removes an address from the deployment whitelist.\n @param _deployer Address to update permissions for.\n @param _isWhitelisted Whether or not the address is whitelisted."},"functionSelector":"08fd6322","implemented":true,"kind":"function","modifiers":[{"id":91572,"kind":"modifierInvocation","modifierName":{"id":91571,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":91560,"src":"2358:9:166"},"nodeType":"ModifierInvocation","src":"2358:9:166"}],"name":"setWhitelistedDeployer","nameLocation":"2286:22:166","parameters":{"id":91570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91567,"mutability":"mutable","name":"_deployer","nameLocation":"2317:9:166","nodeType":"VariableDeclaration","scope":91586,"src":"2309:17:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91566,"name":"address","nodeType":"ElementaryTypeName","src":"2309:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91569,"mutability":"mutable","name":"_isWhitelisted","nameLocation":"2333:14:166","nodeType":"VariableDeclaration","scope":91586,"src":"2328:19:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":91568,"name":"bool","nodeType":"ElementaryTypeName","src":"2328:4:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2308:40:166"},"returnParameters":{"id":91573,"nodeType":"ParameterList","parameters":[],"src":"2368:0:166"},"scope":91654,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":91614,"nodeType":"FunctionDefinition","src":"2592:513:166","nodes":[],"body":{"id":91613,"nodeType":"Block","src":"2645:460:166","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":91600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":91595,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91589,"src":"2929:6:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":91598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2947:1:166","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":91597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2939:7:166","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91596,"name":"address","nodeType":"ElementaryTypeName","src":"2939:7:166","typeDescriptions":{}}},"id":91599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2939:10:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2929:20:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4465706c6f79657257686974656c6973743a2063616e206f6e6c792062652064697361626c65642076696120656e61626c65417262697472617279436f6e74726163744465706c6f796d656e74","id":91601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2951:79:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_6078aace64c07e9c98ebaccae80d05c653e2b929f6126e2db8574ccdff4a07cd","typeString":"literal_string \"DeployerWhitelist: can only be disabled via enableArbitraryContractDeployment\""},"value":"DeployerWhitelist: can only be disabled via enableArbitraryContractDeployment"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6078aace64c07e9c98ebaccae80d05c653e2b929f6126e2db8574ccdff4a07cd","typeString":"literal_string \"DeployerWhitelist: can only be disabled via enableArbitraryContractDeployment\""}],"id":91594,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2921:7:166","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":91602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2921:110:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91603,"nodeType":"ExpressionStatement","src":"2921:110:166"},{"eventCall":{"arguments":[{"id":91605,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91523,"src":"3060:5:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91606,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91589,"src":"3067:6:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":91604,"name":"OwnerChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91535,"src":"3047:12:166","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":91607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3047:27:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91608,"nodeType":"EmitStatement","src":"3042:32:166"},{"expression":{"id":91611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":91609,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91523,"src":"3084:5:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":91610,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91589,"src":"3092:6:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3084:14:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":91612,"nodeType":"ExpressionStatement","src":"3084:14:166"}]},"documentation":{"id":91587,"nodeType":"StructuredDocumentation","src":"2492:95:166","text":"@notice Updates the owner of this contract.\n @param _owner Address of the new owner."},"functionSelector":"13af4035","implemented":true,"kind":"function","modifiers":[{"id":91592,"kind":"modifierInvocation","modifierName":{"id":91591,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":91560,"src":"2635:9:166"},"nodeType":"ModifierInvocation","src":"2635:9:166"}],"name":"setOwner","nameLocation":"2601:8:166","parameters":{"id":91590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91589,"mutability":"mutable","name":"_owner","nameLocation":"2618:6:166","nodeType":"VariableDeclaration","scope":91614,"src":"2610:14:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91588,"name":"address","nodeType":"ElementaryTypeName","src":"2610:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2609:16:166"},"returnParameters":{"id":91593,"nodeType":"ParameterList","parameters":[],"src":"2645:0:166"},"scope":91654,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":91632,"nodeType":"FunctionDefinition","src":"3200:138:166","nodes":[],"body":{"id":91631,"nodeType":"Block","src":"3264:74:166","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":91621,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91523,"src":"3297:5:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":91620,"name":"WhitelistDisabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91547,"src":"3279:17:166","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":91622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3279:24:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91623,"nodeType":"EmitStatement","src":"3274:29:166"},{"expression":{"id":91629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":91624,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91523,"src":"3313:5:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":91627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3329:1:166","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":91626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3321:7:166","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91625,"name":"address","nodeType":"ElementaryTypeName","src":"3321:7:166","typeDescriptions":{}}},"id":91628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3321:10:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3313:18:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":91630,"nodeType":"ExpressionStatement","src":"3313:18:166"}]},"documentation":{"id":91615,"nodeType":"StructuredDocumentation","src":"3111:84:166","text":"@notice Permanently enables arbitrary contract deployment and deletes the owner."},"functionSelector":"bdc7b54f","implemented":true,"kind":"function","modifiers":[{"id":91618,"kind":"modifierInvocation","modifierName":{"id":91617,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":91560,"src":"3254:9:166"},"nodeType":"ModifierInvocation","src":"3254:9:166"}],"name":"enableArbitraryContractDeployment","nameLocation":"3209:33:166","parameters":{"id":91616,"nodeType":"ParameterList","parameters":[],"src":"3242:2:166"},"returnParameters":{"id":91619,"nodeType":"ParameterList","parameters":[],"src":"3264:0:166"},"scope":91654,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":91653,"nodeType":"FunctionDefinition","src":"3526:144:166","nodes":[],"body":{"id":91652,"nodeType":"Block","src":"3601:69:166","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":91649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":91645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":91640,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91523,"src":"3619:5:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":91643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3636:1:166","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":91642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3628:7:166","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91641,"name":"address","nodeType":"ElementaryTypeName","src":"3628:7:166","typeDescriptions":{}}},"id":91644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3628:10:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3619:19:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"id":91646,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91528,"src":"3642:9:166","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":91648,"indexExpression":{"id":91647,"name":"_deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91635,"src":"3652:9:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3642:20:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3619:43:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":91650,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3618:45:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":91639,"id":91651,"nodeType":"Return","src":"3611:52:166"}]},"documentation":{"id":91633,"nodeType":"StructuredDocumentation","src":"3344:177:166","text":"@notice Checks whether an address is allowed to deploy contracts.\n @param _deployer Address to check.\n @return Whether or not the address can deploy contracts."},"functionSelector":"b1540a01","implemented":true,"kind":"function","modifiers":[],"name":"isDeployerAllowed","nameLocation":"3535:17:166","parameters":{"id":91636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91635,"mutability":"mutable","name":"_deployer","nameLocation":"3561:9:166","nodeType":"VariableDeclaration","scope":91653,"src":"3553:17:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91634,"name":"address","nodeType":"ElementaryTypeName","src":"3553:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3552:19:166"},"returnParameters":{"id":91639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":91653,"src":"3595:4:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":91637,"name":"bool","nodeType":"ElementaryTypeName","src":"3595:4:166","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3594:6:166"},"scope":91654,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":91519,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":99149,"src":"727:7:166"},"id":91520,"nodeType":"InheritanceSpecifier","src":"727:7:166"}],"canonicalName":"DeployerWhitelist","contractDependencies":[],"contractKind":"contract","documentation":{"id":91518,"nodeType":"StructuredDocumentation","src":"111:586:166","text":"@custom:legacy\n @custom:proxied\n @custom:predeployed 0x4200000000000000000000000000000000000002\n @title DeployerWhitelist\n @notice DeployerWhitelist is a legacy contract that was originally used to act as a whitelist of\n addresses allowed to the Optimism network. The DeployerWhitelist has since been\n disabled, but the code is kept in state for the sake of full backwards compatibility.\n As of the Bedrock upgrade, the DeployerWhitelist is completely unused by the Optimism\n system and could, in theory, be removed entirely."},"fullyImplemented":true,"linearizedBaseContracts":[91654,99149],"name":"DeployerWhitelist","nameLocation":"706:17:166","scope":91655,"usedErrors":[]}],"license":"MIT"},"id":166}
{"abi":[{"type":"function","name":"enableArbitraryContractDeployment","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDeployerAllowed","inputs":[{"name":"_deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setOwner","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWhitelistedDeployer","inputs":[{"name":"_deployer","type":"address","internalType":"address"},{"name":"_isWhitelisted","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"whitelist","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnerChanged","inputs":[{"name":"oldOwner","type":"address","indexed":false,"internalType":"address"},{"name":"newOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WhitelistDisabled","inputs":[{"name":"oldOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WhitelistStatusChanged","inputs":[{"name":"deployer","type":"address","indexed":false,"internalType":"address"},{"name":"whitelisted","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107bc806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100fc5780639b19251a14610141578063b1540a0114610174578063bdc7b54f1461018757600080fd5b806308fd63221461008257806313af40351461009757806354fd4d50146100aa575b600080fd5b6100956100903660046106de565b61018f565b005b6100956100a536600461071a565b6102ef565b6100e66040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100f3919061073c565b60405180910390f35b60005461011c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f3565b61016461014f36600461071a565b60016020526000908152604090205460ff1681565b60405190151581526020016100f3565b61016461018236600461071a565b610520565b610095610571565b60005473ffffffffffffffffffffffffffffffffffffffff163314610261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b73ffffffffffffffffffffffffffffffffffffffff8116610485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f4465706c6f79657257686974656c6973743a2063616e206f6e6c79206265206460448201527f697361626c65642076696120656e61626c65417262697472617279436f6e747260648201527f6163744465706c6f796d656e7400000000000000000000000000000000000000608482015260a401610258565b6000546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff16158061056b575073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff165b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461063e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681527fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd49060200160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d957600080fd5b919050565b600080604083850312156106f157600080fd5b6106fa836106b5565b91506020830135801515811461070f57600080fd5b809150509250929050565b60006020828403121561072c57600080fd5b610735826106b5565b9392505050565b600060208083528351808285015260005b818110156107695785810183015185820160400152820161074d565b8181111561077b576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"697:2975:178:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100fc5780639b19251a14610141578063b1540a0114610174578063bdc7b54f1461018757600080fd5b806308fd63221461008257806313af40351461009757806354fd4d50146100aa575b600080fd5b6100956100903660046106de565b61018f565b005b6100956100a536600461071a565b6102ef565b6100e66040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100f3919061073c565b60405180910390f35b60005461011c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f3565b61016461014f36600461071a565b60016020526000908152604090205460ff1681565b60405190151581526020016100f3565b61016461018236600461071a565b610520565b610095610571565b60005473ffffffffffffffffffffffffffffffffffffffff163314610261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b73ffffffffffffffffffffffffffffffffffffffff8116610485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f4465706c6f79657257686974656c6973743a2063616e206f6e6c79206265206460448201527f697361626c65642076696120656e61626c65417262697472617279436f6e747260648201527f6163744465706c6f796d656e7400000000000000000000000000000000000000608482015260a401610258565b6000546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff16158061056b575073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff165b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461063e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610258565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681527fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd49060200160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d957600080fd5b919050565b600080604083850312156106f157600080fd5b6106fa836106b5565b91506020830135801515811461070f57600080fd5b809150509250929050565b60006020828403121561072c57600080fd5b610735826106b5565b9392505050565b600060208083528351808285015260005b818110156107695785810183015185820160400152820161074d565b8181111561077b576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"697:2975:178:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:209;;;;;;:::i;:::-;;:::i;:::-;;2592:513;;;;;;:::i;:::-;;:::i;2018:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;889:20;;;;;;;;;;;;1595:42:350;1583:55;;;1565:74;;1553:2;1538:18;889:20:178;1419:226:350;991:41:178;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1815:14:350;;1808:22;1790:41;;1778:2;1763:18;991:41:178;1650:187:350;3526:144:178;;;;;;:::i;:::-;;:::i;3200:138::-;;;:::i;2277:209::-;1845:5;;;;1831:10;:19;1823:108;;;;;;;2044:2:350;1823:108:178;;;2026:21:350;2083:2;2063:18;;;2056:30;2122:34;2102:18;;;2095:62;2193:34;2173:18;;;2166:62;2265:14;2244:19;;;2237:43;2297:19;;1823:108:178;;;;;;;;;2378:20:::1;::::0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;;;:37;;;::::1;::::0;::::1;;::::0;;::::1;::::0;;;2430:49;;2495:74:350;;;2585:18;;;2578:50;2430:49:178::1;::::0;2468:18:350;2430:49:178::1;;;;;;;2277:209:::0;;:::o;2592:513::-;1845:5;;;;1831:10;:19;1823:108;;;;;;;2044:2:350;1823:108:178;;;2026:21:350;2083:2;2063:18;;;2056:30;2122:34;2102:18;;;2095:62;2193:34;2173:18;;;2166:62;2265:14;2244:19;;;2237:43;2297:19;;1823:108:178;1842:480:350;1823:108:178;2929:20:::1;::::0;::::1;2921:110;;;::::0;::::1;::::0;;2841:2:350;2921:110:178::1;::::0;::::1;2823:21:350::0;2880:2;2860:18;;;2853:30;2919:34;2899:18;;;2892:62;2990:34;2970:18;;;2963:62;3062:15;3041:19;;;3034:44;3095:19;;2921:110:178::1;2639:481:350::0;2921:110:178::1;3060:5;::::0;3047:27:::1;::::0;;3060:5:::1;::::0;;::::1;3360:34:350::0;;3430:15;;;3425:2;3410:18;;3403:43;3047:27:178::1;::::0;3272:18:350;3047:27:178::1;;;;;;;3084:5;:14:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;2592:513::o;3526:144::-;3595:4;3619:5;;:19;:5;:19;;:43;;-1:-1:-1;3642:20:178;;;;;;;:9;:20;;;;;;;;3619:43;3611:52;3526:144;-1:-1:-1;;3526:144:178:o;3200:138::-;1845:5;;;;1831:10;:19;1823:108;;;;;;;2044:2:350;1823:108:178;;;2026:21:350;2083:2;2063:18;;;2056:30;2122:34;2102:18;;;2095:62;2193:34;2173:18;;;2166:62;2265:14;2244:19;;;2237:43;2297:19;;1823:108:178;1842:480:350;1823:108:178;3297:5:::1;::::0;3279:24:::1;::::0;3297:5:::1;::::0;;::::1;1565:74:350::0;;3279:24:178::1;::::0;1553:2:350;1538:18;3279:24:178::1;;;;;;;3329:1;3313:18:::0;;;::::1;::::0;;3200:138::o;14:196:350:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:347::-;280:6;288;341:2;329:9;320:7;316:23;312:32;309:52;;;357:1;354;347:12;309:52;380:29;399:9;380:29;:::i;:::-;370:39;;459:2;448:9;444:18;431:32;506:5;499:13;492:21;485:5;482:32;472:60;;528:1;525;518:12;472:60;551:5;541:15;;;215:347;;;;;:::o;567:186::-;626:6;679:2;667:9;658:7;654:23;650:32;647:52;;;695:1;692;685:12;647:52;718:29;737:9;718:29;:::i;:::-;708:39;567:186;-1:-1:-1;;;567:186:350:o;758:656::-;870:4;899:2;928;917:9;910:21;960:6;954:13;1003:6;998:2;987:9;983:18;976:34;1028:1;1038:140;1052:6;1049:1;1046:13;1038:140;;;1147:14;;;1143:23;;1137:30;1113:17;;;1132:2;1109:26;1102:66;1067:10;;1038:140;;;1196:6;1193:1;1190:13;1187:91;;;1266:1;1261:2;1252:6;1241:9;1237:22;1233:31;1226:42;1187:91;-1:-1:-1;1330:2:350;1318:15;1335:66;1314:88;1299:104;;;;1405:2;1295:113;;758:656;-1:-1:-1;;;758:656:350:o","linkReferences":{}},"methodIdentifiers":{"enableArbitraryContractDeployment()":"bdc7b54f","isDeployerAllowed(address)":"b1540a01","owner()":"8da5cb5b","setOwner(address)":"13af4035","setWhitelistedDeployer(address,bool)":"08fd6322","version()":"54fd4d50","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"}],\"name\":\"WhitelistDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"whitelisted\",\"type\":\"bool\"}],\"name\":\"WhitelistStatusChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"enableArbitraryContractDeployment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_deployer\",\"type\":\"address\"}],\"name\":\"isDeployerAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_deployer\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isWhitelisted\",\"type\":\"bool\"}],\"name\":\"setWhitelistedDeployer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@custom:proxied\",\"custom:predeployed\":\"0x4200000000000000000000000000000000000002\",\"events\":{\"OwnerChanged(address,address)\":{\"params\":{\"newOwner\":\"Address of the new owner.\",\"oldOwner\":\"Address of the previous owner.\"}},\"WhitelistDisabled(address)\":{\"params\":{\"oldOwner\":\"Address of the final owner of the whitelist.\"}},\"WhitelistStatusChanged(address,bool)\":{\"params\":{\"deployer\":\"Address of the deployer.\",\"whitelisted\":\"Boolean indicating whether the deployer is whitelisted.\"}}},\"kind\":\"dev\",\"methods\":{\"isDeployerAllowed(address)\":{\"params\":{\"_deployer\":\"Address to check.\"},\"returns\":{\"_0\":\"Whether or not the address can deploy contracts.\"}},\"setOwner(address)\":{\"params\":{\"_owner\":\"Address of the new owner.\"}},\"setWhitelistedDeployer(address,bool)\":{\"params\":{\"_deployer\":\"Address to update permissions for.\",\"_isWhitelisted\":\"Whether or not the address is whitelisted.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"DeployerWhitelist\",\"version\":1},\"userdoc\":{\"events\":{\"OwnerChanged(address,address)\":{\"notice\":\"Emitted when the owner of this contract changes.\"},\"WhitelistDisabled(address)\":{\"notice\":\"Emitted when the whitelist is disabled.\"},\"WhitelistStatusChanged(address,bool)\":{\"notice\":\"Emitted when the whitelist status of a deployer changes.\"}},\"kind\":\"user\",\"methods\":{\"enableArbitraryContractDeployment()\":{\"notice\":\"Permanently enables arbitrary contract deployment and deletes the owner.\"},\"isDeployerAllowed(address)\":{\"notice\":\"Checks whether an address is allowed to deploy contracts.\"},\"owner()\":{\"notice\":\"Address of the owner of this contract. Note that when this address is set to address(0), the whitelist is disabled.\"},\"setOwner(address)\":{\"notice\":\"Updates the owner of this contract.\"},\"setWhitelistedDeployer(address,bool)\":{\"notice\":\"Adds or removes an address from the deployment whitelist.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"whitelist(address)\":{\"notice\":\"Mapping of deployer addresses to boolean whitelist status.\"}},\"notice\":\"DeployerWhitelist is a legacy contract that was originally used to act as a whitelist of addresses allowed to the Optimism network. The DeployerWhitelist has since been disabled, but the code is kept in state for the sake of full backwards compatibility. As of the Bedrock upgrade, the DeployerWhitelist is completely unused by the Optimism system and could, in theory, be removed entirely.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/DeployerWhitelist.sol\":\"DeployerWhitelist\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/legacy/DeployerWhitelist.sol\":{\"keccak256\":\"0x40a9ec8f0d396bf0af240181646d8b50cc46a2fa760f73dc5cd3eed6184e5cec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddf76cf897a91d0053f14091c61d1fad53f750fe5927dc7c0684e4c495145667\",\"dweb:/ipfs/QmZLhHaVb88RHR7Nxcs9zvusyqMmSy8tvx71nLrRdH52jw\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":false},{"internalType":"address","name":"newOwner","type":"address","indexed":false}],"type":"event","name":"OwnerChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":false}],"type":"event","name":"WhitelistDisabled","anonymous":false},{"inputs":[{"internalType":"address","name":"deployer","type":"address","indexed":false},{"internalType":"bool","name":"whitelisted","type":"bool","indexed":false}],"type":"event","name":"WhitelistStatusChanged","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"enableArbitraryContractDeployment"},{"inputs":[{"internalType":"address","name":"_deployer","type":"address"}],"stateMutability":"view","type":"function","name":"isDeployerAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOwner"},{"inputs":[{"internalType":"address","name":"_deployer","type":"address"},{"internalType":"bool","name":"_isWhitelisted","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setWhitelistedDeployer"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"isDeployerAllowed(address)":{"params":{"_deployer":"Address to check."},"returns":{"_0":"Whether or not the address can deploy contracts."}},"setOwner(address)":{"params":{"_owner":"Address of the new owner."}},"setWhitelistedDeployer(address,bool)":{"params":{"_deployer":"Address to update permissions for.","_isWhitelisted":"Whether or not the address is whitelisted."}}},"version":1},"userdoc":{"kind":"user","methods":{"enableArbitraryContractDeployment()":{"notice":"Permanently enables arbitrary contract deployment and deletes the owner."},"isDeployerAllowed(address)":{"notice":"Checks whether an address is allowed to deploy contracts."},"owner()":{"notice":"Address of the owner of this contract. Note that when this address is set to address(0), the whitelist is disabled."},"setOwner(address)":{"notice":"Updates the owner of this contract."},"setWhitelistedDeployer(address,bool)":{"notice":"Adds or removes an address from the deployment whitelist."},"version()":{"notice":"Semantic version."},"whitelist(address)":{"notice":"Mapping of deployer addresses to boolean whitelist status."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/DeployerWhitelist.sol":"DeployerWhitelist"},"evmVersion":"london","libraries":{}},"sources":{"src/legacy/DeployerWhitelist.sol":{"keccak256":"0x40a9ec8f0d396bf0af240181646d8b50cc46a2fa760f73dc5cd3eed6184e5cec","urls":["bzz-raw://ddf76cf897a91d0053f14091c61d1fad53f750fe5927dc7c0684e4c495145667","dweb:/ipfs/QmZLhHaVb88RHR7Nxcs9zvusyqMmSy8tvx71nLrRdH52jw"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":98527,"contract":"src/legacy/DeployerWhitelist.sol:DeployerWhitelist","label":"owner","offset":0,"slot":"0","type":"t_address"},{"astId":98532,"contract":"src/legacy/DeployerWhitelist.sol:DeployerWhitelist","label":"whitelist","offset":0,"slot":"1","type":"t_mapping(t_address,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"}}},"userdoc":{"version":1,"kind":"user","methods":{"enableArbitraryContractDeployment()":{"notice":"Permanently enables arbitrary contract deployment and deletes the owner."},"isDeployerAllowed(address)":{"notice":"Checks whether an address is allowed to deploy contracts."},"owner()":{"notice":"Address of the owner of this contract. Note that when this address is set to address(0), the whitelist is disabled."},"setOwner(address)":{"notice":"Updates the owner of this contract."},"setWhitelistedDeployer(address,bool)":{"notice":"Adds or removes an address from the deployment whitelist."},"version()":{"notice":"Semantic version."},"whitelist(address)":{"notice":"Mapping of deployer addresses to boolean whitelist status."}},"events":{"OwnerChanged(address,address)":{"notice":"Emitted when the owner of this contract changes."},"WhitelistDisabled(address)":{"notice":"Emitted when the whitelist is disabled."},"WhitelistStatusChanged(address,bool)":{"notice":"Emitted when the whitelist status of a deployer changes."}},"notice":"DeployerWhitelist is a legacy contract that was originally used to act as a whitelist of addresses allowed to the Optimism network. The DeployerWhitelist has since been disabled, but the code is kept in state for the sake of full backwards compatibility. As of the Bedrock upgrade, the DeployerWhitelist is completely unused by the Optimism system and could, in theory, be removed entirely."},"devdoc":{"version":1,"kind":"dev","methods":{"isDeployerAllowed(address)":{"params":{"_deployer":"Address to check."},"returns":{"_0":"Whether or not the address can deploy contracts."}},"setOwner(address)":{"params":{"_owner":"Address of the new owner."}},"setWhitelistedDeployer(address,bool)":{"params":{"_deployer":"Address to update permissions for.","_isWhitelisted":"Whether or not the address is whitelisted."}}},"events":{"OwnerChanged(address,address)":{"params":{"newOwner":"Address of the new owner.","oldOwner":"Address of the previous owner."}},"WhitelistDisabled(address)":{"params":{"oldOwner":"Address of the final owner of the whitelist."}},"WhitelistStatusChanged(address,bool)":{"params":{"deployer":"Address of the deployer.","whitelisted":"Boolean indicating whether the deployer is whitelisted."}}},"title":"DeployerWhitelist"},"id":178}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3565:310:179:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;3565:310:179;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3565:310:179:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"CANNON\":{\"details\":\"A dispute game type the uses the cannon vm.\"}},\"title\":\"GameTypes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A library that defines the IDs of games that can be played.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/DisputeTypes.sol\":\"GameTypes\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/DisputeTypes.sol":"GameTypes"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"A library that defines the IDs of games that can be played."},"devdoc":{"version":1,"kind":"dev","title":"GameTypes"},"ast":{"absolutePath":"src/libraries/DisputeTypes.sol","id":93135,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"LibClaim":[91135],"LibClock":[91122],"LibDuration":[91148],"LibGameId":[90831],"LibGameType":[91200],"LibHash":[91161],"LibHashing":[90853],"LibPosition":[91067],"LibTimestamp":[91174],"LibVMStatus":[91187],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:5146:179","nodes":[{"id":92980,"nodeType":"PragmaDirective","src":"32:24:179","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":92982,"nodeType":"ImportDirective","src":"58:60:179","nodes":[],"absolutePath":"src/dispute/lib/LibHashing.sol","file":"src/dispute/lib/LibHashing.sol","nameLocation":"-1:-1:-1","scope":93135,"sourceUnit":90854,"symbolAliases":[{"foreign":{"id":92981,"name":"LibHashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90853,"src":"67:10:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92990,"nodeType":"ImportDirective","src":"119:154:179","nodes":[],"absolutePath":"src/dispute/lib/LibUDT.sol","file":"src/dispute/lib/LibUDT.sol","nameLocation":"-1:-1:-1","scope":93135,"sourceUnit":91201,"symbolAliases":[{"foreign":{"id":92983,"name":"LibClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91135,"src":"132:8:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92984,"name":"LibHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91161,"src":"146:7:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92985,"name":"LibDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91148,"src":"159:11:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92986,"name":"LibClock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91122,"src":"176:8:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92987,"name":"LibTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91174,"src":"190:12:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92988,"name":"LibVMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91187,"src":"208:11:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92989,"name":"LibGameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91200,"src":"225:11:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92992,"nodeType":"ImportDirective","src":"274:62:179","nodes":[],"absolutePath":"src/dispute/lib/LibPosition.sol","file":"src/dispute/lib/LibPosition.sol","nameLocation":"-1:-1:-1","scope":93135,"sourceUnit":91068,"symbolAliases":[{"foreign":{"id":92991,"name":"LibPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91067,"src":"283:11:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92994,"nodeType":"ImportDirective","src":"337:58:179","nodes":[],"absolutePath":"src/dispute/lib/LibGameId.sol","file":"src/dispute/lib/LibGameId.sol","nameLocation":"-1:-1:-1","scope":93135,"sourceUnit":90832,"symbolAliases":[{"foreign":{"id":92993,"name":"LibGameId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90831,"src":"346:9:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92998,"nodeType":"UsingForDirective","src":"397:32:179","nodes":[],"global":true,"libraryName":{"id":92995,"name":"LibClaim","nodeType":"IdentifierPath","referencedDeclaration":91135,"src":"403:8:179"},"typeName":{"id":92997,"nodeType":"UserDefinedTypeName","pathNode":{"id":92996,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"416:5:179"},"referencedDeclaration":93038,"src":"416:5:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}}},{"id":93002,"nodeType":"UsingForDirective","src":"430:34:179","nodes":[],"global":true,"libraryName":{"id":92999,"name":"LibHashing","nodeType":"IdentifierPath","referencedDeclaration":90853,"src":"436:10:179"},"typeName":{"id":93001,"nodeType":"UserDefinedTypeName","pathNode":{"id":93000,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"451:5:179"},"referencedDeclaration":93038,"src":"451:5:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}}},{"id":93006,"nodeType":"UsingForDirective","src":"465:30:179","nodes":[],"global":true,"libraryName":{"id":93003,"name":"LibHash","nodeType":"IdentifierPath","referencedDeclaration":91161,"src":"471:7:179"},"typeName":{"id":93005,"nodeType":"UserDefinedTypeName","pathNode":{"id":93004,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":93036,"src":"483:4:179"},"referencedDeclaration":93036,"src":"483:4:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"}}},{"id":93010,"nodeType":"UsingForDirective","src":"496:38:179","nodes":[],"global":true,"libraryName":{"id":93007,"name":"LibPosition","nodeType":"IdentifierPath","referencedDeclaration":91067,"src":"502:11:179"},"typeName":{"id":93009,"nodeType":"UserDefinedTypeName","pathNode":{"id":93008,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":93052,"src":"518:8:179"},"referencedDeclaration":93052,"src":"518:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$93052","typeString":"Position"}}},{"id":93014,"nodeType":"UsingForDirective","src":"535:38:179","nodes":[],"global":true,"libraryName":{"id":93011,"name":"LibDuration","nodeType":"IdentifierPath","referencedDeclaration":91148,"src":"541:11:179"},"typeName":{"id":93013,"nodeType":"UserDefinedTypeName","pathNode":{"id":93012,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"557:8:179"},"referencedDeclaration":93046,"src":"557:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}}},{"id":93018,"nodeType":"UsingForDirective","src":"574:32:179","nodes":[],"global":true,"libraryName":{"id":93015,"name":"LibClock","nodeType":"IdentifierPath","referencedDeclaration":91122,"src":"580:8:179"},"typeName":{"id":93017,"nodeType":"UserDefinedTypeName","pathNode":{"id":93016,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"593:5:179"},"referencedDeclaration":93050,"src":"593:5:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}}},{"id":93022,"nodeType":"UsingForDirective","src":"607:34:179","nodes":[],"global":true,"libraryName":{"id":93019,"name":"LibGameId","nodeType":"IdentifierPath","referencedDeclaration":90831,"src":"613:9:179"},"typeName":{"id":93021,"nodeType":"UserDefinedTypeName","pathNode":{"id":93020,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":93048,"src":"627:6:179"},"referencedDeclaration":93048,"src":"627:6:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$93048","typeString":"GameId"}}},{"id":93026,"nodeType":"UsingForDirective","src":"642:40:179","nodes":[],"global":true,"libraryName":{"id":93023,"name":"LibTimestamp","nodeType":"IdentifierPath","referencedDeclaration":91174,"src":"648:12:179"},"typeName":{"id":93025,"nodeType":"UserDefinedTypeName","pathNode":{"id":93024,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"665:9:179"},"referencedDeclaration":93044,"src":"665:9:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}}},{"id":93030,"nodeType":"UsingForDirective","src":"683:38:179","nodes":[],"global":true,"libraryName":{"id":93027,"name":"LibVMStatus","nodeType":"IdentifierPath","referencedDeclaration":91187,"src":"689:11:179"},"typeName":{"id":93029,"nodeType":"UserDefinedTypeName","pathNode":{"id":93028,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"705:8:179"},"referencedDeclaration":93056,"src":"705:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}}},{"id":93034,"nodeType":"UsingForDirective","src":"722:38:179","nodes":[],"global":true,"libraryName":{"id":93031,"name":"LibGameType","nodeType":"IdentifierPath","referencedDeclaration":91200,"src":"728:11:179"},"typeName":{"id":93033,"nodeType":"UserDefinedTypeName","pathNode":{"id":93032,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"744:8:179"},"referencedDeclaration":93054,"src":"744:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}}},{"id":93036,"nodeType":"UserDefinedValueTypeDefinition","src":"808:21:179","nodes":[],"canonicalName":"Hash","name":"Hash","nameLocation":"813:4:179","underlyingType":{"id":93035,"name":"bytes32","nodeType":"ElementaryTypeName","src":"821:7:179","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":93038,"nodeType":"UserDefinedValueTypeDefinition","src":"925:22:179","nodes":[],"canonicalName":"Claim","name":"Claim","nameLocation":"930:5:179","underlyingType":{"id":93037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"939:7:179","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":93040,"nodeType":"UserDefinedValueTypeDefinition","src":"1099:26:179","nodes":[],"canonicalName":"ClaimHash","name":"ClaimHash","nameLocation":"1104:9:179","underlyingType":{"id":93039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1117:7:179","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":93042,"nodeType":"UserDefinedValueTypeDefinition","src":"1226:27:179","nodes":[],"canonicalName":"BondAmount","name":"BondAmount","nameLocation":"1231:10:179","underlyingType":{"id":93041,"name":"uint256","nodeType":"ElementaryTypeName","src":"1245:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":93044,"nodeType":"UserDefinedValueTypeDefinition","src":"1295:25:179","nodes":[],"canonicalName":"Timestamp","name":"Timestamp","nameLocation":"1300:9:179","underlyingType":{"id":93043,"name":"uint64","nodeType":"ElementaryTypeName","src":"1313:6:179","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":93046,"nodeType":"UserDefinedValueTypeDefinition","src":"1384:24:179","nodes":[],"canonicalName":"Duration","name":"Duration","nameLocation":"1389:8:179","underlyingType":{"id":93045,"name":"uint64","nodeType":"ElementaryTypeName","src":"1401:6:179","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":93048,"nodeType":"UserDefinedValueTypeDefinition","src":"1953:23:179","nodes":[],"canonicalName":"GameId","name":"GameId","nameLocation":"1958:6:179","underlyingType":{"id":93047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1968:7:179","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":93050,"nodeType":"UserDefinedValueTypeDefinition","src":"2522:22:179","nodes":[],"canonicalName":"Clock","name":"Clock","nameLocation":"2527:5:179","underlyingType":{"id":93049,"name":"uint128","nodeType":"ElementaryTypeName","src":"2536:7:179","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"id":93052,"nodeType":"UserDefinedValueTypeDefinition","src":"2908:25:179","nodes":[],"canonicalName":"Position","name":"Position","nameLocation":"2913:8:179","underlyingType":{"id":93051,"name":"uint128","nodeType":"ElementaryTypeName","src":"2925:7:179","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"id":93054,"nodeType":"UserDefinedValueTypeDefinition","src":"3002:24:179","nodes":[],"canonicalName":"GameType","name":"GameType","nameLocation":"3007:8:179","underlyingType":{"id":93053,"name":"uint32","nodeType":"ElementaryTypeName","src":"3019:6:179","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}},{"id":93056,"nodeType":"UserDefinedValueTypeDefinition","src":"3094:23:179","nodes":[],"canonicalName":"VMStatus","name":"VMStatus","nameLocation":"3099:8:179","underlyingType":{"id":93055,"name":"uint8","nodeType":"ElementaryTypeName","src":"3111:5:179","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}},{"id":93060,"nodeType":"EnumDefinition","src":"3171:299:179","nodes":[],"canonicalName":"GameStatus","members":[{"id":93057,"name":"IN_PROGRESS","nameLocation":"3262:11:179","nodeType":"EnumValue","src":"3262:11:179"},{"id":93058,"name":"CHALLENGER_WINS","nameLocation":"3359:15:179","nodeType":"EnumValue","src":"3359:15:179"},{"id":93059,"name":"DEFENDER_WINS","nameLocation":"3455:13:179","nodeType":"EnumValue","src":"3455:13:179"}],"name":"GameStatus","nameLocation":"3176:10:179"},{"id":93078,"nodeType":"ContractDefinition","src":"3565:310:179","nodes":[{"id":93069,"nodeType":"VariableDeclaration","src":"3646:52:179","nodes":[],"constant":true,"documentation":{"id":93062,"nodeType":"StructuredDocumentation","src":"3589:52:179","text":"@dev A dispute game type the uses the cannon vm."},"mutability":"constant","name":"CANNON","nameLocation":"3673:6:179","scope":93078,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":93064,"nodeType":"UserDefinedTypeName","pathNode":{"id":93063,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"3646:8:179"},"referencedDeclaration":93054,"src":"3646:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"value":{"arguments":[{"hexValue":"30","id":93067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3696:1:179","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":93065,"name":"GameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93054,"src":"3682:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameType_$93054_$","typeString":"type(GameType)"}},"id":93066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"3682:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint32_$returns$_t_userDefinedValueType$_GameType_$93054_$","typeString":"function (uint32) pure returns (GameType)"}},"id":93068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3682:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"},{"id":93077,"nodeType":"VariableDeclaration","src":"3816:56:179","nodes":[],"constant":true,"documentation":{"id":93070,"nodeType":"StructuredDocumentation","src":"3705:106:179","text":"@notice A dispute game type that uses an alphabet vm.\n Not intended for production use."},"mutability":"constant","name":"ALPHABET","nameLocation":"3843:8:179","scope":93078,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":93072,"nodeType":"UserDefinedTypeName","pathNode":{"id":93071,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"3816:8:179"},"referencedDeclaration":93054,"src":"3816:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"value":{"arguments":[{"hexValue":"323535","id":93075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3868:3:179","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"expression":{"id":93073,"name":"GameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93054,"src":"3854:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameType_$93054_$","typeString":"type(GameType)"}},"id":93074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"3854:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint32_$returns$_t_userDefinedValueType$_GameType_$93054_$","typeString":"function (uint32) pure returns (GameType)"}},"id":93076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3854:18:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GameTypes","contractDependencies":[],"contractKind":"library","documentation":{"id":93061,"nodeType":"StructuredDocumentation","src":"3472:93:179","text":"@title GameTypes\n @notice A library that defines the IDs of games that can be played."},"fullyImplemented":true,"linearizedBaseContracts":[93078],"name":"GameTypes","nameLocation":"3573:9:179","scope":93135,"usedErrors":[]},{"id":93112,"nodeType":"ContractDefinition","src":"3969:503:179","nodes":[{"id":93087,"nodeType":"VariableDeclaration","src":"4069:51:179","nodes":[],"constant":true,"documentation":{"id":93080,"nodeType":"StructuredDocumentation","src":"3994:70:179","text":"@notice The VM has executed successfully and the outcome is valid."},"mutability":"constant","name":"VALID","nameLocation":"4096:5:179","scope":93112,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":93082,"nodeType":"UserDefinedTypeName","pathNode":{"id":93081,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4069:8:179"},"referencedDeclaration":93056,"src":"4069:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"30","id":93085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4118:1:179","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":93083,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93056,"src":"4104:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"type(VMStatus)"}},"id":93084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"4104:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":93086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4104:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"},{"id":93095,"nodeType":"VariableDeclaration","src":"4204:53:179","nodes":[],"constant":true,"documentation":{"id":93088,"nodeType":"StructuredDocumentation","src":"4127:72:179","text":"@notice The VM has executed successfully and the outcome is invalid."},"mutability":"constant","name":"INVALID","nameLocation":"4231:7:179","scope":93112,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":93090,"nodeType":"UserDefinedTypeName","pathNode":{"id":93089,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4204:8:179"},"referencedDeclaration":93056,"src":"4204:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"31","id":93093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4255:1:179","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":93091,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93056,"src":"4241:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"type(VMStatus)"}},"id":93092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"4241:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":93094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4241:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"},{"id":93103,"nodeType":"VariableDeclaration","src":"4300:51:179","nodes":[],"constant":true,"documentation":{"id":93096,"nodeType":"StructuredDocumentation","src":"4264:31:179","text":"@notice The VM has paniced."},"mutability":"constant","name":"PANIC","nameLocation":"4327:5:179","scope":93112,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":93098,"nodeType":"UserDefinedTypeName","pathNode":{"id":93097,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4300:8:179"},"referencedDeclaration":93056,"src":"4300:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"32","id":93101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4349:1:179","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":93099,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93056,"src":"4335:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"type(VMStatus)"}},"id":93100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"4335:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":93102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4335:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"},{"id":93111,"nodeType":"VariableDeclaration","src":"4413:56:179","nodes":[],"constant":true,"documentation":{"id":93104,"nodeType":"StructuredDocumentation","src":"4358:50:179","text":"@notice The VM execution is still in progress."},"mutability":"constant","name":"UNFINISHED","nameLocation":"4440:10:179","scope":93112,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":93106,"nodeType":"UserDefinedTypeName","pathNode":{"id":93105,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4413:8:179"},"referencedDeclaration":93056,"src":"4413:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"33","id":93109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4467:1:179","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"expression":{"id":93107,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93056,"src":"4453:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"type(VMStatus)"}},"id":93108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"4453:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":93110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4453:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"VMStatuses","contractDependencies":[],"contractKind":"library","documentation":{"id":93079,"nodeType":"StructuredDocumentation","src":"3877:92:179","text":"@title VMStatuses\n @notice Named type aliases for the various valid VM status bytes."},"fullyImplemented":true,"linearizedBaseContracts":[93112],"name":"VMStatuses","nameLocation":"3977:10:179","scope":93135,"usedErrors":[]},{"id":93134,"nodeType":"ContractDefinition","src":"4577:600:179","nodes":[{"id":93117,"nodeType":"VariableDeclaration","src":"4661:45:179","nodes":[],"constant":true,"documentation":{"id":93114,"nodeType":"StructuredDocumentation","src":"4608:48:179","text":"@notice The identifier for the L1 head hash."},"mutability":"constant","name":"L1_HEAD_HASH","nameLocation":"4687:12:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93115,"name":"uint256","nodeType":"ElementaryTypeName","src":"4661:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783031","id":93116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4702:4:179","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"id":93121,"nodeType":"VariableDeclaration","src":"4774:53:179","nodes":[],"constant":true,"documentation":{"id":93118,"nodeType":"StructuredDocumentation","src":"4713:56:179","text":"@notice The identifier for the starting output root."},"mutability":"constant","name":"STARTING_OUTPUT_ROOT","nameLocation":"4800:20:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93119,"name":"uint256","nodeType":"ElementaryTypeName","src":"4774:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783032","id":93120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4823:4:179","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"visibility":"internal"},{"id":93125,"nodeType":"VariableDeclaration","src":"4895:53:179","nodes":[],"constant":true,"documentation":{"id":93122,"nodeType":"StructuredDocumentation","src":"4834:56:179","text":"@notice The identifier for the disputed output root."},"mutability":"constant","name":"DISPUTED_OUTPUT_ROOT","nameLocation":"4921:20:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93123,"name":"uint256","nodeType":"ElementaryTypeName","src":"4895:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783033","id":93124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4944:4:179","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"0x03"},"visibility":"internal"},{"id":93129,"nodeType":"VariableDeclaration","src":"5020:57:179","nodes":[],"constant":true,"documentation":{"id":93126,"nodeType":"StructuredDocumentation","src":"4955:60:179","text":"@notice The identifier for the starting L2 block number."},"mutability":"constant","name":"STARTING_L2_BLOCK_NUMBER","nameLocation":"5046:24:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93127,"name":"uint256","nodeType":"ElementaryTypeName","src":"5020:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783034","id":93128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5073:4:179","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x04"},"visibility":"internal"},{"id":93133,"nodeType":"VariableDeclaration","src":"5133:41:179","nodes":[],"constant":true,"documentation":{"id":93130,"nodeType":"StructuredDocumentation","src":"5084:44:179","text":"@notice The identifier for the chain ID."},"mutability":"constant","name":"CHAIN_ID","nameLocation":"5159:8:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93131,"name":"uint256","nodeType":"ElementaryTypeName","src":"5133:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783035","id":93132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5170:4:179","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"0x05"},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LocalPreimageKey","contractDependencies":[],"contractKind":"library","documentation":{"id":93113,"nodeType":"StructuredDocumentation","src":"4474:103:179","text":"@title LocalPreimageKey\n @notice Named type aliases for local `PreimageOracle` key identifiers."},"fullyImplemented":true,"linearizedBaseContracts":[93134],"name":"LocalPreimageKey","nameLocation":"4585:16:179","scope":93135,"usedErrors":[]}],"license":"MIT"},"id":179}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3854:452:190:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;3854:452:190;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3854:452:190:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"CANNON\":{\"details\":\"A dispute game type the uses the cannon vm.\"},\"PERMISSIONED_CANNON\":{\"details\":\"A permissioned dispute game type the uses the cannon vm.\"}},\"title\":\"GameTypes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A library that defines the IDs of games that can be played.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/DisputeTypes.sol\":\"GameTypes\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/DisputeTypes.sol":"GameTypes"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"A library that defines the IDs of games that can be played."},"devdoc":{"version":1,"kind":"dev","title":"GameTypes"},"id":190}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4577:600:179:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;4577:600:179;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4577:600:179:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LocalPreimageKey\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Named type aliases for local `PreimageOracle` key identifiers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/DisputeTypes.sol\":\"LocalPreimageKey\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/DisputeTypes.sol":"LocalPreimageKey"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Named type aliases for local `PreimageOracle` key identifiers."},"devdoc":{"version":1,"kind":"dev","title":"LocalPreimageKey"},"ast":{"absolutePath":"src/libraries/DisputeTypes.sol","id":93135,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"LibClaim":[91135],"LibClock":[91122],"LibDuration":[91148],"LibGameId":[90831],"LibGameType":[91200],"LibHash":[91161],"LibHashing":[90853],"LibPosition":[91067],"LibTimestamp":[91174],"LibVMStatus":[91187],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:5146:179","nodes":[{"id":92980,"nodeType":"PragmaDirective","src":"32:24:179","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":92982,"nodeType":"ImportDirective","src":"58:60:179","nodes":[],"absolutePath":"src/dispute/lib/LibHashing.sol","file":"src/dispute/lib/LibHashing.sol","nameLocation":"-1:-1:-1","scope":93135,"sourceUnit":90854,"symbolAliases":[{"foreign":{"id":92981,"name":"LibHashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90853,"src":"67:10:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92990,"nodeType":"ImportDirective","src":"119:154:179","nodes":[],"absolutePath":"src/dispute/lib/LibUDT.sol","file":"src/dispute/lib/LibUDT.sol","nameLocation":"-1:-1:-1","scope":93135,"sourceUnit":91201,"symbolAliases":[{"foreign":{"id":92983,"name":"LibClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91135,"src":"132:8:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92984,"name":"LibHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91161,"src":"146:7:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92985,"name":"LibDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91148,"src":"159:11:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92986,"name":"LibClock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91122,"src":"176:8:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92987,"name":"LibTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91174,"src":"190:12:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92988,"name":"LibVMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91187,"src":"208:11:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92989,"name":"LibGameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91200,"src":"225:11:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92992,"nodeType":"ImportDirective","src":"274:62:179","nodes":[],"absolutePath":"src/dispute/lib/LibPosition.sol","file":"src/dispute/lib/LibPosition.sol","nameLocation":"-1:-1:-1","scope":93135,"sourceUnit":91068,"symbolAliases":[{"foreign":{"id":92991,"name":"LibPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91067,"src":"283:11:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92994,"nodeType":"ImportDirective","src":"337:58:179","nodes":[],"absolutePath":"src/dispute/lib/LibGameId.sol","file":"src/dispute/lib/LibGameId.sol","nameLocation":"-1:-1:-1","scope":93135,"sourceUnit":90832,"symbolAliases":[{"foreign":{"id":92993,"name":"LibGameId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90831,"src":"346:9:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92998,"nodeType":"UsingForDirective","src":"397:32:179","nodes":[],"global":true,"libraryName":{"id":92995,"name":"LibClaim","nodeType":"IdentifierPath","referencedDeclaration":91135,"src":"403:8:179"},"typeName":{"id":92997,"nodeType":"UserDefinedTypeName","pathNode":{"id":92996,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"416:5:179"},"referencedDeclaration":93038,"src":"416:5:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}}},{"id":93002,"nodeType":"UsingForDirective","src":"430:34:179","nodes":[],"global":true,"libraryName":{"id":92999,"name":"LibHashing","nodeType":"IdentifierPath","referencedDeclaration":90853,"src":"436:10:179"},"typeName":{"id":93001,"nodeType":"UserDefinedTypeName","pathNode":{"id":93000,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"451:5:179"},"referencedDeclaration":93038,"src":"451:5:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}}},{"id":93006,"nodeType":"UsingForDirective","src":"465:30:179","nodes":[],"global":true,"libraryName":{"id":93003,"name":"LibHash","nodeType":"IdentifierPath","referencedDeclaration":91161,"src":"471:7:179"},"typeName":{"id":93005,"nodeType":"UserDefinedTypeName","pathNode":{"id":93004,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":93036,"src":"483:4:179"},"referencedDeclaration":93036,"src":"483:4:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"}}},{"id":93010,"nodeType":"UsingForDirective","src":"496:38:179","nodes":[],"global":true,"libraryName":{"id":93007,"name":"LibPosition","nodeType":"IdentifierPath","referencedDeclaration":91067,"src":"502:11:179"},"typeName":{"id":93009,"nodeType":"UserDefinedTypeName","pathNode":{"id":93008,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":93052,"src":"518:8:179"},"referencedDeclaration":93052,"src":"518:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$93052","typeString":"Position"}}},{"id":93014,"nodeType":"UsingForDirective","src":"535:38:179","nodes":[],"global":true,"libraryName":{"id":93011,"name":"LibDuration","nodeType":"IdentifierPath","referencedDeclaration":91148,"src":"541:11:179"},"typeName":{"id":93013,"nodeType":"UserDefinedTypeName","pathNode":{"id":93012,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"557:8:179"},"referencedDeclaration":93046,"src":"557:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}}},{"id":93018,"nodeType":"UsingForDirective","src":"574:32:179","nodes":[],"global":true,"libraryName":{"id":93015,"name":"LibClock","nodeType":"IdentifierPath","referencedDeclaration":91122,"src":"580:8:179"},"typeName":{"id":93017,"nodeType":"UserDefinedTypeName","pathNode":{"id":93016,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"593:5:179"},"referencedDeclaration":93050,"src":"593:5:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}}},{"id":93022,"nodeType":"UsingForDirective","src":"607:34:179","nodes":[],"global":true,"libraryName":{"id":93019,"name":"LibGameId","nodeType":"IdentifierPath","referencedDeclaration":90831,"src":"613:9:179"},"typeName":{"id":93021,"nodeType":"UserDefinedTypeName","pathNode":{"id":93020,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":93048,"src":"627:6:179"},"referencedDeclaration":93048,"src":"627:6:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$93048","typeString":"GameId"}}},{"id":93026,"nodeType":"UsingForDirective","src":"642:40:179","nodes":[],"global":true,"libraryName":{"id":93023,"name":"LibTimestamp","nodeType":"IdentifierPath","referencedDeclaration":91174,"src":"648:12:179"},"typeName":{"id":93025,"nodeType":"UserDefinedTypeName","pathNode":{"id":93024,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"665:9:179"},"referencedDeclaration":93044,"src":"665:9:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}}},{"id":93030,"nodeType":"UsingForDirective","src":"683:38:179","nodes":[],"global":true,"libraryName":{"id":93027,"name":"LibVMStatus","nodeType":"IdentifierPath","referencedDeclaration":91187,"src":"689:11:179"},"typeName":{"id":93029,"nodeType":"UserDefinedTypeName","pathNode":{"id":93028,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"705:8:179"},"referencedDeclaration":93056,"src":"705:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}}},{"id":93034,"nodeType":"UsingForDirective","src":"722:38:179","nodes":[],"global":true,"libraryName":{"id":93031,"name":"LibGameType","nodeType":"IdentifierPath","referencedDeclaration":91200,"src":"728:11:179"},"typeName":{"id":93033,"nodeType":"UserDefinedTypeName","pathNode":{"id":93032,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"744:8:179"},"referencedDeclaration":93054,"src":"744:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}}},{"id":93036,"nodeType":"UserDefinedValueTypeDefinition","src":"808:21:179","nodes":[],"canonicalName":"Hash","name":"Hash","nameLocation":"813:4:179","underlyingType":{"id":93035,"name":"bytes32","nodeType":"ElementaryTypeName","src":"821:7:179","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":93038,"nodeType":"UserDefinedValueTypeDefinition","src":"925:22:179","nodes":[],"canonicalName":"Claim","name":"Claim","nameLocation":"930:5:179","underlyingType":{"id":93037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"939:7:179","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":93040,"nodeType":"UserDefinedValueTypeDefinition","src":"1099:26:179","nodes":[],"canonicalName":"ClaimHash","name":"ClaimHash","nameLocation":"1104:9:179","underlyingType":{"id":93039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1117:7:179","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":93042,"nodeType":"UserDefinedValueTypeDefinition","src":"1226:27:179","nodes":[],"canonicalName":"BondAmount","name":"BondAmount","nameLocation":"1231:10:179","underlyingType":{"id":93041,"name":"uint256","nodeType":"ElementaryTypeName","src":"1245:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":93044,"nodeType":"UserDefinedValueTypeDefinition","src":"1295:25:179","nodes":[],"canonicalName":"Timestamp","name":"Timestamp","nameLocation":"1300:9:179","underlyingType":{"id":93043,"name":"uint64","nodeType":"ElementaryTypeName","src":"1313:6:179","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":93046,"nodeType":"UserDefinedValueTypeDefinition","src":"1384:24:179","nodes":[],"canonicalName":"Duration","name":"Duration","nameLocation":"1389:8:179","underlyingType":{"id":93045,"name":"uint64","nodeType":"ElementaryTypeName","src":"1401:6:179","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":93048,"nodeType":"UserDefinedValueTypeDefinition","src":"1953:23:179","nodes":[],"canonicalName":"GameId","name":"GameId","nameLocation":"1958:6:179","underlyingType":{"id":93047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1968:7:179","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":93050,"nodeType":"UserDefinedValueTypeDefinition","src":"2522:22:179","nodes":[],"canonicalName":"Clock","name":"Clock","nameLocation":"2527:5:179","underlyingType":{"id":93049,"name":"uint128","nodeType":"ElementaryTypeName","src":"2536:7:179","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"id":93052,"nodeType":"UserDefinedValueTypeDefinition","src":"2908:25:179","nodes":[],"canonicalName":"Position","name":"Position","nameLocation":"2913:8:179","underlyingType":{"id":93051,"name":"uint128","nodeType":"ElementaryTypeName","src":"2925:7:179","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"id":93054,"nodeType":"UserDefinedValueTypeDefinition","src":"3002:24:179","nodes":[],"canonicalName":"GameType","name":"GameType","nameLocation":"3007:8:179","underlyingType":{"id":93053,"name":"uint32","nodeType":"ElementaryTypeName","src":"3019:6:179","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}},{"id":93056,"nodeType":"UserDefinedValueTypeDefinition","src":"3094:23:179","nodes":[],"canonicalName":"VMStatus","name":"VMStatus","nameLocation":"3099:8:179","underlyingType":{"id":93055,"name":"uint8","nodeType":"ElementaryTypeName","src":"3111:5:179","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}},{"id":93060,"nodeType":"EnumDefinition","src":"3171:299:179","nodes":[],"canonicalName":"GameStatus","members":[{"id":93057,"name":"IN_PROGRESS","nameLocation":"3262:11:179","nodeType":"EnumValue","src":"3262:11:179"},{"id":93058,"name":"CHALLENGER_WINS","nameLocation":"3359:15:179","nodeType":"EnumValue","src":"3359:15:179"},{"id":93059,"name":"DEFENDER_WINS","nameLocation":"3455:13:179","nodeType":"EnumValue","src":"3455:13:179"}],"name":"GameStatus","nameLocation":"3176:10:179"},{"id":93078,"nodeType":"ContractDefinition","src":"3565:310:179","nodes":[{"id":93069,"nodeType":"VariableDeclaration","src":"3646:52:179","nodes":[],"constant":true,"documentation":{"id":93062,"nodeType":"StructuredDocumentation","src":"3589:52:179","text":"@dev A dispute game type the uses the cannon vm."},"mutability":"constant","name":"CANNON","nameLocation":"3673:6:179","scope":93078,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":93064,"nodeType":"UserDefinedTypeName","pathNode":{"id":93063,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"3646:8:179"},"referencedDeclaration":93054,"src":"3646:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"value":{"arguments":[{"hexValue":"30","id":93067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3696:1:179","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":93065,"name":"GameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93054,"src":"3682:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameType_$93054_$","typeString":"type(GameType)"}},"id":93066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"3682:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint32_$returns$_t_userDefinedValueType$_GameType_$93054_$","typeString":"function (uint32) pure returns (GameType)"}},"id":93068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3682:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"},{"id":93077,"nodeType":"VariableDeclaration","src":"3816:56:179","nodes":[],"constant":true,"documentation":{"id":93070,"nodeType":"StructuredDocumentation","src":"3705:106:179","text":"@notice A dispute game type that uses an alphabet vm.\n Not intended for production use."},"mutability":"constant","name":"ALPHABET","nameLocation":"3843:8:179","scope":93078,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":93072,"nodeType":"UserDefinedTypeName","pathNode":{"id":93071,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"3816:8:179"},"referencedDeclaration":93054,"src":"3816:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"value":{"arguments":[{"hexValue":"323535","id":93075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3868:3:179","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"expression":{"id":93073,"name":"GameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93054,"src":"3854:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameType_$93054_$","typeString":"type(GameType)"}},"id":93074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"3854:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint32_$returns$_t_userDefinedValueType$_GameType_$93054_$","typeString":"function (uint32) pure returns (GameType)"}},"id":93076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3854:18:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GameTypes","contractDependencies":[],"contractKind":"library","documentation":{"id":93061,"nodeType":"StructuredDocumentation","src":"3472:93:179","text":"@title GameTypes\n @notice A library that defines the IDs of games that can be played."},"fullyImplemented":true,"linearizedBaseContracts":[93078],"name":"GameTypes","nameLocation":"3573:9:179","scope":93135,"usedErrors":[]},{"id":93112,"nodeType":"ContractDefinition","src":"3969:503:179","nodes":[{"id":93087,"nodeType":"VariableDeclaration","src":"4069:51:179","nodes":[],"constant":true,"documentation":{"id":93080,"nodeType":"StructuredDocumentation","src":"3994:70:179","text":"@notice The VM has executed successfully and the outcome is valid."},"mutability":"constant","name":"VALID","nameLocation":"4096:5:179","scope":93112,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":93082,"nodeType":"UserDefinedTypeName","pathNode":{"id":93081,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4069:8:179"},"referencedDeclaration":93056,"src":"4069:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"30","id":93085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4118:1:179","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":93083,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93056,"src":"4104:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"type(VMStatus)"}},"id":93084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"4104:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":93086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4104:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"},{"id":93095,"nodeType":"VariableDeclaration","src":"4204:53:179","nodes":[],"constant":true,"documentation":{"id":93088,"nodeType":"StructuredDocumentation","src":"4127:72:179","text":"@notice The VM has executed successfully and the outcome is invalid."},"mutability":"constant","name":"INVALID","nameLocation":"4231:7:179","scope":93112,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":93090,"nodeType":"UserDefinedTypeName","pathNode":{"id":93089,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4204:8:179"},"referencedDeclaration":93056,"src":"4204:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"31","id":93093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4255:1:179","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":93091,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93056,"src":"4241:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"type(VMStatus)"}},"id":93092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"4241:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":93094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4241:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"},{"id":93103,"nodeType":"VariableDeclaration","src":"4300:51:179","nodes":[],"constant":true,"documentation":{"id":93096,"nodeType":"StructuredDocumentation","src":"4264:31:179","text":"@notice The VM has paniced."},"mutability":"constant","name":"PANIC","nameLocation":"4327:5:179","scope":93112,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":93098,"nodeType":"UserDefinedTypeName","pathNode":{"id":93097,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4300:8:179"},"referencedDeclaration":93056,"src":"4300:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"32","id":93101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4349:1:179","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":93099,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93056,"src":"4335:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"type(VMStatus)"}},"id":93100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"4335:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":93102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4335:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"},{"id":93111,"nodeType":"VariableDeclaration","src":"4413:56:179","nodes":[],"constant":true,"documentation":{"id":93104,"nodeType":"StructuredDocumentation","src":"4358:50:179","text":"@notice The VM execution is still in progress."},"mutability":"constant","name":"UNFINISHED","nameLocation":"4440:10:179","scope":93112,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":93106,"nodeType":"UserDefinedTypeName","pathNode":{"id":93105,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4413:8:179"},"referencedDeclaration":93056,"src":"4413:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"33","id":93109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4467:1:179","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"expression":{"id":93107,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93056,"src":"4453:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"type(VMStatus)"}},"id":93108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"4453:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":93110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4453:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"VMStatuses","contractDependencies":[],"contractKind":"library","documentation":{"id":93079,"nodeType":"StructuredDocumentation","src":"3877:92:179","text":"@title VMStatuses\n @notice Named type aliases for the various valid VM status bytes."},"fullyImplemented":true,"linearizedBaseContracts":[93112],"name":"VMStatuses","nameLocation":"3977:10:179","scope":93135,"usedErrors":[]},{"id":93134,"nodeType":"ContractDefinition","src":"4577:600:179","nodes":[{"id":93117,"nodeType":"VariableDeclaration","src":"4661:45:179","nodes":[],"constant":true,"documentation":{"id":93114,"nodeType":"StructuredDocumentation","src":"4608:48:179","text":"@notice The identifier for the L1 head hash."},"mutability":"constant","name":"L1_HEAD_HASH","nameLocation":"4687:12:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93115,"name":"uint256","nodeType":"ElementaryTypeName","src":"4661:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783031","id":93116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4702:4:179","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"id":93121,"nodeType":"VariableDeclaration","src":"4774:53:179","nodes":[],"constant":true,"documentation":{"id":93118,"nodeType":"StructuredDocumentation","src":"4713:56:179","text":"@notice The identifier for the starting output root."},"mutability":"constant","name":"STARTING_OUTPUT_ROOT","nameLocation":"4800:20:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93119,"name":"uint256","nodeType":"ElementaryTypeName","src":"4774:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783032","id":93120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4823:4:179","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"visibility":"internal"},{"id":93125,"nodeType":"VariableDeclaration","src":"4895:53:179","nodes":[],"constant":true,"documentation":{"id":93122,"nodeType":"StructuredDocumentation","src":"4834:56:179","text":"@notice The identifier for the disputed output root."},"mutability":"constant","name":"DISPUTED_OUTPUT_ROOT","nameLocation":"4921:20:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93123,"name":"uint256","nodeType":"ElementaryTypeName","src":"4895:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783033","id":93124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4944:4:179","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"0x03"},"visibility":"internal"},{"id":93129,"nodeType":"VariableDeclaration","src":"5020:57:179","nodes":[],"constant":true,"documentation":{"id":93126,"nodeType":"StructuredDocumentation","src":"4955:60:179","text":"@notice The identifier for the starting L2 block number."},"mutability":"constant","name":"STARTING_L2_BLOCK_NUMBER","nameLocation":"5046:24:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93127,"name":"uint256","nodeType":"ElementaryTypeName","src":"5020:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783034","id":93128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5073:4:179","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x04"},"visibility":"internal"},{"id":93133,"nodeType":"VariableDeclaration","src":"5133:41:179","nodes":[],"constant":true,"documentation":{"id":93130,"nodeType":"StructuredDocumentation","src":"5084:44:179","text":"@notice The identifier for the chain ID."},"mutability":"constant","name":"CHAIN_ID","nameLocation":"5159:8:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93131,"name":"uint256","nodeType":"ElementaryTypeName","src":"5133:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783035","id":93132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5170:4:179","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"0x05"},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LocalPreimageKey","contractDependencies":[],"contractKind":"library","documentation":{"id":93113,"nodeType":"StructuredDocumentation","src":"4474:103:179","text":"@title LocalPreimageKey\n @notice Named type aliases for local `PreimageOracle` key identifiers."},"fullyImplemented":true,"linearizedBaseContracts":[93134],"name":"LocalPreimageKey","nameLocation":"4585:16:179","scope":93135,"usedErrors":[]}],"license":"MIT"},"id":179}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"5008:600:190:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;5008:600:190;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"5008:600:190:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LocalPreimageKey\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Named type aliases for local `PreimageOracle` key identifiers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/DisputeTypes.sol\":\"LocalPreimageKey\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/DisputeTypes.sol":"LocalPreimageKey"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Named type aliases for local `PreimageOracle` key identifiers."},"devdoc":{"version":1,"kind":"dev","title":"LocalPreimageKey"},"id":190}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3969:503:179:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;3969:503:179;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3969:503:179:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"VMStatuses\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Named type aliases for the various valid VM status bytes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/DisputeTypes.sol\":\"VMStatuses\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/DisputeTypes.sol":"VMStatuses"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Named type aliases for the various valid VM status bytes."},"devdoc":{"version":1,"kind":"dev","title":"VMStatuses"},"ast":{"absolutePath":"src/libraries/DisputeTypes.sol","id":93135,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"LibClaim":[91135],"LibClock":[91122],"LibDuration":[91148],"LibGameId":[90831],"LibGameType":[91200],"LibHash":[91161],"LibHashing":[90853],"LibPosition":[91067],"LibTimestamp":[91174],"LibVMStatus":[91187],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:5146:179","nodes":[{"id":92980,"nodeType":"PragmaDirective","src":"32:24:179","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":92982,"nodeType":"ImportDirective","src":"58:60:179","nodes":[],"absolutePath":"src/dispute/lib/LibHashing.sol","file":"src/dispute/lib/LibHashing.sol","nameLocation":"-1:-1:-1","scope":93135,"sourceUnit":90854,"symbolAliases":[{"foreign":{"id":92981,"name":"LibHashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90853,"src":"67:10:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92990,"nodeType":"ImportDirective","src":"119:154:179","nodes":[],"absolutePath":"src/dispute/lib/LibUDT.sol","file":"src/dispute/lib/LibUDT.sol","nameLocation":"-1:-1:-1","scope":93135,"sourceUnit":91201,"symbolAliases":[{"foreign":{"id":92983,"name":"LibClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91135,"src":"132:8:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92984,"name":"LibHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91161,"src":"146:7:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92985,"name":"LibDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91148,"src":"159:11:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92986,"name":"LibClock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91122,"src":"176:8:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92987,"name":"LibTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91174,"src":"190:12:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92988,"name":"LibVMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91187,"src":"208:11:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":92989,"name":"LibGameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91200,"src":"225:11:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92992,"nodeType":"ImportDirective","src":"274:62:179","nodes":[],"absolutePath":"src/dispute/lib/LibPosition.sol","file":"src/dispute/lib/LibPosition.sol","nameLocation":"-1:-1:-1","scope":93135,"sourceUnit":91068,"symbolAliases":[{"foreign":{"id":92991,"name":"LibPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91067,"src":"283:11:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92994,"nodeType":"ImportDirective","src":"337:58:179","nodes":[],"absolutePath":"src/dispute/lib/LibGameId.sol","file":"src/dispute/lib/LibGameId.sol","nameLocation":"-1:-1:-1","scope":93135,"sourceUnit":90832,"symbolAliases":[{"foreign":{"id":92993,"name":"LibGameId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90831,"src":"346:9:179","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92998,"nodeType":"UsingForDirective","src":"397:32:179","nodes":[],"global":true,"libraryName":{"id":92995,"name":"LibClaim","nodeType":"IdentifierPath","referencedDeclaration":91135,"src":"403:8:179"},"typeName":{"id":92997,"nodeType":"UserDefinedTypeName","pathNode":{"id":92996,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"416:5:179"},"referencedDeclaration":93038,"src":"416:5:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}}},{"id":93002,"nodeType":"UsingForDirective","src":"430:34:179","nodes":[],"global":true,"libraryName":{"id":92999,"name":"LibHashing","nodeType":"IdentifierPath","referencedDeclaration":90853,"src":"436:10:179"},"typeName":{"id":93001,"nodeType":"UserDefinedTypeName","pathNode":{"id":93000,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"451:5:179"},"referencedDeclaration":93038,"src":"451:5:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}}},{"id":93006,"nodeType":"UsingForDirective","src":"465:30:179","nodes":[],"global":true,"libraryName":{"id":93003,"name":"LibHash","nodeType":"IdentifierPath","referencedDeclaration":91161,"src":"471:7:179"},"typeName":{"id":93005,"nodeType":"UserDefinedTypeName","pathNode":{"id":93004,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":93036,"src":"483:4:179"},"referencedDeclaration":93036,"src":"483:4:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"}}},{"id":93010,"nodeType":"UsingForDirective","src":"496:38:179","nodes":[],"global":true,"libraryName":{"id":93007,"name":"LibPosition","nodeType":"IdentifierPath","referencedDeclaration":91067,"src":"502:11:179"},"typeName":{"id":93009,"nodeType":"UserDefinedTypeName","pathNode":{"id":93008,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":93052,"src":"518:8:179"},"referencedDeclaration":93052,"src":"518:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$93052","typeString":"Position"}}},{"id":93014,"nodeType":"UsingForDirective","src":"535:38:179","nodes":[],"global":true,"libraryName":{"id":93011,"name":"LibDuration","nodeType":"IdentifierPath","referencedDeclaration":91148,"src":"541:11:179"},"typeName":{"id":93013,"nodeType":"UserDefinedTypeName","pathNode":{"id":93012,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"557:8:179"},"referencedDeclaration":93046,"src":"557:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}}},{"id":93018,"nodeType":"UsingForDirective","src":"574:32:179","nodes":[],"global":true,"libraryName":{"id":93015,"name":"LibClock","nodeType":"IdentifierPath","referencedDeclaration":91122,"src":"580:8:179"},"typeName":{"id":93017,"nodeType":"UserDefinedTypeName","pathNode":{"id":93016,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"593:5:179"},"referencedDeclaration":93050,"src":"593:5:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}}},{"id":93022,"nodeType":"UsingForDirective","src":"607:34:179","nodes":[],"global":true,"libraryName":{"id":93019,"name":"LibGameId","nodeType":"IdentifierPath","referencedDeclaration":90831,"src":"613:9:179"},"typeName":{"id":93021,"nodeType":"UserDefinedTypeName","pathNode":{"id":93020,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":93048,"src":"627:6:179"},"referencedDeclaration":93048,"src":"627:6:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$93048","typeString":"GameId"}}},{"id":93026,"nodeType":"UsingForDirective","src":"642:40:179","nodes":[],"global":true,"libraryName":{"id":93023,"name":"LibTimestamp","nodeType":"IdentifierPath","referencedDeclaration":91174,"src":"648:12:179"},"typeName":{"id":93025,"nodeType":"UserDefinedTypeName","pathNode":{"id":93024,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"665:9:179"},"referencedDeclaration":93044,"src":"665:9:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}}},{"id":93030,"nodeType":"UsingForDirective","src":"683:38:179","nodes":[],"global":true,"libraryName":{"id":93027,"name":"LibVMStatus","nodeType":"IdentifierPath","referencedDeclaration":91187,"src":"689:11:179"},"typeName":{"id":93029,"nodeType":"UserDefinedTypeName","pathNode":{"id":93028,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"705:8:179"},"referencedDeclaration":93056,"src":"705:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}}},{"id":93034,"nodeType":"UsingForDirective","src":"722:38:179","nodes":[],"global":true,"libraryName":{"id":93031,"name":"LibGameType","nodeType":"IdentifierPath","referencedDeclaration":91200,"src":"728:11:179"},"typeName":{"id":93033,"nodeType":"UserDefinedTypeName","pathNode":{"id":93032,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"744:8:179"},"referencedDeclaration":93054,"src":"744:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}}},{"id":93036,"nodeType":"UserDefinedValueTypeDefinition","src":"808:21:179","nodes":[],"canonicalName":"Hash","name":"Hash","nameLocation":"813:4:179","underlyingType":{"id":93035,"name":"bytes32","nodeType":"ElementaryTypeName","src":"821:7:179","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":93038,"nodeType":"UserDefinedValueTypeDefinition","src":"925:22:179","nodes":[],"canonicalName":"Claim","name":"Claim","nameLocation":"930:5:179","underlyingType":{"id":93037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"939:7:179","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":93040,"nodeType":"UserDefinedValueTypeDefinition","src":"1099:26:179","nodes":[],"canonicalName":"ClaimHash","name":"ClaimHash","nameLocation":"1104:9:179","underlyingType":{"id":93039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1117:7:179","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":93042,"nodeType":"UserDefinedValueTypeDefinition","src":"1226:27:179","nodes":[],"canonicalName":"BondAmount","name":"BondAmount","nameLocation":"1231:10:179","underlyingType":{"id":93041,"name":"uint256","nodeType":"ElementaryTypeName","src":"1245:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":93044,"nodeType":"UserDefinedValueTypeDefinition","src":"1295:25:179","nodes":[],"canonicalName":"Timestamp","name":"Timestamp","nameLocation":"1300:9:179","underlyingType":{"id":93043,"name":"uint64","nodeType":"ElementaryTypeName","src":"1313:6:179","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":93046,"nodeType":"UserDefinedValueTypeDefinition","src":"1384:24:179","nodes":[],"canonicalName":"Duration","name":"Duration","nameLocation":"1389:8:179","underlyingType":{"id":93045,"name":"uint64","nodeType":"ElementaryTypeName","src":"1401:6:179","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},{"id":93048,"nodeType":"UserDefinedValueTypeDefinition","src":"1953:23:179","nodes":[],"canonicalName":"GameId","name":"GameId","nameLocation":"1958:6:179","underlyingType":{"id":93047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1968:7:179","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":93050,"nodeType":"UserDefinedValueTypeDefinition","src":"2522:22:179","nodes":[],"canonicalName":"Clock","name":"Clock","nameLocation":"2527:5:179","underlyingType":{"id":93049,"name":"uint128","nodeType":"ElementaryTypeName","src":"2536:7:179","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"id":93052,"nodeType":"UserDefinedValueTypeDefinition","src":"2908:25:179","nodes":[],"canonicalName":"Position","name":"Position","nameLocation":"2913:8:179","underlyingType":{"id":93051,"name":"uint128","nodeType":"ElementaryTypeName","src":"2925:7:179","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}},{"id":93054,"nodeType":"UserDefinedValueTypeDefinition","src":"3002:24:179","nodes":[],"canonicalName":"GameType","name":"GameType","nameLocation":"3007:8:179","underlyingType":{"id":93053,"name":"uint32","nodeType":"ElementaryTypeName","src":"3019:6:179","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}},{"id":93056,"nodeType":"UserDefinedValueTypeDefinition","src":"3094:23:179","nodes":[],"canonicalName":"VMStatus","name":"VMStatus","nameLocation":"3099:8:179","underlyingType":{"id":93055,"name":"uint8","nodeType":"ElementaryTypeName","src":"3111:5:179","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}},{"id":93060,"nodeType":"EnumDefinition","src":"3171:299:179","nodes":[],"canonicalName":"GameStatus","members":[{"id":93057,"name":"IN_PROGRESS","nameLocation":"3262:11:179","nodeType":"EnumValue","src":"3262:11:179"},{"id":93058,"name":"CHALLENGER_WINS","nameLocation":"3359:15:179","nodeType":"EnumValue","src":"3359:15:179"},{"id":93059,"name":"DEFENDER_WINS","nameLocation":"3455:13:179","nodeType":"EnumValue","src":"3455:13:179"}],"name":"GameStatus","nameLocation":"3176:10:179"},{"id":93078,"nodeType":"ContractDefinition","src":"3565:310:179","nodes":[{"id":93069,"nodeType":"VariableDeclaration","src":"3646:52:179","nodes":[],"constant":true,"documentation":{"id":93062,"nodeType":"StructuredDocumentation","src":"3589:52:179","text":"@dev A dispute game type the uses the cannon vm."},"mutability":"constant","name":"CANNON","nameLocation":"3673:6:179","scope":93078,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":93064,"nodeType":"UserDefinedTypeName","pathNode":{"id":93063,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"3646:8:179"},"referencedDeclaration":93054,"src":"3646:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"value":{"arguments":[{"hexValue":"30","id":93067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3696:1:179","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":93065,"name":"GameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93054,"src":"3682:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameType_$93054_$","typeString":"type(GameType)"}},"id":93066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"3682:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint32_$returns$_t_userDefinedValueType$_GameType_$93054_$","typeString":"function (uint32) pure returns (GameType)"}},"id":93068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3682:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"},{"id":93077,"nodeType":"VariableDeclaration","src":"3816:56:179","nodes":[],"constant":true,"documentation":{"id":93070,"nodeType":"StructuredDocumentation","src":"3705:106:179","text":"@notice A dispute game type that uses an alphabet vm.\n Not intended for production use."},"mutability":"constant","name":"ALPHABET","nameLocation":"3843:8:179","scope":93078,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":93072,"nodeType":"UserDefinedTypeName","pathNode":{"id":93071,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"3816:8:179"},"referencedDeclaration":93054,"src":"3816:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"value":{"arguments":[{"hexValue":"323535","id":93075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3868:3:179","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"expression":{"id":93073,"name":"GameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93054,"src":"3854:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameType_$93054_$","typeString":"type(GameType)"}},"id":93074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"3854:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint32_$returns$_t_userDefinedValueType$_GameType_$93054_$","typeString":"function (uint32) pure returns (GameType)"}},"id":93076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3854:18:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GameTypes","contractDependencies":[],"contractKind":"library","documentation":{"id":93061,"nodeType":"StructuredDocumentation","src":"3472:93:179","text":"@title GameTypes\n @notice A library that defines the IDs of games that can be played."},"fullyImplemented":true,"linearizedBaseContracts":[93078],"name":"GameTypes","nameLocation":"3573:9:179","scope":93135,"usedErrors":[]},{"id":93112,"nodeType":"ContractDefinition","src":"3969:503:179","nodes":[{"id":93087,"nodeType":"VariableDeclaration","src":"4069:51:179","nodes":[],"constant":true,"documentation":{"id":93080,"nodeType":"StructuredDocumentation","src":"3994:70:179","text":"@notice The VM has executed successfully and the outcome is valid."},"mutability":"constant","name":"VALID","nameLocation":"4096:5:179","scope":93112,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":93082,"nodeType":"UserDefinedTypeName","pathNode":{"id":93081,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4069:8:179"},"referencedDeclaration":93056,"src":"4069:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"30","id":93085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4118:1:179","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":93083,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93056,"src":"4104:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"type(VMStatus)"}},"id":93084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"4104:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":93086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4104:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"},{"id":93095,"nodeType":"VariableDeclaration","src":"4204:53:179","nodes":[],"constant":true,"documentation":{"id":93088,"nodeType":"StructuredDocumentation","src":"4127:72:179","text":"@notice The VM has executed successfully and the outcome is invalid."},"mutability":"constant","name":"INVALID","nameLocation":"4231:7:179","scope":93112,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":93090,"nodeType":"UserDefinedTypeName","pathNode":{"id":93089,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4204:8:179"},"referencedDeclaration":93056,"src":"4204:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"31","id":93093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4255:1:179","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":93091,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93056,"src":"4241:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"type(VMStatus)"}},"id":93092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"4241:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":93094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4241:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"},{"id":93103,"nodeType":"VariableDeclaration","src":"4300:51:179","nodes":[],"constant":true,"documentation":{"id":93096,"nodeType":"StructuredDocumentation","src":"4264:31:179","text":"@notice The VM has paniced."},"mutability":"constant","name":"PANIC","nameLocation":"4327:5:179","scope":93112,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":93098,"nodeType":"UserDefinedTypeName","pathNode":{"id":93097,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4300:8:179"},"referencedDeclaration":93056,"src":"4300:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"32","id":93101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4349:1:179","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":93099,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93056,"src":"4335:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"type(VMStatus)"}},"id":93100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"4335:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":93102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4335:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"},{"id":93111,"nodeType":"VariableDeclaration","src":"4413:56:179","nodes":[],"constant":true,"documentation":{"id":93104,"nodeType":"StructuredDocumentation","src":"4358:50:179","text":"@notice The VM execution is still in progress."},"mutability":"constant","name":"UNFINISHED","nameLocation":"4440:10:179","scope":93112,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":93106,"nodeType":"UserDefinedTypeName","pathNode":{"id":93105,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4413:8:179"},"referencedDeclaration":93056,"src":"4413:8:179","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"value":{"arguments":[{"hexValue":"33","id":93109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4467:1:179","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"expression":{"id":93107,"name":"VMStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93056,"src":"4453:8:179","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"type(VMStatus)"}},"id":93108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"4453:13:179","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint8_$returns$_t_userDefinedValueType$_VMStatus_$93056_$","typeString":"function (uint8) pure returns (VMStatus)"}},"id":93110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4453:16:179","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"VMStatuses","contractDependencies":[],"contractKind":"library","documentation":{"id":93079,"nodeType":"StructuredDocumentation","src":"3877:92:179","text":"@title VMStatuses\n @notice Named type aliases for the various valid VM status bytes."},"fullyImplemented":true,"linearizedBaseContracts":[93112],"name":"VMStatuses","nameLocation":"3977:10:179","scope":93135,"usedErrors":[]},{"id":93134,"nodeType":"ContractDefinition","src":"4577:600:179","nodes":[{"id":93117,"nodeType":"VariableDeclaration","src":"4661:45:179","nodes":[],"constant":true,"documentation":{"id":93114,"nodeType":"StructuredDocumentation","src":"4608:48:179","text":"@notice The identifier for the L1 head hash."},"mutability":"constant","name":"L1_HEAD_HASH","nameLocation":"4687:12:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93115,"name":"uint256","nodeType":"ElementaryTypeName","src":"4661:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783031","id":93116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4702:4:179","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"id":93121,"nodeType":"VariableDeclaration","src":"4774:53:179","nodes":[],"constant":true,"documentation":{"id":93118,"nodeType":"StructuredDocumentation","src":"4713:56:179","text":"@notice The identifier for the starting output root."},"mutability":"constant","name":"STARTING_OUTPUT_ROOT","nameLocation":"4800:20:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93119,"name":"uint256","nodeType":"ElementaryTypeName","src":"4774:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783032","id":93120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4823:4:179","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"visibility":"internal"},{"id":93125,"nodeType":"VariableDeclaration","src":"4895:53:179","nodes":[],"constant":true,"documentation":{"id":93122,"nodeType":"StructuredDocumentation","src":"4834:56:179","text":"@notice The identifier for the disputed output root."},"mutability":"constant","name":"DISPUTED_OUTPUT_ROOT","nameLocation":"4921:20:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93123,"name":"uint256","nodeType":"ElementaryTypeName","src":"4895:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783033","id":93124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4944:4:179","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"0x03"},"visibility":"internal"},{"id":93129,"nodeType":"VariableDeclaration","src":"5020:57:179","nodes":[],"constant":true,"documentation":{"id":93126,"nodeType":"StructuredDocumentation","src":"4955:60:179","text":"@notice The identifier for the starting L2 block number."},"mutability":"constant","name":"STARTING_L2_BLOCK_NUMBER","nameLocation":"5046:24:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93127,"name":"uint256","nodeType":"ElementaryTypeName","src":"5020:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783034","id":93128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5073:4:179","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x04"},"visibility":"internal"},{"id":93133,"nodeType":"VariableDeclaration","src":"5133:41:179","nodes":[],"constant":true,"documentation":{"id":93130,"nodeType":"StructuredDocumentation","src":"5084:44:179","text":"@notice The identifier for the chain ID."},"mutability":"constant","name":"CHAIN_ID","nameLocation":"5159:8:179","scope":93134,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93131,"name":"uint256","nodeType":"ElementaryTypeName","src":"5133:7:179","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783035","id":93132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5170:4:179","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"0x05"},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LocalPreimageKey","contractDependencies":[],"contractKind":"library","documentation":{"id":93113,"nodeType":"StructuredDocumentation","src":"4474:103:179","text":"@title LocalPreimageKey\n @notice Named type aliases for local `PreimageOracle` key identifiers."},"fullyImplemented":true,"linearizedBaseContracts":[93134],"name":"LocalPreimageKey","nameLocation":"4585:16:179","scope":93135,"usedErrors":[]}],"license":"MIT"},"id":179}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4400:503:190:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;4400:503:190;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4400:503:190:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"VMStatuses\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Named type aliases for the various valid VM status bytes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/DisputeTypes.sol\":\"VMStatuses\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/DisputeTypes.sol":"VMStatuses"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Named type aliases for the various valid VM status bytes."},"devdoc":{"version":1,"kind":"dev","title":"VMStatuses"},"id":190}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":\"EIP712\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":"EIP712"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol","id":52560,"exportedSymbols":{"ECDSA":[52322],"EIP712":[52559],"Strings":[51934]},"nodeType":"SourceUnit","src":"104:4403:63","nodes":[{"id":52407,"nodeType":"PragmaDirective","src":"104:23:63","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52408,"nodeType":"ImportDirective","src":"129:21:63","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","nameLocation":"-1:-1:-1","scope":52560,"sourceUnit":52323,"symbolAliases":[],"unitAlias":""},{"id":52559,"nodeType":"ContractDefinition","src":"1295:3211:63","nodes":[{"id":52411,"nodeType":"VariableDeclaration","src":"1563:50:63","nodes":[],"constant":false,"mutability":"immutable","name":"_CACHED_DOMAIN_SEPARATOR","nameLocation":"1589:24:63","scope":52559,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1563:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":52413,"nodeType":"VariableDeclaration","src":"1619:42:63","nodes":[],"constant":false,"mutability":"immutable","name":"_CACHED_CHAIN_ID","nameLocation":"1645:16:63","scope":52559,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52412,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":52415,"nodeType":"VariableDeclaration","src":"1667:38:63","nodes":[],"constant":false,"mutability":"immutable","name":"_CACHED_THIS","nameLocation":"1693:12:63","scope":52559,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52414,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":52417,"nodeType":"VariableDeclaration","src":"1712:38:63","nodes":[],"constant":false,"mutability":"immutable","name":"_HASHED_NAME","nameLocation":"1738:12:63","scope":52559,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1712:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":52419,"nodeType":"VariableDeclaration","src":"1756:41:63","nodes":[],"constant":false,"mutability":"immutable","name":"_HASHED_VERSION","nameLocation":"1782:15:63","scope":52559,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1756:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":52421,"nodeType":"VariableDeclaration","src":"1803:36:63","nodes":[],"constant":false,"mutability":"immutable","name":"_TYPE_HASH","nameLocation":"1829:10:63","scope":52559,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52420,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1803:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":52486,"nodeType":"FunctionDefinition","src":"2455:602:63","nodes":[],"body":{"id":52485,"nodeType":"Block","src":"2510:547:63","nodes":[],"statements":[{"assignments":[52430],"declarations":[{"constant":false,"id":52430,"mutability":"mutable","name":"hashedName","nameLocation":"2528:10:63","nodeType":"VariableDeclaration","scope":52485,"src":"2520:18:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2520:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":52437,"initialValue":{"arguments":[{"arguments":[{"id":52434,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52424,"src":"2557:4:63","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":52433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2551:5:63","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":52432,"name":"bytes","nodeType":"ElementaryTypeName","src":"2551:5:63","typeDescriptions":{}}},"id":52435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2551:11:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":52431,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2541:9:63","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":52436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2541:22:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2520:43:63"},{"assignments":[52439],"declarations":[{"constant":false,"id":52439,"mutability":"mutable","name":"hashedVersion","nameLocation":"2581:13:63","nodeType":"VariableDeclaration","scope":52485,"src":"2573:21:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2573:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":52446,"initialValue":{"arguments":[{"arguments":[{"id":52443,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52426,"src":"2613:7:63","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":52442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2607:5:63","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":52441,"name":"bytes","nodeType":"ElementaryTypeName","src":"2607:5:63","typeDescriptions":{}}},"id":52444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2607:14:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":52440,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2597:9:63","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":52445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2597:25:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2573:49:63"},{"assignments":[52448],"declarations":[{"constant":false,"id":52448,"mutability":"mutable","name":"typeHash","nameLocation":"2640:8:63","nodeType":"VariableDeclaration","scope":52485,"src":"2632:16:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2632:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":52452,"initialValue":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":52450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2674:84:63","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":52449,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2651:9:63","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":52451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2651:117:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2632:136:63"},{"expression":{"id":52455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52453,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52417,"src":"2778:12:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52454,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52430,"src":"2793:10:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2778:25:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":52456,"nodeType":"ExpressionStatement","src":"2778:25:63"},{"expression":{"id":52459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52457,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52419,"src":"2813:15:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52458,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52439,"src":"2831:13:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2813:31:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":52460,"nodeType":"ExpressionStatement","src":"2813:31:63"},{"expression":{"id":52464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52461,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52413,"src":"2854:16:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":52462,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2873:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":52463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"2873:13:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2854:32:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52465,"nodeType":"ExpressionStatement","src":"2854:32:63"},{"expression":{"id":52472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52466,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52411,"src":"2896:24:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52468,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52448,"src":"2945:8:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":52469,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52430,"src":"2955:10:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":52470,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52439,"src":"2967:13:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":52467,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52542,"src":"2923:21:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":52471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2923:58:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2896:85:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":52473,"nodeType":"ExpressionStatement","src":"2896:85:63"},{"expression":{"id":52479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52474,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52415,"src":"2991:12:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52477,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3014:4:63","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$52559","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$52559","typeString":"contract EIP712"}],"id":52476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3006:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52475,"name":"address","nodeType":"ElementaryTypeName","src":"3006:7:63","typeDescriptions":{}}},"id":52478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3006:13:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2991:28:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52480,"nodeType":"ExpressionStatement","src":"2991:28:63"},{"expression":{"id":52483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52481,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52421,"src":"3029:10:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52482,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52448,"src":"3042:8:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3029:21:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":52484,"nodeType":"ExpressionStatement","src":"3029:21:63"}]},"documentation":{"id":52422,"nodeType":"StructuredDocumentation","src":"1891:559:63","text":" @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52424,"mutability":"mutable","name":"name","nameLocation":"2481:4:63","nodeType":"VariableDeclaration","scope":52486,"src":"2467:18:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52423,"name":"string","nodeType":"ElementaryTypeName","src":"2467:6:63","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":52426,"mutability":"mutable","name":"version","nameLocation":"2501:7:63","nodeType":"VariableDeclaration","scope":52486,"src":"2487:21:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52425,"name":"string","nodeType":"ElementaryTypeName","src":"2487:6:63","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2466:43:63"},"returnParameters":{"id":52428,"nodeType":"ParameterList","parameters":[],"src":"2510:0:63"},"scope":52559,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":52515,"nodeType":"FunctionDefinition","src":"3143:308:63","nodes":[],"body":{"id":52514,"nodeType":"Block","src":"3205:246:63","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":52494,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3227:4:63","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$52559","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$52559","typeString":"contract EIP712"}],"id":52493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3219:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52492,"name":"address","nodeType":"ElementaryTypeName","src":"3219:7:63","typeDescriptions":{}}},"id":52495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3219:13:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":52496,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52415,"src":"3236:12:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3219:29:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52498,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3252:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":52499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3252:13:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":52500,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52413,"src":"3269:16:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3252:33:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3219:66:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":52512,"nodeType":"Block","src":"3349:96:63","statements":[{"expression":{"arguments":[{"id":52507,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52421,"src":"3392:10:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":52508,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52417,"src":"3404:12:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":52509,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52419,"src":"3418:15:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":52506,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52542,"src":"3370:21:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":52510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3370:64:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":52491,"id":52511,"nodeType":"Return","src":"3363:71:63"}]},"id":52513,"nodeType":"IfStatement","src":"3215:230:63","trueBody":{"id":52505,"nodeType":"Block","src":"3287:56:63","statements":[{"expression":{"id":52503,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52411,"src":"3308:24:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":52491,"id":52504,"nodeType":"Return","src":"3301:31:63"}]}}]},"documentation":{"id":52487,"nodeType":"StructuredDocumentation","src":"3063:75:63","text":" @dev Returns the domain separator for the current chain."},"implemented":true,"kind":"function","modifiers":[],"name":"_domainSeparatorV4","nameLocation":"3152:18:63","parameters":{"id":52488,"nodeType":"ParameterList","parameters":[],"src":"3170:2:63"},"returnParameters":{"id":52491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52490,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52515,"src":"3196:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52489,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3196:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3195:9:63"},"scope":52559,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":52542,"nodeType":"FunctionDefinition","src":"3457:257:63","nodes":[],"body":{"id":52541,"nodeType":"Block","src":"3606:108:63","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":52529,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"3644:8:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":52530,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52519,"src":"3654:8:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":52531,"name":"versionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52521,"src":"3664:11:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":52532,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3677:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":52533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3677:13:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":52536,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3700:4:63","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$52559","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$52559","typeString":"contract EIP712"}],"id":52535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3692:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52534,"name":"address","nodeType":"ElementaryTypeName","src":"3692:7:63","typeDescriptions":{}}},"id":52537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3692:13:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52527,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3633:3:63","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":52528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3633:10:63","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":52538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3633:73:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":52526,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3623:9:63","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":52539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3623:84:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":52525,"id":52540,"nodeType":"Return","src":"3616:91:63"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_buildDomainSeparator","nameLocation":"3466:21:63","parameters":{"id":52522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52517,"mutability":"mutable","name":"typeHash","nameLocation":"3505:8:63","nodeType":"VariableDeclaration","scope":52542,"src":"3497:16:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52516,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3497:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":52519,"mutability":"mutable","name":"nameHash","nameLocation":"3531:8:63","nodeType":"VariableDeclaration","scope":52542,"src":"3523:16:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52518,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3523:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":52521,"mutability":"mutable","name":"versionHash","nameLocation":"3557:11:63","nodeType":"VariableDeclaration","scope":52542,"src":"3549:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3549:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3487:87:63"},"returnParameters":{"id":52525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52542,"src":"3597:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3597:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3596:9:63"},"scope":52559,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":52558,"nodeType":"FunctionDefinition","src":"4339:165:63","nodes":[],"body":{"id":52557,"nodeType":"Block","src":"4425:79:63","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":52552,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52515,"src":"4464:18:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":52553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4464:20:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":52554,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52545,"src":"4486:10:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":52550,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52322,"src":"4442:5:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$52322_$","typeString":"type(library ECDSA)"}},"id":52551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":52321,"src":"4442:21:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":52555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4442:55:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":52549,"id":52556,"nodeType":"Return","src":"4435:62:63"}]},"documentation":{"id":52543,"nodeType":"StructuredDocumentation","src":"3720:614:63","text":" @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n keccak256(\"Mail(address to,string contents)\"),\n mailTo,\n keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```"},"implemented":true,"kind":"function","modifiers":[],"name":"_hashTypedDataV4","nameLocation":"4348:16:63","parameters":{"id":52546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52545,"mutability":"mutable","name":"structHash","nameLocation":"4373:10:63","nodeType":"VariableDeclaration","scope":52558,"src":"4365:18:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4365:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4364:20:63"},"returnParameters":{"id":52549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52558,"src":"4416:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4416:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4415:9:63"},"scope":52559,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"EIP712","contractDependencies":[],"contractKind":"contract","documentation":{"id":52409,"nodeType":"StructuredDocumentation","src":"152:1142:63","text":" @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n they need in their contracts using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n _Available since v3.4._"},"fullyImplemented":true,"linearizedBaseContracts":[52559],"name":"EIP712","nameLocation":"1313:6:63","scope":52560,"usedErrors":[]}],"license":"MIT"},"id":63}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":\"EIP712\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":"EIP712"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}}},"id":63}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":\"EIP712\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":"EIP712"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol","id":1160,"exportedSymbols":{"ECDSA":[922],"EIP712":[1159],"Strings":[534]},"nodeType":"SourceUnit","src":"104:4403:5","nodes":[{"id":1007,"nodeType":"PragmaDirective","src":"104:23:5","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":1008,"nodeType":"ImportDirective","src":"129:21:5","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","nameLocation":"-1:-1:-1","scope":1160,"sourceUnit":923,"symbolAliases":[],"unitAlias":""},{"id":1159,"nodeType":"ContractDefinition","src":"1295:3211:5","nodes":[{"id":1011,"nodeType":"VariableDeclaration","src":"1563:50:5","nodes":[],"constant":false,"mutability":"immutable","name":"_CACHED_DOMAIN_SEPARATOR","nameLocation":"1589:24:5","scope":1159,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1010,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1563:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":1013,"nodeType":"VariableDeclaration","src":"1619:42:5","nodes":[],"constant":false,"mutability":"immutable","name":"_CACHED_CHAIN_ID","nameLocation":"1645:16:5","scope":1159,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1012,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":1015,"nodeType":"VariableDeclaration","src":"1667:38:5","nodes":[],"constant":false,"mutability":"immutable","name":"_CACHED_THIS","nameLocation":"1693:12:5","scope":1159,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1014,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":1017,"nodeType":"VariableDeclaration","src":"1712:38:5","nodes":[],"constant":false,"mutability":"immutable","name":"_HASHED_NAME","nameLocation":"1738:12:5","scope":1159,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1016,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1712:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":1019,"nodeType":"VariableDeclaration","src":"1756:41:5","nodes":[],"constant":false,"mutability":"immutable","name":"_HASHED_VERSION","nameLocation":"1782:15:5","scope":1159,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1756:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":1021,"nodeType":"VariableDeclaration","src":"1803:36:5","nodes":[],"constant":false,"mutability":"immutable","name":"_TYPE_HASH","nameLocation":"1829:10:5","scope":1159,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1020,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1803:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":1086,"nodeType":"FunctionDefinition","src":"2455:602:5","nodes":[],"body":{"id":1085,"nodeType":"Block","src":"2510:547:5","nodes":[],"statements":[{"assignments":[1030],"declarations":[{"constant":false,"id":1030,"mutability":"mutable","name":"hashedName","nameLocation":"2528:10:5","nodeType":"VariableDeclaration","scope":1085,"src":"2520:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2520:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1037,"initialValue":{"arguments":[{"arguments":[{"id":1034,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1024,"src":"2557:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2551:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1032,"name":"bytes","nodeType":"ElementaryTypeName","src":"2551:5:5","typeDescriptions":{}}},"id":1035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2551:11:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1031,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2541:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2541:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2520:43:5"},{"assignments":[1039],"declarations":[{"constant":false,"id":1039,"mutability":"mutable","name":"hashedVersion","nameLocation":"2581:13:5","nodeType":"VariableDeclaration","scope":1085,"src":"2573:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1038,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2573:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1046,"initialValue":{"arguments":[{"arguments":[{"id":1043,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1026,"src":"2613:7:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2607:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1041,"name":"bytes","nodeType":"ElementaryTypeName","src":"2607:5:5","typeDescriptions":{}}},"id":1044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2607:14:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1040,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2597:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2597:25:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2573:49:5"},{"assignments":[1048],"declarations":[{"constant":false,"id":1048,"mutability":"mutable","name":"typeHash","nameLocation":"2640:8:5","nodeType":"VariableDeclaration","scope":1085,"src":"2632:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2632:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1052,"initialValue":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":1050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2674:84:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":1049,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2651:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2651:117:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2632:136:5"},{"expression":{"id":1055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1053,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1017,"src":"2778:12:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1054,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1030,"src":"2793:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2778:25:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1056,"nodeType":"ExpressionStatement","src":"2778:25:5"},{"expression":{"id":1059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1057,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1019,"src":"2813:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1058,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1039,"src":"2831:13:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2813:31:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1060,"nodeType":"ExpressionStatement","src":"2813:31:5"},{"expression":{"id":1064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1061,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"2854:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1062,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2873:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2879:7:5","memberName":"chainid","nodeType":"MemberAccess","src":"2873:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2854:32:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1065,"nodeType":"ExpressionStatement","src":"2854:32:5"},{"expression":{"id":1072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1066,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1011,"src":"2896:24:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1068,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1048,"src":"2945:8:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1069,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1030,"src":"2955:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1070,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1039,"src":"2967:13:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1067,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1142,"src":"2923:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":1071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2923:58:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2896:85:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1073,"nodeType":"ExpressionStatement","src":"2896:85:5"},{"expression":{"id":1079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1074,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"2991:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1077,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3014:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$1159","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$1159","typeString":"contract EIP712"}],"id":1076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3006:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1075,"name":"address","nodeType":"ElementaryTypeName","src":"3006:7:5","typeDescriptions":{}}},"id":1078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3006:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2991:28:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1080,"nodeType":"ExpressionStatement","src":"2991:28:5"},{"expression":{"id":1083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1081,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"3029:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1082,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1048,"src":"3042:8:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3029:21:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1084,"nodeType":"ExpressionStatement","src":"3029:21:5"}]},"documentation":{"id":1022,"nodeType":"StructuredDocumentation","src":"1891:559:5","text":" @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":1027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1024,"mutability":"mutable","name":"name","nameLocation":"2481:4:5","nodeType":"VariableDeclaration","scope":1086,"src":"2467:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1023,"name":"string","nodeType":"ElementaryTypeName","src":"2467:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1026,"mutability":"mutable","name":"version","nameLocation":"2501:7:5","nodeType":"VariableDeclaration","scope":1086,"src":"2487:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1025,"name":"string","nodeType":"ElementaryTypeName","src":"2487:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2466:43:5"},"returnParameters":{"id":1028,"nodeType":"ParameterList","parameters":[],"src":"2510:0:5"},"scope":1159,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1115,"nodeType":"FunctionDefinition","src":"3143:308:5","nodes":[],"body":{"id":1114,"nodeType":"Block","src":"3205:246:5","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1094,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3227:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$1159","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$1159","typeString":"contract EIP712"}],"id":1093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3219:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1092,"name":"address","nodeType":"ElementaryTypeName","src":"3219:7:5","typeDescriptions":{}}},"id":1095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3219:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1096,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"3236:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3219:29:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1098,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3252:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3258:7:5","memberName":"chainid","nodeType":"MemberAccess","src":"3252:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1100,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"3269:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3252:33:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3219:66:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1112,"nodeType":"Block","src":"3349:96:5","statements":[{"expression":{"arguments":[{"id":1107,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"3392:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1108,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1017,"src":"3404:12:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1109,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1019,"src":"3418:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1106,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1142,"src":"3370:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":1110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3370:64:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1091,"id":1111,"nodeType":"Return","src":"3363:71:5"}]},"id":1113,"nodeType":"IfStatement","src":"3215:230:5","trueBody":{"id":1105,"nodeType":"Block","src":"3287:56:5","statements":[{"expression":{"id":1103,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1011,"src":"3308:24:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1091,"id":1104,"nodeType":"Return","src":"3301:31:5"}]}}]},"documentation":{"id":1087,"nodeType":"StructuredDocumentation","src":"3063:75:5","text":" @dev Returns the domain separator for the current chain."},"implemented":true,"kind":"function","modifiers":[],"name":"_domainSeparatorV4","nameLocation":"3152:18:5","parameters":{"id":1088,"nodeType":"ParameterList","parameters":[],"src":"3170:2:5"},"returnParameters":{"id":1091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1115,"src":"3196:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1089,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3196:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3195:9:5"},"scope":1159,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1142,"nodeType":"FunctionDefinition","src":"3457:257:5","nodes":[],"body":{"id":1141,"nodeType":"Block","src":"3606:108:5","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":1129,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1117,"src":"3644:8:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1130,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1119,"src":"3654:8:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1131,"name":"versionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1121,"src":"3664:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":1132,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3677:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:5","memberName":"chainid","nodeType":"MemberAccess","src":"3677:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1136,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3700:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$1159","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$1159","typeString":"contract EIP712"}],"id":1135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3692:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1134,"name":"address","nodeType":"ElementaryTypeName","src":"3692:7:5","typeDescriptions":{}}},"id":1137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3692:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1127,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3633:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3637:6:5","memberName":"encode","nodeType":"MemberAccess","src":"3633:10:5","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3633:73:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1126,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3623:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3623:84:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1125,"id":1140,"nodeType":"Return","src":"3616:91:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_buildDomainSeparator","nameLocation":"3466:21:5","parameters":{"id":1122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1117,"mutability":"mutable","name":"typeHash","nameLocation":"3505:8:5","nodeType":"VariableDeclaration","scope":1142,"src":"3497:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3497:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1119,"mutability":"mutable","name":"nameHash","nameLocation":"3531:8:5","nodeType":"VariableDeclaration","scope":1142,"src":"3523:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1118,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3523:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1121,"mutability":"mutable","name":"versionHash","nameLocation":"3557:11:5","nodeType":"VariableDeclaration","scope":1142,"src":"3549:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3549:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3487:87:5"},"returnParameters":{"id":1125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1142,"src":"3597:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1123,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3597:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3596:9:5"},"scope":1159,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":1158,"nodeType":"FunctionDefinition","src":"4339:165:5","nodes":[],"body":{"id":1157,"nodeType":"Block","src":"4425:79:5","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1152,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1115,"src":"4464:18:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":1153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4464:20:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1154,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"4486:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":1150,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"4442:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$922_$","typeString":"type(library ECDSA)"}},"id":1151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4448:15:5","memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":921,"src":"4442:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":1155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4442:55:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1149,"id":1156,"nodeType":"Return","src":"4435:62:5"}]},"documentation":{"id":1143,"nodeType":"StructuredDocumentation","src":"3720:614:5","text":" @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n keccak256(\"Mail(address to,string contents)\"),\n mailTo,\n keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```"},"implemented":true,"kind":"function","modifiers":[],"name":"_hashTypedDataV4","nameLocation":"4348:16:5","parameters":{"id":1146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1145,"mutability":"mutable","name":"structHash","nameLocation":"4373:10:5","nodeType":"VariableDeclaration","scope":1158,"src":"4365:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4365:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4364:20:5"},"returnParameters":{"id":1149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1148,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1158,"src":"4416:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4416:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4415:9:5"},"scope":1159,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"EIP712","contractDependencies":[],"contractKind":"contract","documentation":{"id":1009,"nodeType":"StructuredDocumentation","src":"152:1142:5","text":" @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n they need in their contracts using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n _Available since v3.4._"},"fullyImplemented":true,"linearizedBaseContracts":[1159],"name":"EIP712","nameLocation":"1313:6:5","scope":1160,"usedErrors":[]}],"license":"MIT"},"id":5}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":\"EIP712\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":"EIP712"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._","methods":{"constructor":{"details":"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade]."}}},"id":5}

@@ -1,1 +0,1 @@

{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:storage-size\":\"52\",\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol\":\"EIP712Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol\":{\"keccak256\":\"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb\",\"dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol\":{\"keccak256\":\"0xaf5a96100f421d61693605349511e43221d3c2e47d4b3efa87af2b936e2567fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://371fd95bad4416766089d3e621dee1fd86fece2b266ad3f9443fefe567e24e94\",\"dweb:/ipfs/QmNciwwtGev3Q8uVhnoE5PQUSCDpMp6KtVjiDgnGdqLmWX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol":"EIP712Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol":{"keccak256":"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc","urls":["bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb","dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol":{"keccak256":"0xaf5a96100f421d61693605349511e43221d3c2e47d4b3efa87af2b936e2567fc","urls":["bzz-raw://371fd95bad4416766089d3e621dee1fd86fece2b266ad3f9443fefe567e24e94","dweb:/ipfs/QmNciwwtGev3Q8uVhnoE5PQUSCDpMp6KtVjiDgnGdqLmWX"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":47468,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_HASHED_NAME","offset":0,"slot":"1","type":"t_bytes32"},{"astId":47470,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_HASHED_VERSION","offset":0,"slot":"2","type":"t_bytes32"},{"astId":47608,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"__gap","offset":0,"slot":"3","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._"},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol","id":47610,"exportedSymbols":{"AddressUpgradeable":[46803],"ECDSAUpgradeable":[47459],"EIP712Upgradeable":[47609],"Initializable":[45457],"StringsUpgradeable":[47071]},"nodeType":"SourceUnit","src":"104:4943:35","nodes":[{"id":47461,"nodeType":"PragmaDirective","src":"104:23:35","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47462,"nodeType":"ImportDirective","src":"129:32:35","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol","file":"./ECDSAUpgradeable.sol","nameLocation":"-1:-1:-1","scope":47610,"sourceUnit":47460,"symbolAliases":[],"unitAlias":""},{"id":47463,"nodeType":"ImportDirective","src":"162:45:35","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":47610,"sourceUnit":45458,"symbolAliases":[],"unitAlias":""},{"id":47609,"nodeType":"ContractDefinition","src":"1382:3664:35","nodes":[{"id":47468,"nodeType":"VariableDeclaration","src":"1486:28:35","nodes":[],"constant":false,"mutability":"mutable","name":"_HASHED_NAME","nameLocation":"1502:12:35","scope":47609,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47467,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1486:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":47470,"nodeType":"VariableDeclaration","src":"1520:31:35","nodes":[],"constant":false,"mutability":"mutable","name":"_HASHED_VERSION","nameLocation":"1536:15:35","scope":47609,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1520:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":47475,"nodeType":"VariableDeclaration","src":"1557:133:35","nodes":[],"constant":true,"mutability":"constant","name":"_TYPE_HASH","nameLocation":"1582:10:35","scope":47609,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47471,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1557:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":47473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1605:84:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":47472,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1595:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1595:95:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":47491,"nodeType":"FunctionDefinition","src":"2306:147:35","nodes":[],"body":{"id":47490,"nodeType":"Block","src":"2398:55:35","nodes":[],"statements":[{"expression":{"arguments":[{"id":47486,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47478,"src":"2432:4:35","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":47487,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47480,"src":"2438:7:35","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":47485,"name":"__EIP712_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47527,"src":"2408:23:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":47488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2408:38:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47489,"nodeType":"ExpressionStatement","src":"2408:38:35"}]},"documentation":{"id":47476,"nodeType":"StructuredDocumentation","src":"1742:559:35","text":" @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]."},"implemented":true,"kind":"function","modifiers":[{"id":47483,"kind":"modifierInvocation","modifierName":{"id":47482,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":45420,"src":"2381:16:35"},"nodeType":"ModifierInvocation","src":"2381:16:35"}],"name":"__EIP712_init","nameLocation":"2315:13:35","parameters":{"id":47481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47478,"mutability":"mutable","name":"name","nameLocation":"2343:4:35","nodeType":"VariableDeclaration","scope":47491,"src":"2329:18:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47477,"name":"string","nodeType":"ElementaryTypeName","src":"2329:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47480,"mutability":"mutable","name":"version","nameLocation":"2363:7:35","nodeType":"VariableDeclaration","scope":47491,"src":"2349:21:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47479,"name":"string","nodeType":"ElementaryTypeName","src":"2349:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2328:43:35"},"returnParameters":{"id":47484,"nodeType":"ParameterList","parameters":[],"src":"2398:0:35"},"scope":47609,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47527,"nodeType":"FunctionDefinition","src":"2459:297:35","nodes":[],"body":{"id":47526,"nodeType":"Block","src":"2561:195:35","nodes":[],"statements":[{"assignments":[47501],"declarations":[{"constant":false,"id":47501,"mutability":"mutable","name":"hashedName","nameLocation":"2579:10:35","nodeType":"VariableDeclaration","scope":47526,"src":"2571:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47500,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2571:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":47508,"initialValue":{"arguments":[{"arguments":[{"id":47505,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47493,"src":"2608:4:35","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":47504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2602:5:35","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":47503,"name":"bytes","nodeType":"ElementaryTypeName","src":"2602:5:35","typeDescriptions":{}}},"id":47506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2602:11:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47502,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2592:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2592:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2571:43:35"},{"assignments":[47510],"declarations":[{"constant":false,"id":47510,"mutability":"mutable","name":"hashedVersion","nameLocation":"2632:13:35","nodeType":"VariableDeclaration","scope":47526,"src":"2624:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47509,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2624:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":47517,"initialValue":{"arguments":[{"arguments":[{"id":47514,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47495,"src":"2664:7:35","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":47513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2658:5:35","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":47512,"name":"bytes","nodeType":"ElementaryTypeName","src":"2658:5:35","typeDescriptions":{}}},"id":47515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2658:14:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47511,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2648:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2648:25:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2624:49:35"},{"expression":{"id":47520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47518,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47468,"src":"2683:12:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47519,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47501,"src":"2698:10:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2683:25:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47521,"nodeType":"ExpressionStatement","src":"2683:25:35"},{"expression":{"id":47524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47522,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47470,"src":"2718:15:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47523,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47510,"src":"2736:13:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2718:31:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":47525,"nodeType":"ExpressionStatement","src":"2718:31:35"}]},"implemented":true,"kind":"function","modifiers":[{"id":47498,"kind":"modifierInvocation","modifierName":{"id":47497,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":45420,"src":"2544:16:35"},"nodeType":"ModifierInvocation","src":"2544:16:35"}],"name":"__EIP712_init_unchained","nameLocation":"2468:23:35","parameters":{"id":47496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47493,"mutability":"mutable","name":"name","nameLocation":"2506:4:35","nodeType":"VariableDeclaration","scope":47527,"src":"2492:18:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47492,"name":"string","nodeType":"ElementaryTypeName","src":"2492:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47495,"mutability":"mutable","name":"version","nameLocation":"2526:7:35","nodeType":"VariableDeclaration","scope":47527,"src":"2512:21:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47494,"name":"string","nodeType":"ElementaryTypeName","src":"2512:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2491:43:35"},"returnParameters":{"id":47499,"nodeType":"ParameterList","parameters":[],"src":"2561:0:35"},"scope":47609,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47542,"nodeType":"FunctionDefinition","src":"2842:160:35","nodes":[],"body":{"id":47541,"nodeType":"Block","src":"2904:98:35","nodes":[],"statements":[{"expression":{"arguments":[{"id":47534,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47475,"src":"2943:10:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":47535,"name":"_EIP712NameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47594,"src":"2955:15:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":47536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2955:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":47537,"name":"_EIP712VersionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47603,"src":"2974:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":47538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2974:20:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":47533,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47569,"src":"2921:21:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":47539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2921:74:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47532,"id":47540,"nodeType":"Return","src":"2914:81:35"}]},"documentation":{"id":47528,"nodeType":"StructuredDocumentation","src":"2762:75:35","text":" @dev Returns the domain separator for the current chain."},"implemented":true,"kind":"function","modifiers":[],"name":"_domainSeparatorV4","nameLocation":"2851:18:35","parameters":{"id":47529,"nodeType":"ParameterList","parameters":[],"src":"2869:2:35"},"returnParameters":{"id":47532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47542,"src":"2895:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2895:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2894:9:35"},"scope":47609,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":47569,"nodeType":"FunctionDefinition","src":"3008:257:35","nodes":[],"body":{"id":47568,"nodeType":"Block","src":"3157:108:35","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":47556,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47544,"src":"3195:8:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47557,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47546,"src":"3205:8:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47558,"name":"versionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47548,"src":"3215:11:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":47559,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3228:5:35","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":47560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3228:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":47563,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3251:4:35","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712Upgradeable_$47609","typeString":"contract EIP712Upgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712Upgradeable_$47609","typeString":"contract EIP712Upgradeable"}],"id":47562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3243:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47561,"name":"address","nodeType":"ElementaryTypeName","src":"3243:7:35","typeDescriptions":{}}},"id":47564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3243:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47554,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3184:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3184:10:35","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3184:73:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47553,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3174:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3174:84:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47552,"id":47567,"nodeType":"Return","src":"3167:91:35"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_buildDomainSeparator","nameLocation":"3017:21:35","parameters":{"id":47549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47544,"mutability":"mutable","name":"typeHash","nameLocation":"3056:8:35","nodeType":"VariableDeclaration","scope":47569,"src":"3048:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3048:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47546,"mutability":"mutable","name":"nameHash","nameLocation":"3082:8:35","nodeType":"VariableDeclaration","scope":47569,"src":"3074:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47545,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3074:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47548,"mutability":"mutable","name":"versionHash","nameLocation":"3108:11:35","nodeType":"VariableDeclaration","scope":47569,"src":"3100:19:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3100:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3038:87:35"},"returnParameters":{"id":47552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47551,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47569,"src":"3148:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3148:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3147:9:35"},"scope":47609,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":47585,"nodeType":"FunctionDefinition","src":"3890:176:35","nodes":[],"body":{"id":47584,"nodeType":"Block","src":"3976:90:35","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":47579,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47542,"src":"4026:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":47580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4026:20:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":47581,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47572,"src":"4048:10:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":47577,"name":"ECDSAUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47459,"src":"3993:16:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSAUpgradeable_$47459_$","typeString":"type(library ECDSAUpgradeable)"}},"id":47578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":47458,"src":"3993:32:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":47582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3993:66:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47576,"id":47583,"nodeType":"Return","src":"3986:73:35"}]},"documentation":{"id":47570,"nodeType":"StructuredDocumentation","src":"3271:614:35","text":" @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n keccak256(\"Mail(address to,string contents)\"),\n mailTo,\n keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```"},"implemented":true,"kind":"function","modifiers":[],"name":"_hashTypedDataV4","nameLocation":"3899:16:35","parameters":{"id":47573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47572,"mutability":"mutable","name":"structHash","nameLocation":"3924:10:35","nodeType":"VariableDeclaration","scope":47585,"src":"3916:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47571,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3916:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3915:20:35"},"returnParameters":{"id":47576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47575,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47585,"src":"3967:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3967:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3966:9:35"},"scope":47609,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":47594,"nodeType":"FunctionDefinition","src":"4302:103:35","nodes":[],"body":{"id":47593,"nodeType":"Block","src":"4369:36:35","nodes":[],"statements":[{"expression":{"id":47591,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47468,"src":"4386:12:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47590,"id":47592,"nodeType":"Return","src":"4379:19:35"}]},"documentation":{"id":47586,"nodeType":"StructuredDocumentation","src":"4072:225:35","text":" @dev The hash of the name parameter for the EIP712 domain.\n NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n are a concern."},"implemented":true,"kind":"function","modifiers":[],"name":"_EIP712NameHash","nameLocation":"4311:15:35","parameters":{"id":47587,"nodeType":"ParameterList","parameters":[],"src":"4326:2:35"},"returnParameters":{"id":47590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47594,"src":"4360:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47588,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4360:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4359:9:35"},"scope":47609,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":47603,"nodeType":"FunctionDefinition","src":"4644:109:35","nodes":[],"body":{"id":47602,"nodeType":"Block","src":"4714:39:35","nodes":[],"statements":[{"expression":{"id":47600,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47470,"src":"4731:15:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47599,"id":47601,"nodeType":"Return","src":"4724:22:35"}]},"documentation":{"id":47595,"nodeType":"StructuredDocumentation","src":"4411:228:35","text":" @dev The hash of the version parameter for the EIP712 domain.\n NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n are a concern."},"implemented":true,"kind":"function","modifiers":[],"name":"_EIP712VersionHash","nameLocation":"4653:18:35","parameters":{"id":47596,"nodeType":"ParameterList","parameters":[],"src":"4671:2:35"},"returnParameters":{"id":47599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47603,"src":"4705:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4705:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4704:9:35"},"scope":47609,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":47608,"nodeType":"VariableDeclaration","src":"5018:25:35","nodes":[],"constant":false,"documentation":{"id":47604,"nodeType":"StructuredDocumentation","src":"4759:254:35","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"mutability":"mutable","name":"__gap","nameLocation":"5038:5:35","scope":47609,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":47605,"name":"uint256","nodeType":"ElementaryTypeName","src":"5018:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47607,"length":{"hexValue":"3530","id":47606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5026:2:35","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"5018:11:35","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"abstract":true,"baseContracts":[{"baseName":{"id":47465,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":45457,"src":"1421:13:35"},"id":47466,"nodeType":"InheritanceSpecifier","src":"1421:13:35"}],"canonicalName":"EIP712Upgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":47464,"nodeType":"StructuredDocumentation","src":"209:1172:35","text":" @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n they need in their contracts using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n _Available since v3.4._\n @custom:storage-size 52"},"fullyImplemented":true,"linearizedBaseContracts":[47609,45457],"name":"EIP712Upgradeable","nameLocation":"1400:17:35","scope":47610,"usedErrors":[]}],"license":"MIT"},"id":35}
{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:storage-size\":\"52\",\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol\":\"EIP712Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol\":{\"keccak256\":\"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb\",\"dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol\":{\"keccak256\":\"0xaf5a96100f421d61693605349511e43221d3c2e47d4b3efa87af2b936e2567fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://371fd95bad4416766089d3e621dee1fd86fece2b266ad3f9443fefe567e24e94\",\"dweb:/ipfs/QmNciwwtGev3Q8uVhnoE5PQUSCDpMp6KtVjiDgnGdqLmWX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol":"EIP712Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol":{"keccak256":"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc","urls":["bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb","dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol":{"keccak256":"0xaf5a96100f421d61693605349511e43221d3c2e47d4b3efa87af2b936e2567fc","urls":["bzz-raw://371fd95bad4416766089d3e621dee1fd86fece2b266ad3f9443fefe567e24e94","dweb:/ipfs/QmNciwwtGev3Q8uVhnoE5PQUSCDpMp6KtVjiDgnGdqLmWX"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":47468,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_HASHED_NAME","offset":0,"slot":"1","type":"t_bytes32"},{"astId":47470,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"_HASHED_VERSION","offset":0,"slot":"2","type":"t_bytes32"},{"astId":47608,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol:EIP712Upgradeable","label":"__gap","offset":0,"slot":"3","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._"},"id":35}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":"IERC20Permit"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","id":49640,"exportedSymbols":{"IERC20Permit":[49639]},"nodeType":"SourceUnit","src":"114:2138:49","nodes":[{"id":49605,"nodeType":"PragmaDirective","src":"114:23:49","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49639,"nodeType":"ContractDefinition","src":"620:1631:49","nodes":[{"id":49624,"nodeType":"FunctionDefinition","src":"1446:183:49","nodes":[],"documentation":{"id":49607,"nodeType":"StructuredDocumentation","src":"649:792:49","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."},"functionSelector":"d505accf","implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1455:6:49","parameters":{"id":49622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49609,"mutability":"mutable","name":"owner","nameLocation":"1479:5:49","nodeType":"VariableDeclaration","scope":49624,"src":"1471:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49608,"name":"address","nodeType":"ElementaryTypeName","src":"1471:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49611,"mutability":"mutable","name":"spender","nameLocation":"1502:7:49","nodeType":"VariableDeclaration","scope":49624,"src":"1494:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49610,"name":"address","nodeType":"ElementaryTypeName","src":"1494:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49613,"mutability":"mutable","name":"value","nameLocation":"1527:5:49","nodeType":"VariableDeclaration","scope":49624,"src":"1519:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49612,"name":"uint256","nodeType":"ElementaryTypeName","src":"1519:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49615,"mutability":"mutable","name":"deadline","nameLocation":"1550:8:49","nodeType":"VariableDeclaration","scope":49624,"src":"1542:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49614,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49617,"mutability":"mutable","name":"v","nameLocation":"1574:1:49","nodeType":"VariableDeclaration","scope":49624,"src":"1568:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":49616,"name":"uint8","nodeType":"ElementaryTypeName","src":"1568:5:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":49619,"mutability":"mutable","name":"r","nameLocation":"1593:1:49","nodeType":"VariableDeclaration","scope":49624,"src":"1585:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49618,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1585:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":49621,"mutability":"mutable","name":"s","nameLocation":"1612:1:49","nodeType":"VariableDeclaration","scope":49624,"src":"1604:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49620,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1604:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1461:158:49"},"returnParameters":{"id":49623,"nodeType":"ParameterList","parameters":[],"src":"1628:0:49"},"scope":49639,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49632,"nodeType":"FunctionDefinition","src":"1934:63:49","nodes":[],"documentation":{"id":49625,"nodeType":"StructuredDocumentation","src":"1635:294:49","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"1943:6:49","parameters":{"id":49628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49627,"mutability":"mutable","name":"owner","nameLocation":"1958:5:49","nodeType":"VariableDeclaration","scope":49632,"src":"1950:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49626,"name":"address","nodeType":"ElementaryTypeName","src":"1950:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1949:15:49"},"returnParameters":{"id":49631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49630,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49632,"src":"1988:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49629,"name":"uint256","nodeType":"ElementaryTypeName","src":"1988:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1987:9:49"},"scope":49639,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49638,"nodeType":"FunctionDefinition","src":"2189:60:49","nodes":[],"documentation":{"id":49633,"nodeType":"StructuredDocumentation","src":"2003:128:49","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2198:16:49","parameters":{"id":49634,"nodeType":"ParameterList","parameters":[],"src":"2214:2:49"},"returnParameters":{"id":49637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49638,"src":"2240:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2240:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2239:9:49"},"scope":49639,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":49606,"nodeType":"StructuredDocumentation","src":"139:480:49","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."},"fullyImplemented":false,"linearizedBaseContracts":[49639],"name":"IERC20Permit","nameLocation":"630:12:49","scope":49640,"usedErrors":[]}],"license":"MIT"},"id":49}
{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":"IERC20Permit"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]."}}},"id":49}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"198:1018:295:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;198:1018:295;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"198:1018:295:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Testing library to help with reading EIP 1967 variables from state\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"PROXY_IMPLEMENTATION_ADDRESS\":{\"details\":\"`bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)`\"},\"PROXY_OWNER_ADDRESS\":{\"details\":\"`bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)`\"}},\"title\":\"EIP1967Helper\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/EIP1967Helper.sol\":\"EIP1967Helper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"test/mocks/EIP1967Helper.sol\":{\"keccak256\":\"0x4eef1aa4971ca260f2aa148391aafd448cca9af6d0cdfc8e09dbf06437df5aa8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8ae7fd7ce75794059932357339ea11623492612d17953cacfcdbeda018af950\",\"dweb:/ipfs/QmbSazvXbu6WryevPF2DyPogYa5dqcY6sxwFLTHbRZnTg3\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/EIP1967Helper.sol":"EIP1967Helper"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"test/mocks/EIP1967Helper.sol":{"keccak256":"0x4eef1aa4971ca260f2aa148391aafd448cca9af6d0cdfc8e09dbf06437df5aa8","urls":["bzz-raw://a8ae7fd7ce75794059932357339ea11623492612d17953cacfcdbeda018af950","dweb:/ipfs/QmbSazvXbu6WryevPF2DyPogYa5dqcY6sxwFLTHbRZnTg3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Testing library to help with reading EIP 1967 variables from state","title":"EIP1967Helper"},"ast":{"absolutePath":"test/mocks/EIP1967Helper.sol","id":173296,"exportedSymbols":{"EIP1967Helper":[173295],"Vm":[14428]},"nodeType":"SourceUnit","src":"32:1185:295","nodes":[{"id":173225,"nodeType":"PragmaDirective","src":"32:23:295","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":173227,"nodeType":"ImportDirective","src":"57:38:295","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"forge-std/Vm.sol","nameLocation":"-1:-1:-1","scope":173296,"sourceUnit":14429,"symbolAliases":[{"foreign":{"id":173226,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14428,"src":"66:2:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":173295,"nodeType":"ContractDefinition","src":"198:1018:295","nodes":[{"id":173232,"nodeType":"VariableDeclaration","src":"388:131:295","nodes":[],"constant":true,"documentation":{"id":173229,"nodeType":"StructuredDocumentation","src":"226:157:295","text":"@notice The storage slot that holds the address of a proxy implementation.\n @dev `bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)`"},"mutability":"constant","name":"PROXY_IMPLEMENTATION_ADDRESS","nameLocation":"414:28:295","scope":173295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173230,"name":"bytes32","nodeType":"ElementaryTypeName","src":"388:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":173231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"453:66:295","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"id":173236,"nodeType":"VariableDeclaration","src":"666:114:295","nodes":[],"constant":true,"documentation":{"id":173233,"nodeType":"StructuredDocumentation","src":"526:135:295","text":"@notice The storage slot that holds the address of the owner.\n @dev `bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)`"},"mutability":"constant","name":"PROXY_OWNER_ADDRESS","nameLocation":"692:19:295","scope":173295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"666:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":173235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"714:66:295","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"id":173242,"nodeType":"VariableDeclaration","src":"787:72:295","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"808:2:295","scope":173295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"},"typeName":{"id":173238,"nodeType":"UserDefinedTypeName","pathNode":{"id":173237,"name":"Vm","nodeType":"IdentifierPath","referencedDeclaration":14428,"src":"787:2:295"},"referencedDeclaration":14428,"src":"787:2:295","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"}},"value":{"arguments":[{"hexValue":"307837313039373039454366613931613830363236664633393839443638663637463562314444313244","id":173240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"816:42:295","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x7109709ECfa91a80626fF3989D68f67F5b1DD12D"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":173239,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14428,"src":"813:2:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$14428_$","typeString":"type(contract Vm)"}},"id":173241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"813:46:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"}},"visibility":"internal"},{"id":173268,"nodeType":"FunctionDefinition","src":"866:162:295","nodes":[],"body":{"id":173267,"nodeType":"Block","src":"932:96:295","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":173259,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173244,"src":"989:6:295","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":173258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"981:7:295","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":173257,"name":"address","nodeType":"ElementaryTypeName","src":"981:7:295","typeDescriptions":{}}},"id":173260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"981:15:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":173261,"name":"PROXY_OWNER_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173236,"src":"998:19:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":173255,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173242,"src":"973:2:295","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"}},"id":173256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12813,"src":"973:7:295","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":173262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"973:45:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":173254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"965:7:295","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":173253,"name":"uint256","nodeType":"ElementaryTypeName","src":"965:7:295","typeDescriptions":{}}},"id":173263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"965:54:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":173252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"957:7:295","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":173251,"name":"uint160","nodeType":"ElementaryTypeName","src":"957:7:295","typeDescriptions":{}}},"id":173264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"957:63:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":173250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"949:7:295","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":173249,"name":"address","nodeType":"ElementaryTypeName","src":"949:7:295","typeDescriptions":{}}},"id":173265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"949:72:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":173248,"id":173266,"nodeType":"Return","src":"942:79:295"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getAdmin","nameLocation":"875:8:295","parameters":{"id":173245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173244,"mutability":"mutable","name":"_proxy","nameLocation":"892:6:295","nodeType":"VariableDeclaration","scope":173268,"src":"884:14:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173243,"name":"address","nodeType":"ElementaryTypeName","src":"884:7:295","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"883:16:295"},"returnParameters":{"id":173248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":173268,"src":"923:7:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173246,"name":"address","nodeType":"ElementaryTypeName","src":"923:7:295","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"922:9:295"},"scope":173295,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":173294,"nodeType":"FunctionDefinition","src":"1034:180:295","nodes":[],"body":{"id":173293,"nodeType":"Block","src":"1109:105:295","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":173285,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173270,"src":"1166:6:295","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":173284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1158:7:295","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":173283,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:295","typeDescriptions":{}}},"id":173286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1158:15:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":173287,"name":"PROXY_IMPLEMENTATION_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173232,"src":"1175:28:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":173281,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173242,"src":"1150:2:295","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"}},"id":173282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12813,"src":"1150:7:295","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":173288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1150:54:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":173280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1142:7:295","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":173279,"name":"uint256","nodeType":"ElementaryTypeName","src":"1142:7:295","typeDescriptions":{}}},"id":173289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1142:63:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":173278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1134:7:295","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":173277,"name":"uint160","nodeType":"ElementaryTypeName","src":"1134:7:295","typeDescriptions":{}}},"id":173290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1134:72:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":173276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1126:7:295","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":173275,"name":"address","nodeType":"ElementaryTypeName","src":"1126:7:295","typeDescriptions":{}}},"id":173291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1126:81:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":173274,"id":173292,"nodeType":"Return","src":"1119:88:295"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getImplementation","nameLocation":"1043:17:295","parameters":{"id":173271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173270,"mutability":"mutable","name":"_proxy","nameLocation":"1069:6:295","nodeType":"VariableDeclaration","scope":173294,"src":"1061:14:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173269,"name":"address","nodeType":"ElementaryTypeName","src":"1061:7:295","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1060:16:295"},"returnParameters":{"id":173274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":173294,"src":"1100:7:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173272,"name":"address","nodeType":"ElementaryTypeName","src":"1100:7:295","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1099:9:295"},"scope":173295,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"EIP1967Helper","contractDependencies":[],"contractKind":"library","documentation":{"id":173228,"nodeType":"StructuredDocumentation","src":"97:101:295","text":"@title EIP1967Helper\n @dev Testing library to help with reading EIP 1967 variables from state"},"fullyImplemented":true,"linearizedBaseContracts":[173295],"name":"EIP1967Helper","nameLocation":"206:13:295","scope":173296,"usedErrors":[]}],"license":"MIT"},"id":295}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"198:1018:311:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;198:1018:311;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"198:1018:311:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Testing library to help with reading EIP 1967 variables from state\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"PROXY_IMPLEMENTATION_ADDRESS\":{\"details\":\"`bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)`\"},\"PROXY_OWNER_ADDRESS\":{\"details\":\"`bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)`\"}},\"title\":\"EIP1967Helper\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/EIP1967Helper.sol\":\"EIP1967Helper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"test/mocks/EIP1967Helper.sol\":{\"keccak256\":\"0x4eef1aa4971ca260f2aa148391aafd448cca9af6d0cdfc8e09dbf06437df5aa8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8ae7fd7ce75794059932357339ea11623492612d17953cacfcdbeda018af950\",\"dweb:/ipfs/QmbSazvXbu6WryevPF2DyPogYa5dqcY6sxwFLTHbRZnTg3\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/EIP1967Helper.sol":"EIP1967Helper"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"test/mocks/EIP1967Helper.sol":{"keccak256":"0x4eef1aa4971ca260f2aa148391aafd448cca9af6d0cdfc8e09dbf06437df5aa8","urls":["bzz-raw://a8ae7fd7ce75794059932357339ea11623492612d17953cacfcdbeda018af950","dweb:/ipfs/QmbSazvXbu6WryevPF2DyPogYa5dqcY6sxwFLTHbRZnTg3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Testing library to help with reading EIP 1967 variables from state","title":"EIP1967Helper"},"id":311}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Enum - Collection of enums used in Safe contracts.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/Enum.sol\":\"Enum\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34\",\"dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/Enum.sol":"Enum"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453","urls":["bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34","dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"Enum - Collection of enums used in Safe contracts."},"ast":{"absolutePath":"lib/safe-contracts/contracts/common/Enum.sol","id":57931,"exportedSymbols":{"Enum":[57930]},"nodeType":"SourceUnit","src":"42:232:77","nodes":[{"id":57925,"nodeType":"PragmaDirective","src":"42:31:77","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":57930,"nodeType":"ContractDefinition","src":"185:88:77","nodes":[{"id":57929,"nodeType":"EnumDefinition","src":"214:57:77","nodes":[],"canonicalName":"Enum.Operation","members":[{"id":57927,"name":"Call","nameLocation":"239:4:77","nodeType":"EnumValue","src":"239:4:77"},{"id":57928,"name":"DelegateCall","nameLocation":"253:12:77","nodeType":"EnumValue","src":"253:12:77"}],"name":"Operation","nameLocation":"219:9:77"}],"abstract":true,"baseContracts":[],"canonicalName":"Enum","contractDependencies":[],"contractKind":"contract","documentation":{"id":57926,"nodeType":"StructuredDocumentation","src":"75:109:77","text":" @title Enum - Collection of enums used in Safe contracts.\n @author Richard Meissner - @rmeissner"},"fullyImplemented":true,"linearizedBaseContracts":[57930],"name":"Enum","nameLocation":"203:4:77","scope":57931,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":77}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Enum - Collection of enums used in Safe contracts.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/Enum.sol\":\"Enum\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34\",\"dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/Enum.sol":"Enum"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453","urls":["bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34","dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"Enum - Collection of enums used in Safe contracts."},"id":77}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"onERC1155BatchReceived","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_ids","type":"uint256[]","internalType":"uint256[]"},{"name":"_values","type":"uint256[]","internalType":"uint256[]"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onERC1155Received","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated. This function MUST return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81) if it accepts the transfer(s). This function MUST revert if it rejects the transfer(s). Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.\",\"params\":{\"_data\":\"Additional data with no specified format.\",\"_from\":\"The address which previously owned the token.\",\"_ids\":\"An array containing ids of each token being transferred (order and length must match _values array).\",\"_operator\":\"The address which initiated the batch transfer (i.e. msg.sender).\",\"_values\":\"An array containing amounts of each token being transferred (order and length must match _ids array).\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))`.\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated. This function MUST return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61) if it accepts the transfer. This function MUST revert if it rejects the transfer. Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.\",\"params\":{\"_data\":\"Additional data with no specified format.\",\"_from\":\"The address which previously owned the token.\",\"_id\":\"The ID of the token being transferred.\",\"_operator\":\"The address which initiated the transfer (i.e. msg.sender).\",\"_value\":\"The amount of tokens being transferred.\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))`.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"notice\":\"Handle the receipt of multiple ERC1155 token types.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"notice\":\"Handle the receipt of a single ERC1155 token type.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/ERC1155TokenReceiver.sol\":\"ERC1155TokenReceiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/ERC1155TokenReceiver.sol\":{\"keccak256\":\"0x87e62665c041cade64e753ecdccf931cb100ab6e4bcc98769c1e6474be9db493\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://59ca1157dcfe19c72b9d1244a6ae5ec70fee9793d4d8af523b70f22ae567d55c\",\"dweb:/ipfs/QmfE3kv73QuQWAWQND927LWVHVLCp19m1mLUvxVYJDEFZM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":{"details":"An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated. This function MUST return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` (i.e. 0xbc197c81) if it accepts the transfer(s). This function MUST revert if it rejects the transfer(s). Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.","params":{"_data":"Additional data with no specified format.","_from":"The address which previously owned the token.","_ids":"An array containing ids of each token being transferred (order and length must match _values array).","_operator":"The address which initiated the batch transfer (i.e. msg.sender).","_values":"An array containing amounts of each token being transferred (order and length must match _ids array)."},"returns":{"_0":"`bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`."}},"onERC1155Received(address,address,uint256,uint256,bytes)":{"details":"An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated. This function MUST return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` (i.e. 0xf23a6e61) if it accepts the transfer. This function MUST revert if it rejects the transfer. Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.","params":{"_data":"Additional data with no specified format.","_from":"The address which previously owned the token.","_id":"The ID of the token being transferred.","_operator":"The address which initiated the transfer (i.e. msg.sender).","_value":"The amount of tokens being transferred."},"returns":{"_0":"`bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`."}}},"version":1},"userdoc":{"kind":"user","methods":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":{"notice":"Handle the receipt of multiple ERC1155 token types."},"onERC1155Received(address,address,uint256,uint256,bytes)":{"notice":"Handle the receipt of a single ERC1155 token type."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/ERC1155TokenReceiver.sol":"ERC1155TokenReceiver"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/ERC1155TokenReceiver.sol":{"keccak256":"0x87e62665c041cade64e753ecdccf931cb100ab6e4bcc98769c1e6474be9db493","urls":["bzz-raw://59ca1157dcfe19c72b9d1244a6ae5ec70fee9793d4d8af523b70f22ae567d55c","dweb:/ipfs/QmfE3kv73QuQWAWQND927LWVHVLCp19m1mLUvxVYJDEFZM"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":{"notice":"Handle the receipt of multiple ERC1155 token types."},"onERC1155Received(address,address,uint256,uint256,bytes)":{"notice":"Handle the receipt of a single ERC1155 token type."}}},"devdoc":{"version":1,"kind":"dev","methods":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":{"details":"An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated. This function MUST return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` (i.e. 0xbc197c81) if it accepts the transfer(s). This function MUST revert if it rejects the transfer(s). Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.","params":{"_data":"Additional data with no specified format.","_from":"The address which previously owned the token.","_ids":"An array containing ids of each token being transferred (order and length must match _values array).","_operator":"The address which initiated the batch transfer (i.e. msg.sender).","_values":"An array containing amounts of each token being transferred (order and length must match _ids array)."},"returns":{"_0":"`bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`."}},"onERC1155Received(address,address,uint256,uint256,bytes)":{"details":"An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated. This function MUST return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` (i.e. 0xf23a6e61) if it accepts the transfer. This function MUST revert if it rejects the transfer. Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.","params":{"_data":"Additional data with no specified format.","_from":"The address which previously owned the token.","_id":"The ID of the token being transferred.","_operator":"The address which initiated the transfer (i.e. msg.sender).","_value":"The amount of tokens being transferred."},"returns":{"_0":"`bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`."}}}},"ast":{"absolutePath":"lib/safe-contracts/contracts/interfaces/ERC1155TokenReceiver.sol","id":58224,"exportedSymbols":{"ERC1155TokenReceiver":[58223]},"nodeType":"SourceUnit","src":"42:2886:85","nodes":[{"id":58188,"nodeType":"PragmaDirective","src":"42:31:85","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58223,"nodeType":"ContractDefinition","src":"141:2786:85","nodes":[{"id":58204,"nodeType":"FunctionDefinition","src":"1269:184:85","nodes":[],"documentation":{"id":58189,"nodeType":"StructuredDocumentation","src":"178:1086:85","text":" @notice Handle the receipt of a single ERC1155 token type.\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated.\n This function MUST return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` (i.e. 0xf23a6e61) if it accepts the transfer.\n This function MUST revert if it rejects the transfer.\n Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.\n @param _operator The address which initiated the transfer (i.e. msg.sender).\n @param _from The address which previously owned the token.\n @param _id The ID of the token being transferred.\n @param _value The amount of tokens being transferred.\n @param _data Additional data with no specified format.\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`."},"functionSelector":"f23a6e61","implemented":false,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"1278:17:85","parameters":{"id":58200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58191,"mutability":"mutable","name":"_operator","nameLocation":"1313:9:85","nodeType":"VariableDeclaration","scope":58204,"src":"1305:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58190,"name":"address","nodeType":"ElementaryTypeName","src":"1305:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58193,"mutability":"mutable","name":"_from","nameLocation":"1340:5:85","nodeType":"VariableDeclaration","scope":58204,"src":"1332:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58192,"name":"address","nodeType":"ElementaryTypeName","src":"1332:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58195,"mutability":"mutable","name":"_id","nameLocation":"1363:3:85","nodeType":"VariableDeclaration","scope":58204,"src":"1355:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58194,"name":"uint256","nodeType":"ElementaryTypeName","src":"1355:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58197,"mutability":"mutable","name":"_value","nameLocation":"1384:6:85","nodeType":"VariableDeclaration","scope":58204,"src":"1376:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58196,"name":"uint256","nodeType":"ElementaryTypeName","src":"1376:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58199,"mutability":"mutable","name":"_data","nameLocation":"1415:5:85","nodeType":"VariableDeclaration","scope":58204,"src":"1400:20:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":58198,"name":"bytes","nodeType":"ElementaryTypeName","src":"1400:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1295:131:85"},"returnParameters":{"id":58203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58202,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58204,"src":"1445:6:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":58201,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1445:6:85","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1444:8:85"},"scope":58223,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58222,"nodeType":"FunctionDefinition","src":"2712:213:85","nodes":[],"documentation":{"id":58205,"nodeType":"StructuredDocumentation","src":"1459:1248:85","text":" @notice Handle the receipt of multiple ERC1155 token types.\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated.\n This function MUST return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` (i.e. 0xbc197c81) if it accepts the transfer(s).\n This function MUST revert if it rejects the transfer(s).\n Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.\n @param _operator The address which initiated the batch transfer (i.e. msg.sender).\n @param _from The address which previously owned the token.\n @param _ids An array containing ids of each token being transferred (order and length must match _values array).\n @param _values An array containing amounts of each token being transferred (order and length must match _ids array).\n @param _data Additional data with no specified format.\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`."},"functionSelector":"bc197c81","implemented":false,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"2721:22:85","parameters":{"id":58218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58207,"mutability":"mutable","name":"_operator","nameLocation":"2761:9:85","nodeType":"VariableDeclaration","scope":58222,"src":"2753:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58206,"name":"address","nodeType":"ElementaryTypeName","src":"2753:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58209,"mutability":"mutable","name":"_from","nameLocation":"2788:5:85","nodeType":"VariableDeclaration","scope":58222,"src":"2780:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58208,"name":"address","nodeType":"ElementaryTypeName","src":"2780:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58212,"mutability":"mutable","name":"_ids","nameLocation":"2822:4:85","nodeType":"VariableDeclaration","scope":58222,"src":"2803:23:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":58210,"name":"uint256","nodeType":"ElementaryTypeName","src":"2803:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58211,"nodeType":"ArrayTypeName","src":"2803:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":58215,"mutability":"mutable","name":"_values","nameLocation":"2855:7:85","nodeType":"VariableDeclaration","scope":58222,"src":"2836:26:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":58213,"name":"uint256","nodeType":"ElementaryTypeName","src":"2836:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58214,"nodeType":"ArrayTypeName","src":"2836:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":58217,"mutability":"mutable","name":"_data","nameLocation":"2887:5:85","nodeType":"VariableDeclaration","scope":58222,"src":"2872:20:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":58216,"name":"bytes","nodeType":"ElementaryTypeName","src":"2872:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2743:155:85"},"returnParameters":{"id":58221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58222,"src":"2917:6:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":58219,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2917:6:85","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2916:8:85"},"scope":58223,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ERC1155TokenReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[58223],"name":"ERC1155TokenReceiver","nameLocation":"151:20:85","scope":58224,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":85}
{"abi":[{"type":"function","name":"onERC1155BatchReceived","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_ids","type":"uint256[]","internalType":"uint256[]"},{"name":"_values","type":"uint256[]","internalType":"uint256[]"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onERC1155Received","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated. This function MUST return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81) if it accepts the transfer(s). This function MUST revert if it rejects the transfer(s). Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.\",\"params\":{\"_data\":\"Additional data with no specified format.\",\"_from\":\"The address which previously owned the token.\",\"_ids\":\"An array containing ids of each token being transferred (order and length must match _values array).\",\"_operator\":\"The address which initiated the batch transfer (i.e. msg.sender).\",\"_values\":\"An array containing amounts of each token being transferred (order and length must match _ids array).\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))`.\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated. This function MUST return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61) if it accepts the transfer. This function MUST revert if it rejects the transfer. Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.\",\"params\":{\"_data\":\"Additional data with no specified format.\",\"_from\":\"The address which previously owned the token.\",\"_id\":\"The ID of the token being transferred.\",\"_operator\":\"The address which initiated the transfer (i.e. msg.sender).\",\"_value\":\"The amount of tokens being transferred.\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))`.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"notice\":\"Handle the receipt of multiple ERC1155 token types.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"notice\":\"Handle the receipt of a single ERC1155 token type.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/ERC1155TokenReceiver.sol\":\"ERC1155TokenReceiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/ERC1155TokenReceiver.sol\":{\"keccak256\":\"0x87e62665c041cade64e753ecdccf931cb100ab6e4bcc98769c1e6474be9db493\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://59ca1157dcfe19c72b9d1244a6ae5ec70fee9793d4d8af523b70f22ae567d55c\",\"dweb:/ipfs/QmfE3kv73QuQWAWQND927LWVHVLCp19m1mLUvxVYJDEFZM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":{"details":"An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated. This function MUST return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` (i.e. 0xbc197c81) if it accepts the transfer(s). This function MUST revert if it rejects the transfer(s). Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.","params":{"_data":"Additional data with no specified format.","_from":"The address which previously owned the token.","_ids":"An array containing ids of each token being transferred (order and length must match _values array).","_operator":"The address which initiated the batch transfer (i.e. msg.sender).","_values":"An array containing amounts of each token being transferred (order and length must match _ids array)."},"returns":{"_0":"`bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`."}},"onERC1155Received(address,address,uint256,uint256,bytes)":{"details":"An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated. This function MUST return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` (i.e. 0xf23a6e61) if it accepts the transfer. This function MUST revert if it rejects the transfer. Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.","params":{"_data":"Additional data with no specified format.","_from":"The address which previously owned the token.","_id":"The ID of the token being transferred.","_operator":"The address which initiated the transfer (i.e. msg.sender).","_value":"The amount of tokens being transferred."},"returns":{"_0":"`bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`."}}},"version":1},"userdoc":{"kind":"user","methods":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":{"notice":"Handle the receipt of multiple ERC1155 token types."},"onERC1155Received(address,address,uint256,uint256,bytes)":{"notice":"Handle the receipt of a single ERC1155 token type."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/ERC1155TokenReceiver.sol":"ERC1155TokenReceiver"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/ERC1155TokenReceiver.sol":{"keccak256":"0x87e62665c041cade64e753ecdccf931cb100ab6e4bcc98769c1e6474be9db493","urls":["bzz-raw://59ca1157dcfe19c72b9d1244a6ae5ec70fee9793d4d8af523b70f22ae567d55c","dweb:/ipfs/QmfE3kv73QuQWAWQND927LWVHVLCp19m1mLUvxVYJDEFZM"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":{"notice":"Handle the receipt of multiple ERC1155 token types."},"onERC1155Received(address,address,uint256,uint256,bytes)":{"notice":"Handle the receipt of a single ERC1155 token type."}}},"devdoc":{"version":1,"kind":"dev","methods":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":{"details":"An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated. This function MUST return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` (i.e. 0xbc197c81) if it accepts the transfer(s). This function MUST revert if it rejects the transfer(s). Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.","params":{"_data":"Additional data with no specified format.","_from":"The address which previously owned the token.","_ids":"An array containing ids of each token being transferred (order and length must match _values array).","_operator":"The address which initiated the batch transfer (i.e. msg.sender).","_values":"An array containing amounts of each token being transferred (order and length must match _ids array)."},"returns":{"_0":"`bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`."}},"onERC1155Received(address,address,uint256,uint256,bytes)":{"details":"An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated. This function MUST return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` (i.e. 0xf23a6e61) if it accepts the transfer. This function MUST revert if it rejects the transfer. Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.","params":{"_data":"Additional data with no specified format.","_from":"The address which previously owned the token.","_id":"The ID of the token being transferred.","_operator":"The address which initiated the transfer (i.e. msg.sender).","_value":"The amount of tokens being transferred."},"returns":{"_0":"`bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`."}}}},"id":85}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":"ERC165"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","id":52584,"exportedSymbols":{"ERC165":[52583],"IERC165":[52789]},"nodeType":"SourceUnit","src":"99:888:64","nodes":[{"id":52561,"nodeType":"PragmaDirective","src":"99:23:64","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52562,"nodeType":"ImportDirective","src":"124:23:64","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","nameLocation":"-1:-1:-1","scope":52584,"sourceUnit":52790,"symbolAliases":[],"unitAlias":""},{"id":52583,"nodeType":"ContractDefinition","src":"726:260:64","nodes":[{"id":52582,"nodeType":"FunctionDefinition","src":"829:155:64","nodes":[],"body":{"id":52581,"nodeType":"Block","src":"920:64:64","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":52579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52574,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52568,"src":"937:11:64","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":52576,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52789,"src":"957:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$52789_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$52789_$","typeString":"type(contract IERC165)"}],"id":52575,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"952:4:64","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"952:13:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$52789","typeString":"type(contract IERC165)"}},"id":52578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:64","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":52573,"id":52580,"nodeType":"Return","src":"930:47:64"}]},"baseFunctions":[52788],"documentation":{"id":52566,"nodeType":"StructuredDocumentation","src":"768:56:64","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:64","overrides":{"id":52570,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:64"},"parameters":{"id":52569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52568,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:64","nodeType":"VariableDeclaration","scope":52582,"src":"856:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":52567,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:64","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:64"},"returnParameters":{"id":52573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52572,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52582,"src":"914:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52571,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:64"},"scope":52583,"stateMutability":"view","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":52564,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":52789,"src":"754:7:64"},"id":52565,"nodeType":"InheritanceSpecifier","src":"754:7:64"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":52563,"nodeType":"StructuredDocumentation","src":"149:576:64","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"linearizedBaseContracts":[52583,52789],"name":"ERC165","nameLocation":"744:6:64","scope":52584,"usedErrors":[]}],"license":"MIT"},"id":64}
{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":"ERC165"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}}},"id":64}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"449:4414:65:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;449:4414:65;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"449:4414:65:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library used to query support of an interface declared via {IERC165}. Note that these functions return the actual result of the query: they do not `revert` if an interface is not supported. It is up to the caller to decide what to do in these cases.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":\"ERC165Checker\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":"ERC165Checker"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Library used to query support of an interface declared via {IERC165}. Note that these functions return the actual result of the query: they do not `revert` if an interface is not supported. It is up to the caller to decide what to do in these cases."},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol","id":52778,"exportedSymbols":{"ERC165Checker":[52777],"IERC165":[52789]},"nodeType":"SourceUnit","src":"121:4743:65","nodes":[{"id":52585,"nodeType":"PragmaDirective","src":"121:23:65","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52586,"nodeType":"ImportDirective","src":"146:23:65","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","nameLocation":"-1:-1:-1","scope":52778,"sourceUnit":52790,"symbolAliases":[],"unitAlias":""},{"id":52777,"nodeType":"ContractDefinition","src":"449:4414:65","nodes":[{"id":52590,"nodeType":"VariableDeclaration","src":"551:58:65","nodes":[],"constant":true,"mutability":"constant","name":"_INTERFACE_ID_INVALID","nameLocation":"575:21:65","scope":52777,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":52588,"name":"bytes4","nodeType":"ElementaryTypeName","src":"551:6:65","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30786666666666666666","id":52589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"599:10:65","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xffffffff"},"visibility":"private"},{"id":52613,"nodeType":"FunctionDefinition","src":"704:411:65","nodes":[],"body":{"id":52612,"nodeType":"Block","src":"774:341:65","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":52599,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52593,"src":"1000:7:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":52601,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52789,"src":"1014:7:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$52789_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$52789_$","typeString":"type(contract IERC165)"}],"id":52600,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1009:4:65","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1009:13:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$52789","typeString":"type(contract IERC165)"}},"id":52603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1009:25:65","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":52598,"name":"_supportsERC165Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"975:24:65","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":52604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"975:60:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":52609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1051:57:65","subExpression":{"arguments":[{"id":52606,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52593,"src":"1077:7:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52607,"name":"_INTERFACE_ID_INVALID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52590,"src":"1086:21:65","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":52605,"name":"_supportsERC165Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"1052:24:65","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":52608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1052:56:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"975:133:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":52597,"id":52611,"nodeType":"Return","src":"956:152:65"}]},"documentation":{"id":52591,"nodeType":"StructuredDocumentation","src":"616:83:65","text":" @dev Returns true if `account` supports the {IERC165} interface,"},"implemented":true,"kind":"function","modifiers":[],"name":"supportsERC165","nameLocation":"713:14:65","parameters":{"id":52594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52593,"mutability":"mutable","name":"account","nameLocation":"736:7:65","nodeType":"VariableDeclaration","scope":52613,"src":"728:15:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52592,"name":"address","nodeType":"ElementaryTypeName","src":"728:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"727:17:65"},"returnParameters":{"id":52597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52613,"src":"768:4:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52595,"name":"bool","nodeType":"ElementaryTypeName","src":"768:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"767:6:65"},"scope":52777,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":52633,"nodeType":"FunctionDefinition","src":"1333:274:65","nodes":[],"body":{"id":52632,"nodeType":"Block","src":"1426:181:65","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":52624,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52616,"src":"1542:7:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52623,"name":"supportsERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52613,"src":"1527:14:65","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":52625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1527:23:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":52627,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52616,"src":"1579:7:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52628,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"1588:11:65","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":52626,"name":"_supportsERC165Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"1554:24:65","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":52629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1554:46:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1527:73:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":52622,"id":52631,"nodeType":"Return","src":"1520:80:65"}]},"documentation":{"id":52614,"nodeType":"StructuredDocumentation","src":"1121:207:65","text":" @dev Returns true if `account` supports the interface defined by\n `interfaceId`. Support for {IERC165} itself is queried automatically.\n See {IERC165-supportsInterface}."},"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1342:17:65","parameters":{"id":52619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52616,"mutability":"mutable","name":"account","nameLocation":"1368:7:65","nodeType":"VariableDeclaration","scope":52633,"src":"1360:15:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52615,"name":"address","nodeType":"ElementaryTypeName","src":"1360:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52618,"mutability":"mutable","name":"interfaceId","nameLocation":"1384:11:65","nodeType":"VariableDeclaration","scope":52633,"src":"1377:18:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":52617,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1377:6:65","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1359:37:65"},"returnParameters":{"id":52622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52633,"src":"1420:4:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52620,"name":"bool","nodeType":"ElementaryTypeName","src":"1420:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1419:6:65"},"scope":52777,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":52689,"nodeType":"FunctionDefinition","src":"1992:697:65","nodes":[],"body":{"id":52688,"nodeType":"Block","src":"2137:552:65","nodes":[],"statements":[{"assignments":[52649],"declarations":[{"constant":false,"id":52649,"mutability":"mutable","name":"interfaceIdsSupported","nameLocation":"2260:21:65","nodeType":"VariableDeclaration","scope":52688,"src":"2246:35:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":52647,"name":"bool","nodeType":"ElementaryTypeName","src":"2246:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52648,"nodeType":"ArrayTypeName","src":"2246:6:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":52656,"initialValue":{"arguments":[{"expression":{"id":52653,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52639,"src":"2295:12:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":52654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2295:19:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":52652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2284:10:65","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bool[] memory)"},"typeName":{"baseType":{"id":52650,"name":"bool","nodeType":"ElementaryTypeName","src":"2288:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52651,"nodeType":"ArrayTypeName","src":"2288:6:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}}},"id":52655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2284:31:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2246:69:65"},{"condition":{"arguments":[{"id":52658,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"2387:7:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52657,"name":"supportsERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52613,"src":"2372:14:65","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":52659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2372:23:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52685,"nodeType":"IfStatement","src":"2368:276:65","trueBody":{"id":52684,"nodeType":"Block","src":"2397:247:65","statements":[{"body":{"id":52682,"nodeType":"Block","src":"2524:110:65","statements":[{"expression":{"id":52680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52671,"name":"interfaceIdsSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52649,"src":"2542:21:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":52673,"indexExpression":{"id":52672,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"2564:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2542:24:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52675,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"2594:7:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":52676,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52639,"src":"2603:12:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":52678,"indexExpression":{"id":52677,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"2616:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2603:15:65","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":52674,"name":"_supportsERC165Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"2569:24:65","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":52679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2569:50:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2542:77:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52681,"nodeType":"ExpressionStatement","src":"2542:77:65"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52664,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"2494:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":52665,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52639,"src":"2498:12:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":52666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2498:19:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2494:23:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52683,"initializationExpression":{"assignments":[52661],"declarations":[{"constant":false,"id":52661,"mutability":"mutable","name":"i","nameLocation":"2487:1:65","nodeType":"VariableDeclaration","scope":52683,"src":"2479:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52660,"name":"uint256","nodeType":"ElementaryTypeName","src":"2479:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52663,"initialValue":{"hexValue":"30","id":52662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2491:1:65","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2479:13:65"},"loopExpression":{"expression":{"id":52669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2519:3:65","subExpression":{"id":52668,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"2519:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52670,"nodeType":"ExpressionStatement","src":"2519:3:65"},"nodeType":"ForStatement","src":"2474:160:65"}]}},{"expression":{"id":52686,"name":"interfaceIdsSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52649,"src":"2661:21:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"functionReturnParameters":52644,"id":52687,"nodeType":"Return","src":"2654:28:65"}]},"documentation":{"id":52634,"nodeType":"StructuredDocumentation","src":"1613:374:65","text":" @dev Returns a boolean array where each value corresponds to the\n interfaces passed in and whether they're supported or not. This allows\n you to batch check interfaces for a contract where your expectation\n is that some interfaces may not be supported.\n See {IERC165-supportsInterface}.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"getSupportedInterfaces","nameLocation":"2001:22:65","parameters":{"id":52640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52636,"mutability":"mutable","name":"account","nameLocation":"2032:7:65","nodeType":"VariableDeclaration","scope":52689,"src":"2024:15:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52635,"name":"address","nodeType":"ElementaryTypeName","src":"2024:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52639,"mutability":"mutable","name":"interfaceIds","nameLocation":"2057:12:65","nodeType":"VariableDeclaration","scope":52689,"src":"2041:28:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52637,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2041:6:65","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52638,"nodeType":"ArrayTypeName","src":"2041:8:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"2023:47:65"},"returnParameters":{"id":52644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52689,"src":"2118:13:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":52641,"name":"bool","nodeType":"ElementaryTypeName","src":"2118:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52642,"nodeType":"ArrayTypeName","src":"2118:6:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2117:15:65"},"scope":52777,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":52735,"nodeType":"FunctionDefinition","src":"3024:536:65","nodes":[],"body":{"id":52734,"nodeType":"Block","src":"3131:429:65","nodes":[],"statements":[{"condition":{"id":52703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3187:24:65","subExpression":{"arguments":[{"id":52701,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52692,"src":"3203:7:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52700,"name":"supportsERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52613,"src":"3188:14:65","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":52702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3188:23:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52707,"nodeType":"IfStatement","src":"3183:67:65","trueBody":{"id":52706,"nodeType":"Block","src":"3213:37:65","statements":[{"expression":{"hexValue":"66616c7365","id":52704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3234:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":52699,"id":52705,"nodeType":"Return","src":"3227:12:65"}]}},{"body":{"id":52730,"nodeType":"Block","src":"3370:126:65","statements":[{"condition":{"id":52725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3388:51:65","subExpression":{"arguments":[{"id":52720,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52692,"src":"3414:7:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":52721,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52695,"src":"3423:12:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":52723,"indexExpression":{"id":52722,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52709,"src":"3436:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3423:15:65","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":52719,"name":"_supportsERC165Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52776,"src":"3389:24:65","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":52724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3389:50:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52729,"nodeType":"IfStatement","src":"3384:102:65","trueBody":{"id":52728,"nodeType":"Block","src":"3441:45:65","statements":[{"expression":{"hexValue":"66616c7365","id":52726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3466:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":52699,"id":52727,"nodeType":"Return","src":"3459:12:65"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52712,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52709,"src":"3340:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":52713,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52695,"src":"3344:12:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":52714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3344:19:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3340:23:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52731,"initializationExpression":{"assignments":[52709],"declarations":[{"constant":false,"id":52709,"mutability":"mutable","name":"i","nameLocation":"3333:1:65","nodeType":"VariableDeclaration","scope":52731,"src":"3325:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52708,"name":"uint256","nodeType":"ElementaryTypeName","src":"3325:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52711,"initialValue":{"hexValue":"30","id":52710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3337:1:65","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3325:13:65"},"loopExpression":{"expression":{"id":52717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3365:3:65","subExpression":{"id":52716,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52709,"src":"3365:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52718,"nodeType":"ExpressionStatement","src":"3365:3:65"},"nodeType":"ForStatement","src":"3320:176:65"},{"expression":{"hexValue":"74727565","id":52732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3549:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":52699,"id":52733,"nodeType":"Return","src":"3542:11:65"}]},"documentation":{"id":52690,"nodeType":"StructuredDocumentation","src":"2695:324:65","text":" @dev Returns true if `account` supports all the interfaces defined in\n `interfaceIds`. Support for {IERC165} itself is queried automatically.\n Batch-querying can lead to gas savings by skipping repeated checks for\n {IERC165} support.\n See {IERC165-supportsInterface}."},"implemented":true,"kind":"function","modifiers":[],"name":"supportsAllInterfaces","nameLocation":"3033:21:65","parameters":{"id":52696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52692,"mutability":"mutable","name":"account","nameLocation":"3063:7:65","nodeType":"VariableDeclaration","scope":52735,"src":"3055:15:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52691,"name":"address","nodeType":"ElementaryTypeName","src":"3055:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52695,"mutability":"mutable","name":"interfaceIds","nameLocation":"3088:12:65","nodeType":"VariableDeclaration","scope":52735,"src":"3072:28:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52693,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3072:6:65","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52694,"nodeType":"ArrayTypeName","src":"3072:8:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"3054:47:65"},"returnParameters":{"id":52699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52735,"src":"3125:4:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52697,"name":"bool","nodeType":"ElementaryTypeName","src":"3125:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3124:6:65"},"scope":52777,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":52776,"nodeType":"FunctionDefinition","src":"4223:638:65","nodes":[],"body":{"id":52775,"nodeType":"Block","src":"4322:539:65","nodes":[],"statements":[{"assignments":[52746],"declarations":[{"constant":false,"id":52746,"mutability":"mutable","name":"encodedParams","nameLocation":"4369:13:65","nodeType":"VariableDeclaration","scope":52775,"src":"4356:26:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52745,"name":"bytes","nodeType":"ElementaryTypeName","src":"4356:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":52754,"initialValue":{"arguments":[{"expression":{"expression":{"id":52749,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52789,"src":"4408:7:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$52789_$","typeString":"type(contract IERC165)"}},"id":52750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":52788,"src":"4408:25:65","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes4_$returns$_t_bool_$","typeString":"function IERC165.supportsInterface(bytes4) view returns (bool)"}},"id":52751,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"4408:34:65","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":52752,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52740,"src":"4444:11:65","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":52747,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4385:3:65","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":52748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4385:22:65","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":52753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4385:71:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4356:100:65"},{"assignments":[52756],"declarations":[{"constant":false,"id":52756,"mutability":"mutable","name":"success","nameLocation":"4503:7:65","nodeType":"VariableDeclaration","scope":52775,"src":"4498:12:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52755,"name":"bool","nodeType":"ElementaryTypeName","src":"4498:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":52757,"nodeType":"VariableDeclarationStatement","src":"4498:12:65"},{"assignments":[52759],"declarations":[{"constant":false,"id":52759,"mutability":"mutable","name":"returnSize","nameLocation":"4528:10:65","nodeType":"VariableDeclaration","scope":52775,"src":"4520:18:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52758,"name":"uint256","nodeType":"ElementaryTypeName","src":"4520:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52760,"nodeType":"VariableDeclarationStatement","src":"4520:18:65"},{"assignments":[52762],"declarations":[{"constant":false,"id":52762,"mutability":"mutable","name":"returnValue","nameLocation":"4556:11:65","nodeType":"VariableDeclaration","scope":52775,"src":"4548:19:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52761,"name":"uint256","nodeType":"ElementaryTypeName","src":"4548:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52763,"nodeType":"VariableDeclarationStatement","src":"4548:19:65"},{"AST":{"nodeType":"YulBlock","src":"4586:203:65","statements":[{"nodeType":"YulAssignment","src":"4600:97:65","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4622:5:65","type":"","value":"30000"},{"name":"account","nodeType":"YulIdentifier","src":"4629:7:65"},{"arguments":[{"name":"encodedParams","nodeType":"YulIdentifier","src":"4642:13:65"},{"kind":"number","nodeType":"YulLiteral","src":"4657:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4638:3:65"},"nodeType":"YulFunctionCall","src":"4638:24:65"},{"arguments":[{"name":"encodedParams","nodeType":"YulIdentifier","src":"4670:13:65"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4664:5:65"},"nodeType":"YulFunctionCall","src":"4664:20:65"},{"kind":"number","nodeType":"YulLiteral","src":"4686:4:65","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"4692:4:65","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"4611:10:65"},"nodeType":"YulFunctionCall","src":"4611:86:65"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"4600:7:65"}]},{"nodeType":"YulAssignment","src":"4710:30:65","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"4724:14:65"},"nodeType":"YulFunctionCall","src":"4724:16:65"},"variableNames":[{"name":"returnSize","nodeType":"YulIdentifier","src":"4710:10:65"}]},{"nodeType":"YulAssignment","src":"4753:26:65","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4774:4:65","type":"","value":"0x00"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4768:5:65"},"nodeType":"YulFunctionCall","src":"4768:11:65"},"variableNames":[{"name":"returnValue","nodeType":"YulIdentifier","src":"4753:11:65"}]}]},"evmVersion":"london","externalReferences":[{"declaration":52738,"isOffset":false,"isSlot":false,"src":"4629:7:65","valueSize":1},{"declaration":52746,"isOffset":false,"isSlot":false,"src":"4642:13:65","valueSize":1},{"declaration":52746,"isOffset":false,"isSlot":false,"src":"4670:13:65","valueSize":1},{"declaration":52759,"isOffset":false,"isSlot":false,"src":"4710:10:65","valueSize":1},{"declaration":52762,"isOffset":false,"isSlot":false,"src":"4753:11:65","valueSize":1},{"declaration":52756,"isOffset":false,"isSlot":false,"src":"4600:7:65","valueSize":1}],"id":52764,"nodeType":"InlineAssembly","src":"4577:212:65"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52765,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52756,"src":"4806:7:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52766,"name":"returnSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52759,"src":"4817:10:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783230","id":52767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4831:4:65","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"4817:18:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4806:29:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52770,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52762,"src":"4839:11:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":52771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4853:1:65","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4839:15:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4806:48:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":52744,"id":52774,"nodeType":"Return","src":"4799:55:65"}]},"documentation":{"id":52736,"nodeType":"StructuredDocumentation","src":"3566:652:65","text":" @notice Query if a contract implements an interface, does not check ERC165 support\n @param account The address of the contract to query for support of an interface\n @param interfaceId The interface identifier, as specified in ERC-165\n @return true if the contract at account indicates support of the interface with\n identifier interfaceId, false otherwise\n @dev Assumes that account contains a contract that supports ERC165, otherwise\n the behavior of this method is undefined. This precondition can be checked\n with {supportsERC165}.\n Interface identification is specified in ERC-165."},"implemented":true,"kind":"function","modifiers":[],"name":"_supportsERC165Interface","nameLocation":"4232:24:65","parameters":{"id":52741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52738,"mutability":"mutable","name":"account","nameLocation":"4265:7:65","nodeType":"VariableDeclaration","scope":52776,"src":"4257:15:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52737,"name":"address","nodeType":"ElementaryTypeName","src":"4257:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52740,"mutability":"mutable","name":"interfaceId","nameLocation":"4281:11:65","nodeType":"VariableDeclaration","scope":52776,"src":"4274:18:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":52739,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4274:6:65","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4256:37:65"},"returnParameters":{"id":52744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52776,"src":"4316:4:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52742,"name":"bool","nodeType":"ElementaryTypeName","src":"4316:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4315:6:65"},"scope":52777,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"ERC165Checker","contractDependencies":[],"contractKind":"library","documentation":{"id":52587,"nodeType":"StructuredDocumentation","src":"171:277:65","text":" @dev Library used to query support of an interface declared via {IERC165}.\n Note that these functions return the actual result of the query: they do not\n `revert` if an interface is not supported. It is up to the caller to decide\n what to do in these cases."},"fullyImplemented":true,"linearizedBaseContracts":[52777],"name":"ERC165Checker","nameLocation":"457:13:65","scope":52778,"usedErrors":[]}],"license":"MIT"},"id":65}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"449:4414:65:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;449:4414:65;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"449:4414:65:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library used to query support of an interface declared via {IERC165}. Note that these functions return the actual result of the query: they do not `revert` if an interface is not supported. It is up to the caller to decide what to do in these cases.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":\"ERC165Checker\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":"ERC165Checker"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Library used to query support of an interface declared via {IERC165}. Note that these functions return the actual result of the query: they do not `revert` if an interface is not supported. It is up to the caller to decide what to do in these cases."},"id":65}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":\"ERC165Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":"ERC165Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":47652,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol","id":47654,"exportedSymbols":{"AddressUpgradeable":[46803],"ERC165Upgradeable":[47653],"IERC165Upgradeable":[47665],"Initializable":[45457]},"nodeType":"SourceUnit","src":"99:1421:36","nodes":[{"id":47611,"nodeType":"PragmaDirective","src":"99:23:36","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47612,"nodeType":"ImportDirective","src":"124:34:36","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol","file":"./IERC165Upgradeable.sol","nameLocation":"-1:-1:-1","scope":47654,"sourceUnit":47666,"symbolAliases":[],"unitAlias":""},{"id":47613,"nodeType":"ImportDirective","src":"159:45:36","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":47654,"sourceUnit":45458,"symbolAliases":[],"unitAlias":""},{"id":47653,"nodeType":"ContractDefinition","src":"783:736:36","nodes":[{"id":47624,"nodeType":"FunctionDefinition","src":"862:58:36","nodes":[],"body":{"id":47623,"nodeType":"Block","src":"913:7:36","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":47621,"kind":"modifierInvocation","modifierName":{"id":47620,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":45420,"src":"896:16:36"},"nodeType":"ModifierInvocation","src":"896:16:36"}],"name":"__ERC165_init","nameLocation":"871:13:36","parameters":{"id":47619,"nodeType":"ParameterList","parameters":[],"src":"884:2:36"},"returnParameters":{"id":47622,"nodeType":"ParameterList","parameters":[],"src":"913:0:36"},"scope":47653,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47630,"nodeType":"FunctionDefinition","src":"926:68:36","nodes":[],"body":{"id":47629,"nodeType":"Block","src":"987:7:36","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":47627,"kind":"modifierInvocation","modifierName":{"id":47626,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":45420,"src":"970:16:36"},"nodeType":"ModifierInvocation","src":"970:16:36"}],"name":"__ERC165_init_unchained","nameLocation":"935:23:36","parameters":{"id":47625,"nodeType":"ParameterList","parameters":[],"src":"958:2:36"},"returnParameters":{"id":47628,"nodeType":"ParameterList","parameters":[],"src":"987:0:36"},"scope":47653,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47647,"nodeType":"FunctionDefinition","src":"1060:166:36","nodes":[],"body":{"id":47646,"nodeType":"Block","src":"1151:75:36","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":47644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47639,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47633,"src":"1168:11:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":47641,"name":"IERC165Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47665,"src":"1188:18:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165Upgradeable_$47665_$","typeString":"type(contract IERC165Upgradeable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165Upgradeable_$47665_$","typeString":"type(contract IERC165Upgradeable)"}],"id":47640,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1183:4:36","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":47642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1183:24:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165Upgradeable_$47665","typeString":"type(contract IERC165Upgradeable)"}},"id":47643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1183:36:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1168:51:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":47638,"id":47645,"nodeType":"Return","src":"1161:58:36"}]},"baseFunctions":[47664],"documentation":{"id":47631,"nodeType":"StructuredDocumentation","src":"999:56:36","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1069:17:36","overrides":{"id":47635,"nodeType":"OverrideSpecifier","overrides":[],"src":"1127:8:36"},"parameters":{"id":47634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47633,"mutability":"mutable","name":"interfaceId","nameLocation":"1094:11:36","nodeType":"VariableDeclaration","scope":47647,"src":"1087:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":47632,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1087:6:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1086:20:36"},"returnParameters":{"id":47638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47647,"src":"1145:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47636,"name":"bool","nodeType":"ElementaryTypeName","src":"1145:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1144:6:36"},"scope":47653,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47652,"nodeType":"VariableDeclaration","src":"1491:25:36","nodes":[],"constant":false,"documentation":{"id":47648,"nodeType":"StructuredDocumentation","src":"1232:254:36","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"mutability":"mutable","name":"__gap","nameLocation":"1511:5:36","scope":47653,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":47649,"name":"uint256","nodeType":"ElementaryTypeName","src":"1491:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47651,"length":{"hexValue":"3530","id":47650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1499:2:36","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1491:11:36","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"abstract":true,"baseContracts":[{"baseName":{"id":47615,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":45457,"src":"822:13:36"},"id":47616,"nodeType":"InheritanceSpecifier","src":"822:13:36"},{"baseName":{"id":47617,"name":"IERC165Upgradeable","nodeType":"IdentifierPath","referencedDeclaration":47665,"src":"837:18:36"},"id":47618,"nodeType":"InheritanceSpecifier","src":"837:18:36"}],"canonicalName":"ERC165Upgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":47614,"nodeType":"StructuredDocumentation","src":"206:576:36","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"linearizedBaseContracts":[47653,47665,45457],"name":"ERC165Upgradeable","nameLocation":"801:17:36","scope":47654,"usedErrors":[]}],"license":"MIT"},"id":36}
{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":\"ERC165Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":"ERC165Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":47652,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}}},"id":36}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys `amount` tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":\"ERC20Burnable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f\",\"dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys `amount` tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol":"ERC20Burnable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"keccak256":"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b","urls":["bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f","dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":48077,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":48083,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":48085,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":48087,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":48089,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys `amount` tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol","id":48770,"exportedSymbols":{"Context":[51634],"ERC20":[48647],"ERC20Burnable":[48769],"IERC20":[48725],"IERC20Metadata":[49431]},"nodeType":"SourceUnit","src":"124:1013:45","nodes":[{"id":48727,"nodeType":"PragmaDirective","src":"124:23:45","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48728,"nodeType":"ImportDirective","src":"149:22:45","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"../ERC20.sol","nameLocation":"-1:-1:-1","scope":48770,"sourceUnit":48648,"symbolAliases":[],"unitAlias":""},{"id":48729,"nodeType":"ImportDirective","src":"172:36:45","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../../../utils/Context.sol","nameLocation":"-1:-1:-1","scope":48770,"sourceUnit":51635,"symbolAliases":[],"unitAlias":""},{"id":48769,"nodeType":"ContractDefinition","src":"419:717:45","nodes":[{"id":48747,"nodeType":"FunctionDefinition","src":"578:89:45","nodes":[],"body":{"id":48746,"nodeType":"Block","src":"623:44:45","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":48741,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51624,"src":"639:10:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":48742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"639:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48743,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48737,"src":"653:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48740,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48536,"src":"633:5:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":48744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"633:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48745,"nodeType":"ExpressionStatement","src":"633:27:45"}]},"documentation":{"id":48735,"nodeType":"StructuredDocumentation","src":"475:98:45","text":" @dev Destroys `amount` tokens from the caller.\n See {ERC20-_burn}."},"functionSelector":"42966c68","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"587:4:45","parameters":{"id":48738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48737,"mutability":"mutable","name":"amount","nameLocation":"600:6:45","nodeType":"VariableDeclaration","scope":48747,"src":"592:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48736,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"591:16:45"},"returnParameters":{"id":48739,"nodeType":"ParameterList","parameters":[],"src":"623:0:45"},"scope":48769,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":48768,"nodeType":"FunctionDefinition","src":"973:161:45","nodes":[],"body":{"id":48767,"nodeType":"Block","src":"1039:95:45","nodes":[],"statements":[{"expression":{"arguments":[{"id":48756,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48750,"src":"1065:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":48757,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51624,"src":"1074:10:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":48758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1074:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48759,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48752,"src":"1088:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48755,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48624,"src":"1049:15:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":48760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1049:46:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48761,"nodeType":"ExpressionStatement","src":"1049:46:45"},{"expression":{"arguments":[{"id":48763,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48750,"src":"1111:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48764,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48752,"src":"1120:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48762,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48536,"src":"1105:5:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":48765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1105:22:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48766,"nodeType":"ExpressionStatement","src":"1105:22:45"}]},"documentation":{"id":48748,"nodeType":"StructuredDocumentation","src":"673:295:45","text":" @dev Destroys `amount` tokens from `account`, deducting from the caller's\n allowance.\n See {ERC20-_burn} and {ERC20-allowance}.\n Requirements:\n - the caller must have allowance for ``accounts``'s tokens of at least\n `amount`."},"functionSelector":"79cc6790","implemented":true,"kind":"function","modifiers":[],"name":"burnFrom","nameLocation":"982:8:45","parameters":{"id":48753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48750,"mutability":"mutable","name":"account","nameLocation":"999:7:45","nodeType":"VariableDeclaration","scope":48768,"src":"991:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48749,"name":"address","nodeType":"ElementaryTypeName","src":"991:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48752,"mutability":"mutable","name":"amount","nameLocation":"1016:6:45","nodeType":"VariableDeclaration","scope":48768,"src":"1008:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48751,"name":"uint256","nodeType":"ElementaryTypeName","src":"1008:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"990:33:45"},"returnParameters":{"id":48754,"nodeType":"ParameterList","parameters":[],"src":"1039:0:45"},"scope":48769,"stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":48731,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":51634,"src":"454:7:45"},"id":48732,"nodeType":"InheritanceSpecifier","src":"454:7:45"},{"baseName":{"id":48733,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":48647,"src":"463:5:45"},"id":48734,"nodeType":"InheritanceSpecifier","src":"463:5:45"}],"canonicalName":"ERC20Burnable","contractDependencies":[],"contractKind":"contract","documentation":{"id":48730,"nodeType":"StructuredDocumentation","src":"210:208:45","text":" @dev Extension of {ERC20} that allows token holders to destroy both their own\n tokens and those that they have an allowance for, in a way that can be\n recognized off-chain (via event analysis)."},"fullyImplemented":false,"linearizedBaseContracts":[48769,48647,49431,48725,51634],"name":"ERC20Burnable","nameLocation":"437:13:45","scope":48770,"usedErrors":[]}],"license":"MIT"},"id":45}
{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys `amount` tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":\"ERC20Burnable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f\",\"dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys `amount` tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol":"ERC20Burnable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"keccak256":"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b","urls":["bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f","dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":48077,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":48083,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":48085,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":48087,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":48089,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys `amount` tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}}},"id":45}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 Token that can be burned (destroyed).\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"ERC721 Burnable Token\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol\":\"ERC721BurnableUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x5331c8909221d9f9f3851cfadd5959d0873413a2c27e30e0f2fa234158c1c6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31c7d52f47a9174e236c0402654f42c16516c58c6851862f3bcb1b440b873498\",\"dweb:/ipfs/QmZQqiofa8jPJCCAfWyjNnBuoGXrR56Ct4HyW4ugRWfvCb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol\":{\"keccak256\":\"0xa7dbff7171ac06a023a5ca52c2138ac711037b2146b9197a52e5de4f9183e04d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77dec5f0117e876e485db228ec24a29b0e8215bf94762bfcc80fec670c5fad97\",\"dweb:/ipfs/Qmf1iZ7jqNWgGFs5zwrKVinZ8RsCZjzufqhE7zDnEgam5x\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"burn(uint256)":{"details":"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol":"ERC721BurnableUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol":{"keccak256":"0x5331c8909221d9f9f3851cfadd5959d0873413a2c27e30e0f2fa234158c1c6cf","urls":["bzz-raw://31c7d52f47a9174e236c0402654f42c16516c58c6851862f3bcb1b440b873498","dweb:/ipfs/QmZQqiofa8jPJCCAfWyjNnBuoGXrR56Ct4HyW4ugRWfvCb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":{"keccak256":"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5","urls":["bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a","dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol":{"keccak256":"0xa7dbff7171ac06a023a5ca52c2138ac711037b2146b9197a52e5de4f9183e04d","urls":["bzz-raw://77dec5f0117e876e485db228ec24a29b0e8215bf94762bfcc80fec670c5fad97","dweb:/ipfs/Qmf1iZ7jqNWgGFs5zwrKVinZ8RsCZjzufqhE7zDnEgam5x"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"keccak256":"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70","urls":["bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3","dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":46844,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":47652,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":45486,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_name","offset":0,"slot":"101","type":"t_string_storage"},{"astId":45488,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_symbol","offset":0,"slot":"102","type":"t_string_storage"},{"astId":45492,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_owners","offset":0,"slot":"103","type":"t_mapping(t_uint256,t_address)"},{"astId":45496,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_balances","offset":0,"slot":"104","type":"t_mapping(t_address,t_uint256)"},{"astId":45500,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_tokenApprovals","offset":0,"slot":"105","type":"t_mapping(t_uint256,t_address)"},{"astId":45506,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_operatorApprovals","offset":0,"slot":"106","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":46348,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"107","type":"t_array(t_uint256)44_storage"},{"astId":46532,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"151","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"ERC721 Token that can be burned (destroyed).","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"burn(uint256)":{"details":"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"title":"ERC721 Burnable Token"},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol","id":46534,"exportedSymbols":{"AddressUpgradeable":[46803],"ContextUpgradeable":[46845],"ERC165Upgradeable":[47653],"ERC721BurnableUpgradeable":[46533],"ERC721Upgradeable":[46349],"IERC165Upgradeable":[47665],"IERC721MetadataUpgradeable":[46560],"IERC721ReceiverUpgradeable":[46367],"IERC721Upgradeable":[46483],"Initializable":[45457],"StringsUpgradeable":[47071]},"nodeType":"SourceUnit","src":"126:1210:29","nodes":[{"id":46485,"nodeType":"PragmaDirective","src":"126:23:29","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":46486,"nodeType":"ImportDirective","src":"151:34:29","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol","file":"../ERC721Upgradeable.sol","nameLocation":"-1:-1:-1","scope":46534,"sourceUnit":46350,"symbolAliases":[],"unitAlias":""},{"id":46487,"nodeType":"ImportDirective","src":"186:47:29","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","file":"../../../utils/ContextUpgradeable.sol","nameLocation":"-1:-1:-1","scope":46534,"sourceUnit":46846,"symbolAliases":[],"unitAlias":""},{"id":46488,"nodeType":"ImportDirective","src":"234:48:29","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"../../../proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":46534,"sourceUnit":45458,"symbolAliases":[],"unitAlias":""},{"id":46533,"nodeType":"ContractDefinition","src":"377:958:29","nodes":[{"id":46501,"nodeType":"FunctionDefinition","src":"483:66:29","nodes":[],"body":{"id":46500,"nodeType":"Block","src":"542:7:29","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":46498,"kind":"modifierInvocation","modifierName":{"id":46497,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":45420,"src":"525:16:29"},"nodeType":"ModifierInvocation","src":"525:16:29"}],"name":"__ERC721Burnable_init","nameLocation":"492:21:29","parameters":{"id":46496,"nodeType":"ParameterList","parameters":[],"src":"513:2:29"},"returnParameters":{"id":46499,"nodeType":"ParameterList","parameters":[],"src":"542:0:29"},"scope":46533,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46507,"nodeType":"FunctionDefinition","src":"555:76:29","nodes":[],"body":{"id":46506,"nodeType":"Block","src":"624:7:29","nodes":[],"statements":[]},"implemented":true,"kind":"function","modifiers":[{"id":46504,"kind":"modifierInvocation","modifierName":{"id":46503,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":45420,"src":"607:16:29"},"nodeType":"ModifierInvocation","src":"607:16:29"}],"name":"__ERC721Burnable_init_unchained","nameLocation":"564:31:29","parameters":{"id":46502,"nodeType":"ParameterList","parameters":[],"src":"595:2:29"},"returnParameters":{"id":46505,"nodeType":"ParameterList","parameters":[],"src":"624:0:29"},"scope":46533,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46527,"nodeType":"FunctionDefinition","src":"803:239:29","nodes":[],"body":{"id":46526,"nodeType":"Block","src":"849:193:29","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":46515,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46830,"src":"938:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":46516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"938:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46517,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46510,"src":"952:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46514,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45944,"src":"919:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":46518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"919:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564","id":46519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"962:48:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""},"value":"ERC721: caller is not token owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""}],"id":46513,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"911:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":46520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"911:100:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46521,"nodeType":"ExpressionStatement","src":"911:100:29"},{"expression":{"arguments":[{"id":46523,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46510,"src":"1027:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46522,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46114,"src":"1021:5:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":46524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1021:14:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46525,"nodeType":"ExpressionStatement","src":"1021:14:29"}]},"documentation":{"id":46508,"nodeType":"StructuredDocumentation","src":"636:162:29","text":" @dev Burns `tokenId`. See {ERC721-_burn}.\n Requirements:\n - The caller must own `tokenId` or be an approved operator."},"functionSelector":"42966c68","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"812:4:29","parameters":{"id":46511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46510,"mutability":"mutable","name":"tokenId","nameLocation":"825:7:29","nodeType":"VariableDeclaration","scope":46527,"src":"817:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46509,"name":"uint256","nodeType":"ElementaryTypeName","src":"817:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"816:17:29"},"returnParameters":{"id":46512,"nodeType":"ParameterList","parameters":[],"src":"849:0:29"},"scope":46533,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":46532,"nodeType":"VariableDeclaration","src":"1307:25:29","nodes":[],"constant":false,"documentation":{"id":46528,"nodeType":"StructuredDocumentation","src":"1048:254:29","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"mutability":"mutable","name":"__gap","nameLocation":"1327:5:29","scope":46533,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":46529,"name":"uint256","nodeType":"ElementaryTypeName","src":"1307:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46531,"length":{"hexValue":"3530","id":46530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1315:2:29","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1307:11:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"abstract":true,"baseContracts":[{"baseName":{"id":46490,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":45457,"src":"424:13:29"},"id":46491,"nodeType":"InheritanceSpecifier","src":"424:13:29"},{"baseName":{"id":46492,"name":"ContextUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":46845,"src":"439:18:29"},"id":46493,"nodeType":"InheritanceSpecifier","src":"439:18:29"},{"baseName":{"id":46494,"name":"ERC721Upgradeable","nodeType":"IdentifierPath","referencedDeclaration":46349,"src":"459:17:29"},"id":46495,"nodeType":"InheritanceSpecifier","src":"459:17:29"}],"canonicalName":"ERC721BurnableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":46489,"nodeType":"StructuredDocumentation","src":"284:92:29","text":" @title ERC721 Burnable Token\n @dev ERC721 Token that can be burned (destroyed)."},"fullyImplemented":true,"linearizedBaseContracts":[46533,46349,46560,46483,47653,47665,46845,45457],"name":"ERC721BurnableUpgradeable","nameLocation":"395:25:29","scope":46534,"usedErrors":[]}],"license":"MIT"},"id":29}
{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 Token that can be burned (destroyed).\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"ERC721 Burnable Token\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol\":\"ERC721BurnableUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x5331c8909221d9f9f3851cfadd5959d0873413a2c27e30e0f2fa234158c1c6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31c7d52f47a9174e236c0402654f42c16516c58c6851862f3bcb1b440b873498\",\"dweb:/ipfs/QmZQqiofa8jPJCCAfWyjNnBuoGXrR56Ct4HyW4ugRWfvCb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol\":{\"keccak256\":\"0xa7dbff7171ac06a023a5ca52c2138ac711037b2146b9197a52e5de4f9183e04d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77dec5f0117e876e485db228ec24a29b0e8215bf94762bfcc80fec670c5fad97\",\"dweb:/ipfs/Qmf1iZ7jqNWgGFs5zwrKVinZ8RsCZjzufqhE7zDnEgam5x\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"burn(uint256)":{"details":"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol":"ERC721BurnableUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol":{"keccak256":"0x5331c8909221d9f9f3851cfadd5959d0873413a2c27e30e0f2fa234158c1c6cf","urls":["bzz-raw://31c7d52f47a9174e236c0402654f42c16516c58c6851862f3bcb1b440b873498","dweb:/ipfs/QmZQqiofa8jPJCCAfWyjNnBuoGXrR56Ct4HyW4ugRWfvCb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":{"keccak256":"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5","urls":["bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a","dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol":{"keccak256":"0xa7dbff7171ac06a023a5ca52c2138ac711037b2146b9197a52e5de4f9183e04d","urls":["bzz-raw://77dec5f0117e876e485db228ec24a29b0e8215bf94762bfcc80fec670c5fad97","dweb:/ipfs/Qmf1iZ7jqNWgGFs5zwrKVinZ8RsCZjzufqhE7zDnEgam5x"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"keccak256":"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70","urls":["bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3","dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":46844,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":47652,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":45486,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_name","offset":0,"slot":"101","type":"t_string_storage"},{"astId":45488,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_symbol","offset":0,"slot":"102","type":"t_string_storage"},{"astId":45492,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_owners","offset":0,"slot":"103","type":"t_mapping(t_uint256,t_address)"},{"astId":45496,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_balances","offset":0,"slot":"104","type":"t_mapping(t_address,t_uint256)"},{"astId":45500,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_tokenApprovals","offset":0,"slot":"105","type":"t_mapping(t_uint256,t_address)"},{"astId":45506,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"_operatorApprovals","offset":0,"slot":"106","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":46348,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"107","type":"t_array(t_uint256)44_storage"},{"astId":46532,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol:ERC721BurnableUpgradeable","label":"__gap","offset":0,"slot":"151","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"ERC721 Token that can be burned (destroyed).","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"burn(uint256)":{"details":"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"title":"ERC721 Burnable Token"},"id":29}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Note: the ERC-165 identifier for this interface is 0x150b7a02.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"The ERC721 smart contract calls this function on the recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted. Note: the contract address is always the message sender.\",\"params\":{\"_data\":\"Additional data with no specified format.\",\"_from\":\"The address which previously owned the token.\",\"_operator\":\"The address which called `safeTransferFrom` function.\",\"_tokenId\":\"The NFT identifier which is being transferred.\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`. unless throwing\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"notice\":\"Handle the receipt of an NFT\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/ERC721TokenReceiver.sol\":\"ERC721TokenReceiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/ERC721TokenReceiver.sol\":{\"keccak256\":\"0x96c4c5457fede2d4c6012011dfda36f8e8ffdb7388468f2dddb35661538bf479\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://99a54737bc23722f79ec9cf9de63ba35b556a61df453eb332f3cac783503f26c\",\"dweb:/ipfs/QmbLW5C2RhoLbwDWEPtTKpyYE5apT9B3q4U11PZG3wSM1n\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"The ERC721 smart contract calls this function on the recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted. Note: the contract address is always the message sender.","params":{"_data":"Additional data with no specified format.","_from":"The address which previously owned the token.","_operator":"The address which called `safeTransferFrom` function.","_tokenId":"The NFT identifier which is being transferred."},"returns":{"_0":"`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`. unless throwing"}}},"version":1},"userdoc":{"kind":"user","methods":{"onERC721Received(address,address,uint256,bytes)":{"notice":"Handle the receipt of an NFT"}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/ERC721TokenReceiver.sol":"ERC721TokenReceiver"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/ERC721TokenReceiver.sol":{"keccak256":"0x96c4c5457fede2d4c6012011dfda36f8e8ffdb7388468f2dddb35661538bf479","urls":["bzz-raw://99a54737bc23722f79ec9cf9de63ba35b556a61df453eb332f3cac783503f26c","dweb:/ipfs/QmbLW5C2RhoLbwDWEPtTKpyYE5apT9B3q4U11PZG3wSM1n"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"onERC721Received(address,address,uint256,bytes)":{"notice":"Handle the receipt of an NFT"}}},"devdoc":{"version":1,"kind":"dev","details":"Note: the ERC-165 identifier for this interface is 0x150b7a02.","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"The ERC721 smart contract calls this function on the recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted. Note: the contract address is always the message sender.","params":{"_data":"Additional data with no specified format.","_from":"The address which previously owned the token.","_operator":"The address which called `safeTransferFrom` function.","_tokenId":"The NFT identifier which is being transferred."},"returns":{"_0":"`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`. unless throwing"}}}},"ast":{"absolutePath":"lib/safe-contracts/contracts/interfaces/ERC721TokenReceiver.sol","id":58242,"exportedSymbols":{"ERC721TokenReceiver":[58241]},"nodeType":"SourceUnit","src":"42:1044:86","nodes":[{"id":58225,"nodeType":"PragmaDirective","src":"42:31:86","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58241,"nodeType":"ContractDefinition","src":"147:938:86","nodes":[{"id":58240,"nodeType":"FunctionDefinition","src":"957:126:86","nodes":[],"documentation":{"id":58227,"nodeType":"StructuredDocumentation","src":"183:769:86","text":" @notice Handle the receipt of an NFT\n @dev The ERC721 smart contract calls this function on the recipient\n after a `transfer`. This function MAY throw to revert and reject the\n transfer. Return of other than the magic value MUST result in the\n transaction being reverted.\n Note: the contract address is always the message sender.\n @param _operator The address which called `safeTransferFrom` function.\n @param _from The address which previously owned the token.\n @param _tokenId The NFT identifier which is being transferred.\n @param _data Additional data with no specified format.\n @return `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.\n unless throwing"},"functionSelector":"150b7a02","implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"966:16:86","parameters":{"id":58236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58229,"mutability":"mutable","name":"_operator","nameLocation":"991:9:86","nodeType":"VariableDeclaration","scope":58240,"src":"983:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58228,"name":"address","nodeType":"ElementaryTypeName","src":"983:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58231,"mutability":"mutable","name":"_from","nameLocation":"1010:5:86","nodeType":"VariableDeclaration","scope":58240,"src":"1002:13:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58230,"name":"address","nodeType":"ElementaryTypeName","src":"1002:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58233,"mutability":"mutable","name":"_tokenId","nameLocation":"1025:8:86","nodeType":"VariableDeclaration","scope":58240,"src":"1017:16:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58232,"name":"uint256","nodeType":"ElementaryTypeName","src":"1017:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58235,"mutability":"mutable","name":"_data","nameLocation":"1050:5:86","nodeType":"VariableDeclaration","scope":58240,"src":"1035:20:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":58234,"name":"bytes","nodeType":"ElementaryTypeName","src":"1035:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"982:74:86"},"returnParameters":{"id":58239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58238,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58240,"src":"1075:6:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":58237,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1075:6:86","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1074:8:86"},"scope":58241,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ERC721TokenReceiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":58226,"nodeType":"StructuredDocumentation","src":"75:72:86","text":"@dev Note: the ERC-165 identifier for this interface is 0x150b7a02."},"fullyImplemented":false,"linearizedBaseContracts":[58241],"name":"ERC721TokenReceiver","nameLocation":"157:19:86","scope":58242,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":86}
{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Note: the ERC-165 identifier for this interface is 0x150b7a02.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"The ERC721 smart contract calls this function on the recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted. Note: the contract address is always the message sender.\",\"params\":{\"_data\":\"Additional data with no specified format.\",\"_from\":\"The address which previously owned the token.\",\"_operator\":\"The address which called `safeTransferFrom` function.\",\"_tokenId\":\"The NFT identifier which is being transferred.\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`. unless throwing\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"notice\":\"Handle the receipt of an NFT\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/ERC721TokenReceiver.sol\":\"ERC721TokenReceiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/ERC721TokenReceiver.sol\":{\"keccak256\":\"0x96c4c5457fede2d4c6012011dfda36f8e8ffdb7388468f2dddb35661538bf479\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://99a54737bc23722f79ec9cf9de63ba35b556a61df453eb332f3cac783503f26c\",\"dweb:/ipfs/QmbLW5C2RhoLbwDWEPtTKpyYE5apT9B3q4U11PZG3wSM1n\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"The ERC721 smart contract calls this function on the recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted. Note: the contract address is always the message sender.","params":{"_data":"Additional data with no specified format.","_from":"The address which previously owned the token.","_operator":"The address which called `safeTransferFrom` function.","_tokenId":"The NFT identifier which is being transferred."},"returns":{"_0":"`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`. unless throwing"}}},"version":1},"userdoc":{"kind":"user","methods":{"onERC721Received(address,address,uint256,bytes)":{"notice":"Handle the receipt of an NFT"}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/ERC721TokenReceiver.sol":"ERC721TokenReceiver"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/ERC721TokenReceiver.sol":{"keccak256":"0x96c4c5457fede2d4c6012011dfda36f8e8ffdb7388468f2dddb35661538bf479","urls":["bzz-raw://99a54737bc23722f79ec9cf9de63ba35b556a61df453eb332f3cac783503f26c","dweb:/ipfs/QmbLW5C2RhoLbwDWEPtTKpyYE5apT9B3q4U11PZG3wSM1n"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"onERC721Received(address,address,uint256,bytes)":{"notice":"Handle the receipt of an NFT"}}},"devdoc":{"version":1,"kind":"dev","details":"Note: the ERC-165 identifier for this interface is 0x150b7a02.","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"The ERC721 smart contract calls this function on the recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted. Note: the contract address is always the message sender.","params":{"_data":"Additional data with no specified format.","_from":"The address which previously owned the token.","_operator":"The address which called `safeTransferFrom` function.","_tokenId":"The NFT identifier which is being transferred."},"returns":{"_0":"`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`. unless throwing"}}}},"id":86}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"tokensReceived","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operatorData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"tokensReceived(address,address,address,uint256,bytes,bytes)":"0023de29"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"operatorData\",\"type\":\"bytes\"}],\"name\":\"tokensReceived\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for contracts that will be called with the ERC777 token's `tokensReceived` method. The contract receiving the tokens must implement this interface in order to receive the tokens.\",\"kind\":\"dev\",\"methods\":{\"tokensReceived(address,address,address,uint256,bytes,bytes)\":{\"details\":\"Called by the ERC777 token contract after a successful transfer or a minting operation.\",\"params\":{\"amount\":\"The amount of tokens that were transferred or minted.\",\"data\":\"Additional data that was passed during the transfer or minting operation.\",\"from\":\"The address of the sender.\",\"operator\":\"The address of the operator performing the transfer or minting operation.\",\"operatorData\":\"Additional data that was passed by the operator during the transfer or minting operation.\",\"to\":\"The address of the recipient.\"}}},\"title\":\"ERC777TokensRecipient\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/ERC777TokensRecipient.sol\":\"ERC777TokensRecipient\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/ERC777TokensRecipient.sol\":{\"keccak256\":\"0x32ca7f1610659f35e52f5a989e1d844b7847ad57fab06e0cae5bc027248536ac\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://9082896ec697e320087b1a682b69a5cdf71b33a2f7a956e2fb6054f9f9d56d06\",\"dweb:/ipfs/QmUu7iNkQNvvqBPbbxuhqiQpYPYYnfsyPEsf4AMQFANXFZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"operatorData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"tokensReceived"}],"devdoc":{"kind":"dev","methods":{"tokensReceived(address,address,address,uint256,bytes,bytes)":{"details":"Called by the ERC777 token contract after a successful transfer or a minting operation.","params":{"amount":"The amount of tokens that were transferred or minted.","data":"Additional data that was passed during the transfer or minting operation.","from":"The address of the sender.","operator":"The address of the operator performing the transfer or minting operation.","operatorData":"Additional data that was passed by the operator during the transfer or minting operation.","to":"The address of the recipient."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/ERC777TokensRecipient.sol":"ERC777TokensRecipient"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/ERC777TokensRecipient.sol":{"keccak256":"0x32ca7f1610659f35e52f5a989e1d844b7847ad57fab06e0cae5bc027248536ac","urls":["bzz-raw://9082896ec697e320087b1a682b69a5cdf71b33a2f7a956e2fb6054f9f9d56d06","dweb:/ipfs/QmUu7iNkQNvvqBPbbxuhqiQpYPYYnfsyPEsf4AMQFANXFZ"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for contracts that will be called with the ERC777 token's `tokensReceived` method. The contract receiving the tokens must implement this interface in order to receive the tokens.","methods":{"tokensReceived(address,address,address,uint256,bytes,bytes)":{"details":"Called by the ERC777 token contract after a successful transfer or a minting operation.","params":{"amount":"The amount of tokens that were transferred or minted.","data":"Additional data that was passed during the transfer or minting operation.","from":"The address of the sender.","operator":"The address of the operator performing the transfer or minting operation.","operatorData":"Additional data that was passed by the operator during the transfer or minting operation.","to":"The address of the recipient."}}},"title":"ERC777TokensRecipient"},"ast":{"absolutePath":"lib/safe-contracts/contracts/interfaces/ERC777TokensRecipient.sol","id":58262,"exportedSymbols":{"ERC777TokensRecipient":[58261]},"nodeType":"SourceUnit","src":"42:1102:87","nodes":[{"id":58243,"nodeType":"PragmaDirective","src":"42:31:87","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58261,"nodeType":"ContractDefinition","src":"315:828:87","nodes":[{"id":58260,"nodeType":"FunctionDefinition","src":"944:197:87","nodes":[],"documentation":{"id":58245,"nodeType":"StructuredDocumentation","src":"353:586:87","text":" @dev Called by the ERC777 token contract after a successful transfer or a minting operation.\n @param operator The address of the operator performing the transfer or minting operation.\n @param from The address of the sender.\n @param to The address of the recipient.\n @param amount The amount of tokens that were transferred or minted.\n @param data Additional data that was passed during the transfer or minting operation.\n @param operatorData Additional data that was passed by the operator during the transfer or minting operation."},"functionSelector":"0023de29","implemented":false,"kind":"function","modifiers":[],"name":"tokensReceived","nameLocation":"953:14:87","parameters":{"id":58258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58247,"mutability":"mutable","name":"operator","nameLocation":"985:8:87","nodeType":"VariableDeclaration","scope":58260,"src":"977:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58246,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58249,"mutability":"mutable","name":"from","nameLocation":"1011:4:87","nodeType":"VariableDeclaration","scope":58260,"src":"1003:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58248,"name":"address","nodeType":"ElementaryTypeName","src":"1003:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58251,"mutability":"mutable","name":"to","nameLocation":"1033:2:87","nodeType":"VariableDeclaration","scope":58260,"src":"1025:10:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58250,"name":"address","nodeType":"ElementaryTypeName","src":"1025:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58253,"mutability":"mutable","name":"amount","nameLocation":"1053:6:87","nodeType":"VariableDeclaration","scope":58260,"src":"1045:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58252,"name":"uint256","nodeType":"ElementaryTypeName","src":"1045:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58255,"mutability":"mutable","name":"data","nameLocation":"1084:4:87","nodeType":"VariableDeclaration","scope":58260,"src":"1069:19:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":58254,"name":"bytes","nodeType":"ElementaryTypeName","src":"1069:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":58257,"mutability":"mutable","name":"operatorData","nameLocation":"1113:12:87","nodeType":"VariableDeclaration","scope":58260,"src":"1098:27:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":58256,"name":"bytes","nodeType":"ElementaryTypeName","src":"1098:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"967:164:87"},"returnParameters":{"id":58259,"nodeType":"ParameterList","parameters":[],"src":"1140:0:87"},"scope":58261,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ERC777TokensRecipient","contractDependencies":[],"contractKind":"interface","documentation":{"id":58244,"nodeType":"StructuredDocumentation","src":"75:239:87","text":" @title ERC777TokensRecipient\n @dev Interface for contracts that will be called with the ERC777 token's `tokensReceived` method.\n The contract receiving the tokens must implement this interface in order to receive the tokens."},"fullyImplemented":false,"linearizedBaseContracts":[58261],"name":"ERC777TokensRecipient","nameLocation":"325:21:87","scope":58262,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":87}
{"abi":[{"type":"function","name":"tokensReceived","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operatorData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"tokensReceived(address,address,address,uint256,bytes,bytes)":"0023de29"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"operatorData\",\"type\":\"bytes\"}],\"name\":\"tokensReceived\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for contracts that will be called with the ERC777 token's `tokensReceived` method. The contract receiving the tokens must implement this interface in order to receive the tokens.\",\"kind\":\"dev\",\"methods\":{\"tokensReceived(address,address,address,uint256,bytes,bytes)\":{\"details\":\"Called by the ERC777 token contract after a successful transfer or a minting operation.\",\"params\":{\"amount\":\"The amount of tokens that were transferred or minted.\",\"data\":\"Additional data that was passed during the transfer or minting operation.\",\"from\":\"The address of the sender.\",\"operator\":\"The address of the operator performing the transfer or minting operation.\",\"operatorData\":\"Additional data that was passed by the operator during the transfer or minting operation.\",\"to\":\"The address of the recipient.\"}}},\"title\":\"ERC777TokensRecipient\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/ERC777TokensRecipient.sol\":\"ERC777TokensRecipient\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/ERC777TokensRecipient.sol\":{\"keccak256\":\"0x32ca7f1610659f35e52f5a989e1d844b7847ad57fab06e0cae5bc027248536ac\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://9082896ec697e320087b1a682b69a5cdf71b33a2f7a956e2fb6054f9f9d56d06\",\"dweb:/ipfs/QmUu7iNkQNvvqBPbbxuhqiQpYPYYnfsyPEsf4AMQFANXFZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"operatorData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"tokensReceived"}],"devdoc":{"kind":"dev","methods":{"tokensReceived(address,address,address,uint256,bytes,bytes)":{"details":"Called by the ERC777 token contract after a successful transfer or a minting operation.","params":{"amount":"The amount of tokens that were transferred or minted.","data":"Additional data that was passed during the transfer or minting operation.","from":"The address of the sender.","operator":"The address of the operator performing the transfer or minting operation.","operatorData":"Additional data that was passed by the operator during the transfer or minting operation.","to":"The address of the recipient."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/ERC777TokensRecipient.sol":"ERC777TokensRecipient"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/ERC777TokensRecipient.sol":{"keccak256":"0x32ca7f1610659f35e52f5a989e1d844b7847ad57fab06e0cae5bc027248536ac","urls":["bzz-raw://9082896ec697e320087b1a682b69a5cdf71b33a2f7a956e2fb6054f9f9d56d06","dweb:/ipfs/QmUu7iNkQNvvqBPbbxuhqiQpYPYYnfsyPEsf4AMQFANXFZ"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for contracts that will be called with the ERC777 token's `tokensReceived` method. The contract receiving the tokens must implement this interface in order to receive the tokens.","methods":{"tokensReceived(address,address,address,uint256,bytes,bytes)":{"details":"Called by the ERC777 token contract after a successful transfer or a minting operation.","params":{"amount":"The amount of tokens that were transferred or minted.","data":"Additional data that was passed during the transfer or minting operation.","from":"The address of the sender.","operator":"The address of the operator performing the transfer or minting operation.","operatorData":"Additional data that was passed by the operator during the transfer or minting operation.","to":"The address of the recipient."}}},"title":"ERC777TokensRecipient"},"id":87}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"223:323:109:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;223:323:109;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"223:323:109:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The executables used in ffi commands. These are set here to have a single source of truth in case absolute paths need to be used.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/Executables.sol\":\"Executables\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"scripts/Executables.sol\":{\"keccak256\":\"0x33e4e043cb778a110a5e532170e77894553c8b8e7e93afeafd4ba6fd54d1cbdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ea4f98ff89742f71ab012cf2824d2b51643696e6147d6dda07bc9227a4dd906\",\"dweb:/ipfs/QmQ7avG3hrc3nxS4mu8QkAQWQfrFata3qPJQZD91uYinnp\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/Executables.sol":"Executables"},"evmVersion":"london","libraries":{}},"sources":{"scripts/Executables.sol":{"keccak256":"0x33e4e043cb778a110a5e532170e77894553c8b8e7e93afeafd4ba6fd54d1cbdc","urls":["bzz-raw://1ea4f98ff89742f71ab012cf2824d2b51643696e6147d6dda07bc9227a4dd906","dweb:/ipfs/QmQ7avG3hrc3nxS4mu8QkAQWQfrFata3qPJQZD91uYinnp"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"The executables used in ffi commands. These are set here to have a single source of truth in case absolute paths need to be used."},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"scripts/Executables.sol","id":73738,"exportedSymbols":{"Executables":[73737]},"nodeType":"SourceUnit","src":"32:515:109","nodes":[{"id":73714,"nodeType":"PragmaDirective","src":"32:23:109","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":73737,"nodeType":"ContractDefinition","src":"223:323:109","nodes":[{"id":73718,"nodeType":"VariableDeclaration","src":"249:38:109","nodes":[],"constant":true,"mutability":"constant","name":"bash","nameLocation":"274:4:109","scope":73737,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":73716,"name":"string","nodeType":"ElementaryTypeName","src":"249:6:109","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"62617368","id":73717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"281:6:109","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a20a0a136f9116b8130e31d0d8f14d3b1802506e7c4b809f577c201eb7bf34c","typeString":"literal_string \"bash\""},"value":"bash"},"visibility":"internal"},{"id":73721,"nodeType":"VariableDeclaration","src":"293:34:109","nodes":[],"constant":true,"mutability":"constant","name":"jq","nameLocation":"318:2:109","scope":73737,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":73719,"name":"string","nodeType":"ElementaryTypeName","src":"293:6:109","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6a71","id":73720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"323:4:109","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7ba70b5802a089d7b756425c60df6984d1d6b664c5271de3d69e01b9e5b4f88","typeString":"literal_string \"jq\""},"value":"jq"},"visibility":"internal"},{"id":73724,"nodeType":"VariableDeclaration","src":"333:40:109","nodes":[],"constant":true,"mutability":"constant","name":"forge","nameLocation":"358:5:109","scope":73737,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":73722,"name":"string","nodeType":"ElementaryTypeName","src":"333:6:109","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"666f726765","id":73723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"366:7:109","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4f7998b245301fa1dfc784b03961989df486af3dd1e44f88da79ca40cf5125f","typeString":"literal_string \"forge\""},"value":"forge"},"visibility":"internal"},{"id":73727,"nodeType":"VariableDeclaration","src":"379:38:109","nodes":[],"constant":true,"mutability":"constant","name":"echo","nameLocation":"404:4:109","scope":73737,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":73725,"name":"string","nodeType":"ElementaryTypeName","src":"379:6:109","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6563686f","id":73726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"411:6:109","typeDescriptions":{"typeIdentifier":"t_stringliteral_30aac30d8e1f24996aaf406e85b7281051192346b2dcbea9be2461c29b1bc590","typeString":"literal_string \"echo\""},"value":"echo"},"visibility":"internal"},{"id":73730,"nodeType":"VariableDeclaration","src":"423:36:109","nodes":[],"constant":true,"mutability":"constant","name":"sed","nameLocation":"448:3:109","scope":73737,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":73728,"name":"string","nodeType":"ElementaryTypeName","src":"423:6:109","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"736564","id":73729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"454:5:109","typeDescriptions":{"typeIdentifier":"t_stringliteral_009996d9201949e67e8ffb923b62e4db6851e16a207c040279f84751b6304dc4","typeString":"literal_string \"sed\""},"value":"sed"},"visibility":"internal"},{"id":73733,"nodeType":"VariableDeclaration","src":"465:38:109","nodes":[],"constant":true,"mutability":"constant","name":"find","nameLocation":"490:4:109","scope":73737,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":73731,"name":"string","nodeType":"ElementaryTypeName","src":"465:6:109","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"66696e64","id":73732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"497:6:109","typeDescriptions":{"typeIdentifier":"t_stringliteral_37ba2e6fdaf70af0297971e561fff400bc0e4783638e609d46ed383859ebd5d4","typeString":"literal_string \"find\""},"value":"find"},"visibility":"internal"},{"id":73736,"nodeType":"VariableDeclaration","src":"509:34:109","nodes":[],"constant":true,"mutability":"constant","name":"ls","nameLocation":"534:2:109","scope":73737,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":73734,"name":"string","nodeType":"ElementaryTypeName","src":"509:6:109","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6c73","id":73735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"539:4:109","typeDescriptions":{"typeIdentifier":"t_stringliteral_02b77a3b60dd2c0334aaaaa04bba549c0a95570301e89f1282a1a34fe18df0f3","typeString":"literal_string \"ls\""},"value":"ls"},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Executables","contractDependencies":[],"contractKind":"library","documentation":{"id":73715,"nodeType":"StructuredDocumentation","src":"57:166:109","text":"@notice The executables used in ffi commands. These are set here\n to have a single source of truth in case absolute paths\n need to be used."},"fullyImplemented":true,"linearizedBaseContracts":[73737],"name":"Executables","nameLocation":"231:11:109","scope":73738,"usedErrors":[]}],"license":"MIT"},"id":109}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"223:323:111:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;223:323:111;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"223:323:111:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The executables used in ffi commands. These are set here to have a single source of truth in case absolute paths need to be used.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/Executables.sol\":\"Executables\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"scripts/Executables.sol\":{\"keccak256\":\"0x33e4e043cb778a110a5e532170e77894553c8b8e7e93afeafd4ba6fd54d1cbdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ea4f98ff89742f71ab012cf2824d2b51643696e6147d6dda07bc9227a4dd906\",\"dweb:/ipfs/QmQ7avG3hrc3nxS4mu8QkAQWQfrFata3qPJQZD91uYinnp\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/Executables.sol":"Executables"},"evmVersion":"london","libraries":{}},"sources":{"scripts/Executables.sol":{"keccak256":"0x33e4e043cb778a110a5e532170e77894553c8b8e7e93afeafd4ba6fd54d1cbdc","urls":["bzz-raw://1ea4f98ff89742f71ab012cf2824d2b51643696e6147d6dda07bc9227a4dd906","dweb:/ipfs/QmQ7avG3hrc3nxS4mu8QkAQWQfrFata3qPJQZD91uYinnp"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"The executables used in ffi commands. These are set here to have a single source of truth in case absolute paths need to be used."},"devdoc":{"version":1,"kind":"dev"},"id":111}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"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\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/base/Executor.sol\":{\"keccak256\":\"0xf0be832e7529e92000544170a5529d73666a9b5e836b30c6f2ed6ef7d7d8c94a\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://710022b40c9f78a5b55b97f6ce600e4834df2ddd36bf714974d953883c82d58c\",\"dweb:/ipfs/QmbdJNKH5opevm7HxQKQAe6W7dQTgSHKa4nKvbUNGRcQQp\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34\",\"dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/base/Executor.sol":"Executor"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/base/Executor.sol":{"keccak256":"0xf0be832e7529e92000544170a5529d73666a9b5e836b30c6f2ed6ef7d7d8c94a","urls":["bzz-raw://710022b40c9f78a5b55b97f6ce600e4834df2ddd36bf714974d953883c82d58c","dweb:/ipfs/QmbdJNKH5opevm7HxQKQAe6W7dQTgSHKa4nKvbUNGRcQQp"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453","urls":["bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34","dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"Executor - A contract that can execute transactions"},"ast":{"absolutePath":"lib/safe-contracts/contracts/base/Executor.sol","id":56797,"exportedSymbols":{"Enum":[57930],"Executor":[56796]},"nodeType":"SourceUnit","src":"42:1383:72","nodes":[{"id":56765,"nodeType":"PragmaDirective","src":"42:31:72","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":56766,"nodeType":"ImportDirective","src":"74:28:72","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/Enum.sol","file":"../common/Enum.sol","nameLocation":"-1:-1:-1","scope":56797,"sourceUnit":57931,"symbolAliases":[],"unitAlias":""},{"id":56796,"nodeType":"ContractDefinition","src":"215:1209:72","nodes":[{"id":56795,"nodeType":"FunctionDefinition","src":"783:639:72","nodes":[],"body":{"id":56794,"nodeType":"Block","src":"965:457:72","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Operation_$57929","typeString":"enum Enum.Operation"},"id":56788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56784,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56777,"src":"979:9:72","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$57929","typeString":"enum Enum.Operation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":56785,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57930,"src":"992:4:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$57930_$","typeString":"type(contract Enum)"}},"id":56786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":57929,"src":"992:14:72","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$57929_$","typeString":"type(enum Enum.Operation)"}},"id":56787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"DelegateCall","nodeType":"MemberAccess","referencedDeclaration":57928,"src":"992:27:72","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$57929","typeString":"enum Enum.Operation"}},"src":"979:40:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":56792,"nodeType":"Block","src":"1222:194:72","statements":[{"AST":{"nodeType":"YulBlock","src":"1305:101:72","statements":[{"nodeType":"YulAssignment","src":"1323:69:72","value":{"arguments":[{"name":"txGas","nodeType":"YulIdentifier","src":"1339:5:72"},{"name":"to","nodeType":"YulIdentifier","src":"1346:2:72"},{"name":"value","nodeType":"YulIdentifier","src":"1350:5:72"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1361:4:72"},{"kind":"number","nodeType":"YulLiteral","src":"1367:4:72","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1357:3:72"},"nodeType":"YulFunctionCall","src":"1357:15:72"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1380:4:72"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1374:5:72"},"nodeType":"YulFunctionCall","src":"1374:11:72"},{"kind":"number","nodeType":"YulLiteral","src":"1387:1:72","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1390:1:72","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"1334:4:72"},"nodeType":"YulFunctionCall","src":"1334:58:72"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"1323:7:72"}]}]},"evmVersion":"london","externalReferences":[{"declaration":56774,"isOffset":false,"isSlot":false,"src":"1361:4:72","valueSize":1},{"declaration":56774,"isOffset":false,"isSlot":false,"src":"1380:4:72","valueSize":1},{"declaration":56782,"isOffset":false,"isSlot":false,"src":"1323:7:72","valueSize":1},{"declaration":56770,"isOffset":false,"isSlot":false,"src":"1346:2:72","valueSize":1},{"declaration":56779,"isOffset":false,"isSlot":false,"src":"1339:5:72","valueSize":1},{"declaration":56772,"isOffset":false,"isSlot":false,"src":"1350:5:72","valueSize":1}],"id":56791,"nodeType":"InlineAssembly","src":"1296:110:72"}]},"id":56793,"nodeType":"IfStatement","src":"975:441:72","trueBody":{"id":56790,"nodeType":"Block","src":"1021:195:72","statements":[{"AST":{"nodeType":"YulBlock","src":"1104:102:72","statements":[{"nodeType":"YulAssignment","src":"1122:70:72","value":{"arguments":[{"name":"txGas","nodeType":"YulIdentifier","src":"1146:5:72"},{"name":"to","nodeType":"YulIdentifier","src":"1153:2:72"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1161:4:72"},{"kind":"number","nodeType":"YulLiteral","src":"1167:4:72","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1157:3:72"},"nodeType":"YulFunctionCall","src":"1157:15:72"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1180:4:72"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1174:5:72"},"nodeType":"YulFunctionCall","src":"1174:11:72"},{"kind":"number","nodeType":"YulLiteral","src":"1187:1:72","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1190:1:72","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"1133:12:72"},"nodeType":"YulFunctionCall","src":"1133:59:72"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"1122:7:72"}]}]},"evmVersion":"london","externalReferences":[{"declaration":56774,"isOffset":false,"isSlot":false,"src":"1161:4:72","valueSize":1},{"declaration":56774,"isOffset":false,"isSlot":false,"src":"1180:4:72","valueSize":1},{"declaration":56782,"isOffset":false,"isSlot":false,"src":"1122:7:72","valueSize":1},{"declaration":56770,"isOffset":false,"isSlot":false,"src":"1153:2:72","valueSize":1},{"declaration":56779,"isOffset":false,"isSlot":false,"src":"1146:5:72","valueSize":1}],"id":56789,"nodeType":"InlineAssembly","src":"1095:111:72"}]}}]},"documentation":{"id":56768,"nodeType":"StructuredDocumentation","src":"248:530:72","text":" @notice Executes either a delegatecall or a call with provided parameters.\n @dev This method doesn't perform any sanity check of the transaction, such as:\n - if the contract at `to` address has code or not\n It is the responsibility of the caller to perform such checks.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @return success boolean flag indicating if the call succeeded."},"implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"792:7:72","parameters":{"id":56780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56770,"mutability":"mutable","name":"to","nameLocation":"817:2:72","nodeType":"VariableDeclaration","scope":56795,"src":"809:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56769,"name":"address","nodeType":"ElementaryTypeName","src":"809:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56772,"mutability":"mutable","name":"value","nameLocation":"837:5:72","nodeType":"VariableDeclaration","scope":56795,"src":"829:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56771,"name":"uint256","nodeType":"ElementaryTypeName","src":"829:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56774,"mutability":"mutable","name":"data","nameLocation":"865:4:72","nodeType":"VariableDeclaration","scope":56795,"src":"852:17:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56773,"name":"bytes","nodeType":"ElementaryTypeName","src":"852:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":56777,"mutability":"mutable","name":"operation","nameLocation":"894:9:72","nodeType":"VariableDeclaration","scope":56795,"src":"879:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$57929","typeString":"enum Enum.Operation"},"typeName":{"id":56776,"nodeType":"UserDefinedTypeName","pathNode":{"id":56775,"name":"Enum.Operation","nodeType":"IdentifierPath","referencedDeclaration":57929,"src":"879:14:72"},"referencedDeclaration":57929,"src":"879:14:72","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$57929","typeString":"enum Enum.Operation"}},"visibility":"internal"},{"constant":false,"id":56779,"mutability":"mutable","name":"txGas","nameLocation":"921:5:72","nodeType":"VariableDeclaration","scope":56795,"src":"913:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56778,"name":"uint256","nodeType":"ElementaryTypeName","src":"913:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"799:133:72"},"returnParameters":{"id":56783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56782,"mutability":"mutable","name":"success","nameLocation":"956:7:72","nodeType":"VariableDeclaration","scope":56795,"src":"951:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56781,"name":"bool","nodeType":"ElementaryTypeName","src":"951:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"950:14:72"},"scope":56796,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"Executor","contractDependencies":[],"contractKind":"contract","documentation":{"id":56767,"nodeType":"StructuredDocumentation","src":"104:110:72","text":" @title Executor - A contract that can execute transactions\n @author Richard Meissner - @rmeissner"},"fullyImplemented":true,"linearizedBaseContracts":[56796],"name":"Executor","nameLocation":"233:8:72","scope":56797,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":72}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"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\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/base/Executor.sol\":{\"keccak256\":\"0xf0be832e7529e92000544170a5529d73666a9b5e836b30c6f2ed6ef7d7d8c94a\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://710022b40c9f78a5b55b97f6ce600e4834df2ddd36bf714974d953883c82d58c\",\"dweb:/ipfs/QmbdJNKH5opevm7HxQKQAe6W7dQTgSHKa4nKvbUNGRcQQp\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34\",\"dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/base/Executor.sol":"Executor"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/base/Executor.sol":{"keccak256":"0xf0be832e7529e92000544170a5529d73666a9b5e836b30c6f2ed6ef7d7d8c94a","urls":["bzz-raw://710022b40c9f78a5b55b97f6ce600e4834df2ddd36bf714974d953883c82d58c","dweb:/ipfs/QmbdJNKH5opevm7HxQKQAe6W7dQTgSHKa4nKvbUNGRcQQp"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453","urls":["bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34","dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"Executor - A contract that can execute transactions"},"id":72}

@@ -1,1 +0,1 @@

{"abi":[{"type":"fallback","stateMutability":"nonpayable"},{"type":"function","name":"setFallbackHandler","inputs":[{"name":"handler","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ChangedFallbackHandler","inputs":[{"name":"handler","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"setFallbackHandler(address)":"f08a0323"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"handler\",\"type\":\"address\"}],\"name\":\"ChangedFallbackHandler\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"handler\",\"type\":\"address\"}],\"name\":\"setFallbackHandler\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{\"setFallbackHandler(address)\":{\"details\":\"Only fallback calls without value and with data will be forwarded. This can only be done via a Safe transaction. Cannot be set to the Safe itself.\",\"params\":{\"handler\":\"contract to handle fallback calls.\"}}},\"title\":\"Fallback Manager - A contract managing fallback calls made to this contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setFallbackHandler(address)\":{\"notice\":\"Set Fallback Handler to `handler` for the Safe.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/base/FallbackManager.sol\":\"FallbackManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/base/FallbackManager.sol\":{\"keccak256\":\"0x646b3088f15af8b4f71ac5eeffaa24ce0c1abed5f494f90368208b09e35d5165\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://7975be46d228510c70659b18076aecb3b0e7331b4d3a162444304145143bdc6e\",\"dweb:/ipfs/QmRRbZrWUnoky6pVo8zMUzCTsshR4sZ2FjR13s8vyAb8dV\"]},\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3\",\"dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"handler","type":"address","indexed":true}],"type":"event","name":"ChangedFallbackHandler","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"address","name":"handler","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFallbackHandler"}],"devdoc":{"kind":"dev","methods":{"setFallbackHandler(address)":{"details":"Only fallback calls without value and with data will be forwarded. This can only be done via a Safe transaction. Cannot be set to the Safe itself.","params":{"handler":"contract to handle fallback calls."}}},"version":1},"userdoc":{"kind":"user","methods":{"setFallbackHandler(address)":{"notice":"Set Fallback Handler to `handler` for the Safe."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/base/FallbackManager.sol":"FallbackManager"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/base/FallbackManager.sol":{"keccak256":"0x646b3088f15af8b4f71ac5eeffaa24ce0c1abed5f494f90368208b09e35d5165","urls":["bzz-raw://7975be46d228510c70659b18076aecb3b0e7331b4d3a162444304145143bdc6e","dweb:/ipfs/QmRRbZrWUnoky6pVo8zMUzCTsshR4sZ2FjR13s8vyAb8dV"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13","urls":["bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3","dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"setFallbackHandler(address)":{"notice":"Set Fallback Handler to `handler` for the Safe."}}},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","methods":{"setFallbackHandler(address)":{"details":"Only fallback calls without value and with data will be forwarded. This can only be done via a Safe transaction. Cannot be set to the Safe itself.","params":{"handler":"contract to handle fallback calls."}}},"title":"Fallback Manager - A contract managing fallback calls made to this contract"},"ast":{"absolutePath":"lib/safe-contracts/contracts/base/FallbackManager.sol","id":56859,"exportedSymbols":{"FallbackManager":[56858],"SelfAuthorized":[58005]},"nodeType":"SourceUnit","src":"42:4016:73","nodes":[{"id":56798,"nodeType":"PragmaDirective","src":"42:31:73","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":56799,"nodeType":"ImportDirective","src":"75:38:73","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/SelfAuthorized.sol","file":"../common/SelfAuthorized.sol","nameLocation":"-1:-1:-1","scope":56859,"sourceUnit":58006,"symbolAliases":[],"unitAlias":""},{"id":56858,"nodeType":"ContractDefinition","src":"250:3807:73","nodes":[{"id":56806,"nodeType":"EventDefinition","src":"308:54:73","nodes":[],"anonymous":false,"eventSelector":"5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b0","name":"ChangedFallbackHandler","nameLocation":"314:22:73","parameters":{"id":56805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56804,"indexed":true,"mutability":"mutable","name":"handler","nameLocation":"353:7:73","nodeType":"VariableDeclaration","scope":56806,"src":"337:23:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56803,"name":"address","nodeType":"ElementaryTypeName","src":"337:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"336:25:73"}},{"id":56809,"nodeType":"VariableDeclaration","src":"421:124:73","nodes":[],"constant":true,"mutability":"constant","name":"FALLBACK_HANDLER_STORAGE_SLOT","nameLocation":"447:29:73","scope":56858,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"421:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307836633961366334613339323834653337656431636635336433333735373764313432313261343837306662393736613433363663363933623933393931386435","id":56808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"479:66:73","typeDescriptions":{"typeIdentifier":"t_rational_49122629484629529244014240937346711770925847994644146912111677022347558721749_by_1","typeString":"int_const 4912...(69 digits omitted)...1749"},"value":"0x6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d5"},"visibility":"internal"},{"id":56831,"nodeType":"FunctionDefinition","src":"689:1423:73","nodes":[],"body":{"id":56830,"nodeType":"Block","src":"751:1361:73","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56816,"name":"handler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56812,"src":"1897:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":56819,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1916:4:73","typeDescriptions":{"typeIdentifier":"t_contract$_FallbackManager_$56858","typeString":"contract FallbackManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FallbackManager_$56858","typeString":"contract FallbackManager"}],"id":56818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1908:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56817,"name":"address","nodeType":"ElementaryTypeName","src":"1908:7:73","typeDescriptions":{}}},"id":56820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1908:13:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1897:24:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753343030","id":56822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1923:7:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_f31aea2d758c1bc976ea4b6db8005af34a1f6d8fd0cba0d31e0228d78d6a5ae2","typeString":"literal_string \"GS400\""},"value":"GS400"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f31aea2d758c1bc976ea4b6db8005af34a1f6d8fd0cba0d31e0228d78d6a5ae2","typeString":"literal_string \"GS400\""}],"id":56815,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1889:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1889:42:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56824,"nodeType":"ExpressionStatement","src":"1889:42:73"},{"assignments":[56826],"declarations":[{"constant":false,"id":56826,"mutability":"mutable","name":"slot","nameLocation":"1950:4:73","nodeType":"VariableDeclaration","scope":56830,"src":"1942:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56825,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1942:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":56828,"initialValue":{"id":56827,"name":"FALLBACK_HANDLER_STORAGE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56809,"src":"1957:29:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1942:44:73"},{"AST":{"nodeType":"YulBlock","src":"2061:45:73","statements":[{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2082:4:73"},{"name":"handler","nodeType":"YulIdentifier","src":"2088:7:73"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2075:6:73"},"nodeType":"YulFunctionCall","src":"2075:21:73"},"nodeType":"YulExpressionStatement","src":"2075:21:73"}]},"evmVersion":"london","externalReferences":[{"declaration":56812,"isOffset":false,"isSlot":false,"src":"2088:7:73","valueSize":1},{"declaration":56826,"isOffset":false,"isSlot":false,"src":"2082:4:73","valueSize":1}],"id":56829,"nodeType":"InlineAssembly","src":"2052:54:73"}]},"documentation":{"id":56810,"nodeType":"StructuredDocumentation","src":"552:132:73","text":" @notice Internal function to set the fallback handler.\n @param handler contract to handle fallback calls."},"implemented":true,"kind":"function","modifiers":[],"name":"internalSetFallbackHandler","nameLocation":"698:26:73","parameters":{"id":56813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56812,"mutability":"mutable","name":"handler","nameLocation":"733:7:73","nodeType":"VariableDeclaration","scope":56831,"src":"725:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56811,"name":"address","nodeType":"ElementaryTypeName","src":"725:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"724:17:73"},"returnParameters":{"id":56814,"nodeType":"ParameterList","parameters":[],"src":"751:0:73"},"scope":56858,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":56848,"nodeType":"FunctionDefinition","src":"2437:161:73","nodes":[],"body":{"id":56847,"nodeType":"Block","src":"2500:98:73","nodes":[],"statements":[{"expression":{"arguments":[{"id":56840,"name":"handler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56834,"src":"2537:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56839,"name":"internalSetFallbackHandler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56831,"src":"2510:26:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":56841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2510:35:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56842,"nodeType":"ExpressionStatement","src":"2510:35:73"},{"eventCall":{"arguments":[{"id":56844,"name":"handler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56834,"src":"2583:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56843,"name":"ChangedFallbackHandler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56806,"src":"2560:22:73","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":56845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2560:31:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56846,"nodeType":"EmitStatement","src":"2555:36:73"}]},"documentation":{"id":56832,"nodeType":"StructuredDocumentation","src":"2118:314:73","text":" @notice Set Fallback Handler to `handler` for the Safe.\n @dev Only fallback calls without value and with data will be forwarded.\n This can only be done via a Safe transaction.\n Cannot be set to the Safe itself.\n @param handler contract to handle fallback calls."},"functionSelector":"f08a0323","implemented":true,"kind":"function","modifiers":[{"id":56837,"kind":"modifierInvocation","modifierName":{"id":56836,"name":"authorized","nodeType":"IdentifierPath","referencedDeclaration":58004,"src":"2489:10:73"},"nodeType":"ModifierInvocation","src":"2489:10:73"}],"name":"setFallbackHandler","nameLocation":"2446:18:73","parameters":{"id":56835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56834,"mutability":"mutable","name":"handler","nameLocation":"2473:7:73","nodeType":"VariableDeclaration","scope":56848,"src":"2465:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56833,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:17:73"},"returnParameters":{"id":56838,"nodeType":"ParameterList","parameters":[],"src":"2500:0:73"},"scope":56858,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":56857,"nodeType":"FunctionDefinition","src":"3163:892:73","nodes":[],"body":{"id":56856,"nodeType":"Block","src":"3183:872:73","nodes":[],"statements":[{"assignments":[56852],"declarations":[{"constant":false,"id":56852,"mutability":"mutable","name":"slot","nameLocation":"3201:4:73","nodeType":"VariableDeclaration","scope":56856,"src":"3193:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3193:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":56854,"initialValue":{"id":56853,"name":"FALLBACK_HANDLER_STORAGE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56809,"src":"3208:29:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3193:44:73"},{"AST":{"nodeType":"YulBlock","src":"3312:737:73","statements":[{"nodeType":"YulVariableDeclaration","src":"3326:26:73","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3347:4:73"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3341:5:73"},"nodeType":"YulFunctionCall","src":"3341:11:73"},"variables":[{"name":"handler","nodeType":"YulTypedName","src":"3330:7:73","type":""}]},{"body":{"nodeType":"YulBlock","src":"3384:44:73","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3409:1:73","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3412:1:73","type":"","value":"0"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"3402:6:73"},"nodeType":"YulFunctionCall","src":"3402:12:73"},"nodeType":"YulExpressionStatement","src":"3402:12:73"}]},"condition":{"arguments":[{"name":"handler","nodeType":"YulIdentifier","src":"3375:7:73"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3368:6:73"},"nodeType":"YulFunctionCall","src":"3368:15:73"},"nodeType":"YulIf","src":"3365:63:73"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3454:1:73","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3457:1:73","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"3460:12:73"},"nodeType":"YulFunctionCall","src":"3460:14:73"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3441:12:73"},"nodeType":"YulFunctionCall","src":"3441:34:73"},"nodeType":"YulExpressionStatement","src":"3441:34:73"},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"3673:12:73"},"nodeType":"YulFunctionCall","src":"3673:14:73"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3693:2:73","type":"","value":"96"},{"arguments":[],"functionName":{"name":"caller","nodeType":"YulIdentifier","src":"3697:6:73"},"nodeType":"YulFunctionCall","src":"3697:8:73"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3689:3:73"},"nodeType":"YulFunctionCall","src":"3689:17:73"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3666:6:73"},"nodeType":"YulFunctionCall","src":"3666:41:73"},"nodeType":"YulExpressionStatement","src":"3666:41:73"},{"nodeType":"YulVariableDeclaration","src":"3785:72:73","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"3805:3:73"},"nodeType":"YulFunctionCall","src":"3805:5:73"},{"name":"handler","nodeType":"YulIdentifier","src":"3812:7:73"},{"kind":"number","nodeType":"YulLiteral","src":"3821:1:73","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3824:1:73","type":"","value":"0"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"3831:12:73"},"nodeType":"YulFunctionCall","src":"3831:14:73"},{"kind":"number","nodeType":"YulLiteral","src":"3847:2:73","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3827:3:73"},"nodeType":"YulFunctionCall","src":"3827:23:73"},{"kind":"number","nodeType":"YulLiteral","src":"3852:1:73","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3855:1:73","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"3800:4:73"},"nodeType":"YulFunctionCall","src":"3800:57:73"},"variables":[{"name":"success","nodeType":"YulTypedName","src":"3789:7:73","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3885:1:73","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3888:1:73","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3891:14:73"},"nodeType":"YulFunctionCall","src":"3891:16:73"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"3870:14:73"},"nodeType":"YulFunctionCall","src":"3870:38:73"},"nodeType":"YulExpressionStatement","src":"3870:38:73"},{"body":{"nodeType":"YulBlock","src":"3940:59:73","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3965:1:73","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3968:14:73"},"nodeType":"YulFunctionCall","src":"3968:16:73"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3958:6:73"},"nodeType":"YulFunctionCall","src":"3958:27:73"},"nodeType":"YulExpressionStatement","src":"3958:27:73"}]},"condition":{"arguments":[{"name":"success","nodeType":"YulIdentifier","src":"3931:7:73"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3924:6:73"},"nodeType":"YulFunctionCall","src":"3924:15:73"},"nodeType":"YulIf","src":"3921:78:73"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4019:1:73","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"4022:14:73"},"nodeType":"YulFunctionCall","src":"4022:16:73"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"4012:6:73"},"nodeType":"YulFunctionCall","src":"4012:27:73"},"nodeType":"YulExpressionStatement","src":"4012:27:73"}]},"evmVersion":"london","externalReferences":[{"declaration":56852,"isOffset":false,"isSlot":false,"src":"3347:4:73","valueSize":1}],"id":56855,"nodeType":"InlineAssembly","src":"3303:746:73"}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":56849,"nodeType":"ParameterList","parameters":[],"src":"3171:2:73"},"returnParameters":{"id":56850,"nodeType":"ParameterList","parameters":[],"src":"3183:0:73"},"scope":56858,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":true,"baseContracts":[{"baseName":{"id":56801,"name":"SelfAuthorized","nodeType":"IdentifierPath","referencedDeclaration":58005,"src":"287:14:73"},"id":56802,"nodeType":"InheritanceSpecifier","src":"287:14:73"}],"canonicalName":"FallbackManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":56800,"nodeType":"StructuredDocumentation","src":"115:134:73","text":" @title Fallback Manager - A contract managing fallback calls made to this contract\n @author Richard Meissner - @rmeissner"},"fullyImplemented":true,"linearizedBaseContracts":[56858,58005],"name":"FallbackManager","nameLocation":"268:15:73","scope":56859,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":73}
{"abi":[{"type":"fallback","stateMutability":"nonpayable"},{"type":"function","name":"setFallbackHandler","inputs":[{"name":"handler","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ChangedFallbackHandler","inputs":[{"name":"handler","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"setFallbackHandler(address)":"f08a0323"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"handler\",\"type\":\"address\"}],\"name\":\"ChangedFallbackHandler\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"handler\",\"type\":\"address\"}],\"name\":\"setFallbackHandler\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{\"setFallbackHandler(address)\":{\"details\":\"Only fallback calls without value and with data will be forwarded. This can only be done via a Safe transaction. Cannot be set to the Safe itself.\",\"params\":{\"handler\":\"contract to handle fallback calls.\"}}},\"title\":\"Fallback Manager - A contract managing fallback calls made to this contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setFallbackHandler(address)\":{\"notice\":\"Set Fallback Handler to `handler` for the Safe.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/base/FallbackManager.sol\":\"FallbackManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/base/FallbackManager.sol\":{\"keccak256\":\"0x646b3088f15af8b4f71ac5eeffaa24ce0c1abed5f494f90368208b09e35d5165\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://7975be46d228510c70659b18076aecb3b0e7331b4d3a162444304145143bdc6e\",\"dweb:/ipfs/QmRRbZrWUnoky6pVo8zMUzCTsshR4sZ2FjR13s8vyAb8dV\"]},\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3\",\"dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"handler","type":"address","indexed":true}],"type":"event","name":"ChangedFallbackHandler","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"address","name":"handler","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFallbackHandler"}],"devdoc":{"kind":"dev","methods":{"setFallbackHandler(address)":{"details":"Only fallback calls without value and with data will be forwarded. This can only be done via a Safe transaction. Cannot be set to the Safe itself.","params":{"handler":"contract to handle fallback calls."}}},"version":1},"userdoc":{"kind":"user","methods":{"setFallbackHandler(address)":{"notice":"Set Fallback Handler to `handler` for the Safe."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/base/FallbackManager.sol":"FallbackManager"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/base/FallbackManager.sol":{"keccak256":"0x646b3088f15af8b4f71ac5eeffaa24ce0c1abed5f494f90368208b09e35d5165","urls":["bzz-raw://7975be46d228510c70659b18076aecb3b0e7331b4d3a162444304145143bdc6e","dweb:/ipfs/QmRRbZrWUnoky6pVo8zMUzCTsshR4sZ2FjR13s8vyAb8dV"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13","urls":["bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3","dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"setFallbackHandler(address)":{"notice":"Set Fallback Handler to `handler` for the Safe."}}},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","methods":{"setFallbackHandler(address)":{"details":"Only fallback calls without value and with data will be forwarded. This can only be done via a Safe transaction. Cannot be set to the Safe itself.","params":{"handler":"contract to handle fallback calls."}}},"title":"Fallback Manager - A contract managing fallback calls made to this contract"},"id":73}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"EIP712_DOMAIN_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROOF_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"consumeNonce","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"currentNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDigestWithEIP712Domain","inputs":[{"name":"_proof","type":"tuple","internalType":"struct AdminFaucetAuthModule.Proof","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"id","type":"bytes32","internalType":"bytes32"}]},{"name":"_name","type":"bytes","internalType":"bytes"},{"name":"_version","type":"bytes","internalType":"bytes"},{"name":"_chainid","type":"uint256","internalType":"uint256"},{"name":"_verifyingContract","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getProofStructHash","inputs":[{"name":"_proof","type":"tuple","internalType":"struct AdminFaucetAuthModule.Proof","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"id","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506105bd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063adb610a311610050578063adb610a314610142578063b163a6b81461014b578063c7977be71461015e57600080fd5b806334b1511814610077578063796dfbfa146100915780638b3e3bf61461011b575b600080fd5b61007f610185565b60405190815260200160405180910390f35b61007f61009f3660046103f3565b805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b61007f7fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e81565b61007f60005481565b61007f6101593660046104c1565b6101c5565b61007f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b60008054818061019483610551565b919050556040516020016101aa91815260200190565b60405160208183030381529060405280519060200120905090565b8351602080860191909120845185830120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9481019490945283019190915260608201526080810183905273ffffffffffffffffffffffffffffffffffffffff821660a0820152600090819060c00160405160208183030381529060405280519060200120905061032f816102d489805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b919050565b6000606082840312156103a457600080fd5b6040516060810181811067ffffffffffffffff821117156103c7576103c761033a565b6040529050806103d683610369565b815260208301356020820152604083013560408201525092915050565b60006060828403121561040557600080fd5b61040f8383610392565b9392505050565b600082601f83011261042757600080fd5b813567ffffffffffffffff808211156104425761044261033a565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104885761048861033a565b816040528381528660208588010111156104a157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060e086880312156104d957600080fd5b6104e38787610392565b9450606086013567ffffffffffffffff8082111561050057600080fd5b61050c89838a01610416565b9550608088013591508082111561052257600080fd5b5061052f88828901610416565b93505060a0860135915061054560c08701610369565b90509295509295909350565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036105a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"350:2488:296:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063adb610a311610050578063adb610a314610142578063b163a6b81461014b578063c7977be71461015e57600080fd5b806334b1511814610077578063796dfbfa146100915780638b3e3bf61461011b575b600080fd5b61007f610185565b60405190815260200160405180910390f35b61007f61009f3660046103f3565b805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b61007f7fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e81565b61007f60005481565b61007f6101593660046104c1565b6101c5565b61007f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b60008054818061019483610551565b919050556040516020016101aa91815260200190565b60405160208183030381529060405280519060200120905090565b8351602080860191909120845185830120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9481019490945283019190915260608201526080810183905273ffffffffffffffffffffffffffffffffffffffff821660a0820152600090819060c00160405160208183030381529060405280519060200120905061032f816102d489805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b919050565b6000606082840312156103a457600080fd5b6040516060810181811067ffffffffffffffff821117156103c7576103c761033a565b6040529050806103d683610369565b815260208301356020820152604083013560408201525092915050565b60006060828403121561040557600080fd5b61040f8383610392565b9392505050565b600082601f83011261042757600080fd5b813567ffffffffffffffff808211156104425761044261033a565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104885761048861033a565b816040528381528660208588010111156104a157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060e086880312156104d957600080fd5b6104e38787610392565b9450606086013567ffffffffffffffff8082111561050057600080fd5b61050c89838a01610416565b9550608088013591508082111561052257600080fd5b5061052f88828901610416565b93505060a0860135915061054560c08701610369565b90509295509295909350565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036105a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"350:2488:296:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1125:119;;;:::i;:::-;;;160:25:334;;;148:2;133:18;1125:119:296;;;;;;;1391:205;;;;;;:::i;:::-;1546:16;;1564:12;;;;;1578:9;;;;;1519:69;;471:62;1519:69;;;3713:25:334;3786:42;3774:55;;;3754:18;;;3747:83;3846:18;;;3839:34;;;;3889:18;;;;3882:34;;;;1519:69:296;;;;;;;;;;3685:19:334;;;;1519:69:296;;;1509:80;;;;;;1391:205;430:103;;471:62;430:103;;883:27;;;;;;2292:544;;;;;;:::i;:::-;;:::i;641:152::-;;698:95;641:152;;1125:119;1165:7;1220:14;;1165:7;;1220:14;;;:::i;:::-;;;;;1209:26;;;;;;160:25:334;;148:2;133:18;;14:177;1209:26:296;;;;;;;;;;;;;1199:37;;;;;;1184:53;;1125:119;:::o;2292:544::-;2657:16;;;;;;;;;;2675:19;;;;;;2622:103;;;698:95;2622:103;;;4186:25:334;;;;4227:18;;4220:34;;;;4270:18;;;4263:34;4313:18;;;4306:34;;;4389:42;4377:55;;4356:19;;;4349:84;2550:7:296;;;;4158:19:334;;2622:103:296;;;;;;;;;;;;2599:136;;;;;;2573:162;;2752:77;2785:15;2802:26;2821:6;1546:16;;1564:12;;;;;1578:9;;;;;1519:69;;471:62;1519:69;;;3713:25:334;3786:42;3774:55;;;3754:18;;;3747:83;3846:18;;;3839:34;;;;3889:18;;;;3882:34;;;;1519:69:296;;;;;;;;;;3685:19:334;;;;1519:69:296;;;1509:80;;;;;;1391:205;2802:26;8710:57:34;;4714:66:334;8710:57:34;;;4702:79:334;4797:11;;;4790:27;;;4833:12;;;4826:28;;;8674:7:34;;4870:12:334;;8710:57:34;;;;;;;;;;;;8700:68;;;;;;8693:75;;8581:194;;;;;2752:77:296;2745:84;2292:544;-1:-1:-1;;;;;;;2292:544:296:o;196:184:334:-;248:77;245:1;238:88;345:4;342:1;335:15;369:4;366:1;359:15;385:196;453:20;;513:42;502:54;;492:65;;482:93;;571:1;568;561:12;482:93;385:196;;;:::o;586:542::-;638:5;686:4;674:9;669:3;665:19;661:30;658:50;;;704:1;701;694:12;658:50;737:2;731:9;779:4;771:6;767:17;850:6;838:10;835:22;814:18;802:10;799:34;796:62;793:88;;;861:18;;:::i;:::-;897:2;890:22;930:6;-1:-1:-1;930:6:334;960:29;979:9;960:29;:::i;:::-;952:6;945:45;1051:2;1040:9;1036:18;1023:32;1018:2;1010:6;1006:15;999:57;1117:2;1106:9;1102:18;1089:32;1084:2;1076:6;1072:15;1065:57;;586:542;;;;:::o;1133:224::-;1216:6;1269:2;1257:9;1248:7;1244:23;1240:32;1237:52;;;1285:1;1282;1275:12;1237:52;1308:43;1343:7;1332:9;1308:43;:::i;:::-;1298:53;1133:224;-1:-1:-1;;;1133:224:334:o;1544:777::-;1586:5;1639:3;1632:4;1624:6;1620:17;1616:27;1606:55;;1657:1;1654;1647:12;1606:55;1693:6;1680:20;1719:18;1756:2;1752;1749:10;1746:36;;;1762:18;;:::i;:::-;1896:2;1890:9;1958:4;1950:13;;1801:66;1946:22;;;1970:2;1942:31;1938:40;1926:53;;;1994:18;;;2014:22;;;1991:46;1988:72;;;2040:18;;:::i;:::-;2080:10;2076:2;2069:22;2115:2;2107:6;2100:18;2161:3;2154:4;2149:2;2141:6;2137:15;2133:26;2130:35;2127:55;;;2178:1;2175;2168:12;2127:55;2242:2;2235:4;2227:6;2223:17;2216:4;2208:6;2204:17;2191:54;2289:1;2282:4;2277:2;2269:6;2265:15;2261:26;2254:37;2309:6;2300:15;;;;;;1544:777;;;;:::o;2326:797::-;2463:6;2471;2479;2487;2495;2548:3;2536:9;2527:7;2523:23;2519:33;2516:53;;;2565:1;2562;2555:12;2516:53;2588:43;2623:7;2612:9;2588:43;:::i;:::-;2578:53;;2682:2;2671:9;2667:18;2654:32;2705:18;2746:2;2738:6;2735:14;2732:34;;;2762:1;2759;2752:12;2732:34;2785:49;2826:7;2817:6;2806:9;2802:22;2785:49;:::i;:::-;2775:59;;2887:3;2876:9;2872:19;2859:33;2843:49;;2917:2;2907:8;2904:16;2901:36;;;2933:1;2930;2923:12;2901:36;;2956:51;2999:7;2988:8;2977:9;2973:24;2956:51;:::i;:::-;2946:61;;;3054:3;3043:9;3039:19;3026:33;3016:43;;3078:39;3112:3;3101:9;3097:19;3078:39;:::i;:::-;3068:49;;2326:797;;;;;;;;:::o;3128:349::-;3167:3;3198:66;3191:5;3188:77;3185:257;;3298:77;3295:1;3288:88;3399:4;3396:1;3389:15;3427:4;3424:1;3417:15;3185:257;-1:-1:-1;3469:1:334;3458:13;;3128:349::o","linkReferences":{}},"methodIdentifiers":{"EIP712_DOMAIN_TYPEHASH()":"c7977be7","PROOF_TYPEHASH()":"8b3e3bf6","consumeNonce()":"34b15118","currentNonce()":"adb610a3","getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":"b163a6b8","getProofStructHash((address,bytes32,bytes32))":"796dfbfa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EIP712_DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROOF_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consumeNonce\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct AdminFaucetAuthModule.Proof\",\"name\":\"_proof\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_name\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_version\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_chainid\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_verifyingContract\",\"type\":\"address\"}],\"name\":\"getDigestWithEIP712Domain\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct AdminFaucetAuthModule.Proof\",\"name\":\"_proof\",\"type\":\"tuple\"}],\"name\":\"getProofStructHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"consumeNonce()\":{\"returns\":{\"_0\":\"Nonce that should be used as part of drip parameters.\"}},\"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)\":{\"params\":{\"_chainid\":\"Chain ID to use in the EIP712 domain.\",\"_name\":\"Contract name to use in the EIP712 domain.\",\"_proof\":\"Proof struct to hash.\",\"_verifyingContract\":\"Address to use in the EIP712 domain.\",\"_version\":\"Contract version to use in the EIP712 domain.\"},\"returns\":{\"_0\":\"EIP-712 compatible digest.\"}},\"getProofStructHash((address,bytes32,bytes32))\":{\"params\":{\"_proof\":\"Proof struct to hash.\"},\"returns\":{\"_0\":\"EIP-712 typed struct hash.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"EIP712_DOMAIN_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the EIP712Domain type that is included as part of the signature.\"},\"PROOF_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the Proof type.\"},\"consumeNonce()\":{\"notice\":\"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces.\"},\"currentNonce()\":{\"notice\":\"Keeps track of current nonce to generate new nonces for each drip.\"},\"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)\":{\"notice\":\"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail.\"},\"getProofStructHash((address,bytes32,bytes32))\":{\"notice\":\"Returns the hash of the struct Proof.\"}},\"notice\":\"Simple helper contract that helps with testing the Faucet contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/FaucetHelper.sol\":\"FaucetHelper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol\":{\"keccak256\":\"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb\",\"dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"src/periphery/faucet/Faucet.sol\":{\"keccak256\":\"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727\",\"dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS\"]},\"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol\":{\"keccak256\":\"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7\",\"dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r\"]},\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":{\"keccak256\":\"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850\",\"dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf\"]},\"test/mocks/FaucetHelper.sol\":{\"keccak256\":\"0x1924dc9b7151426028273501d6fe0e3ceb3ccd38947d01fce10a36282ebe14cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76c58e4b66c72adfbac601a55e68fb9e95642a4e02d854a00918ae4d0ac42329\",\"dweb:/ipfs/QmdD2ETTgWNMvfodQwy5a6s81XRRrPp9yPPi3QFPw2HMe7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"EIP712_DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROOF_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"consumeNonce","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct AdminFaucetAuthModule.Proof","name":"_proof","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"bytes32","name":"id","type":"bytes32"}]},{"internalType":"bytes","name":"_name","type":"bytes"},{"internalType":"bytes","name":"_version","type":"bytes"},{"internalType":"uint256","name":"_chainid","type":"uint256"},{"internalType":"address","name":"_verifyingContract","type":"address"}],"stateMutability":"pure","type":"function","name":"getDigestWithEIP712Domain","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct AdminFaucetAuthModule.Proof","name":"_proof","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"bytes32","name":"id","type":"bytes32"}]}],"stateMutability":"pure","type":"function","name":"getProofStructHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"consumeNonce()":{"returns":{"_0":"Nonce that should be used as part of drip parameters."}},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"params":{"_chainid":"Chain ID to use in the EIP712 domain.","_name":"Contract name to use in the EIP712 domain.","_proof":"Proof struct to hash.","_verifyingContract":"Address to use in the EIP712 domain.","_version":"Contract version to use in the EIP712 domain."},"returns":{"_0":"EIP-712 compatible digest."}},"getProofStructHash((address,bytes32,bytes32))":{"params":{"_proof":"Proof struct to hash."},"returns":{"_0":"EIP-712 typed struct hash."}}},"version":1},"userdoc":{"kind":"user","methods":{"EIP712_DOMAIN_TYPEHASH()":{"notice":"EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"consumeNonce()":{"notice":"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces."},"currentNonce()":{"notice":"Keeps track of current nonce to generate new nonces for each drip."},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"notice":"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail."},"getProofStructHash((address,bytes32,bytes32))":{"notice":"Returns the hash of the struct Proof."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/FaucetHelper.sol":"FaucetHelper"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol":{"keccak256":"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc","urls":["bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb","dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"},"src/periphery/faucet/Faucet.sol":{"keccak256":"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb","urls":["bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727","dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS"],"license":"MIT"},"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol":{"keccak256":"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e","urls":["bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7","dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r"],"license":"MIT"},"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":{"keccak256":"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d","urls":["bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850","dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf"],"license":"MIT"},"test/mocks/FaucetHelper.sol":{"keccak256":"0x1924dc9b7151426028273501d6fe0e3ceb3ccd38947d01fce10a36282ebe14cd","urls":["bzz-raw://76c58e4b66c72adfbac601a55e68fb9e95642a4e02d854a00918ae4d0ac42329","dweb:/ipfs/QmdD2ETTgWNMvfodQwy5a6s81XRRrPp9yPPi3QFPw2HMe7"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":173317,"contract":"test/mocks/FaucetHelper.sol:FaucetHelper","label":"currentNonce","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"EIP712_DOMAIN_TYPEHASH()":{"notice":"EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"consumeNonce()":{"notice":"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces."},"currentNonce()":{"notice":"Keeps track of current nonce to generate new nonces for each drip."},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"notice":"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail."},"getProofStructHash((address,bytes32,bytes32))":{"notice":"Returns the hash of the struct Proof."}},"notice":"Simple helper contract that helps with testing the Faucet contract."},"devdoc":{"version":1,"kind":"dev","methods":{"consumeNonce()":{"returns":{"_0":"Nonce that should be used as part of drip parameters."}},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"params":{"_chainid":"Chain ID to use in the EIP712 domain.","_name":"Contract name to use in the EIP712 domain.","_proof":"Proof struct to hash.","_verifyingContract":"Address to use in the EIP712 domain.","_version":"Contract version to use in the EIP712 domain."},"returns":{"_0":"EIP-712 compatible digest."}},"getProofStructHash((address,bytes32,bytes32))":{"params":{"_proof":"Proof struct to hash."},"returns":{"_0":"EIP-712 typed struct hash."}}}},"ast":{"absolutePath":"test/mocks/FaucetHelper.sol","id":173403,"exportedSymbols":{"AdminFaucetAuthModule":[97127],"ECDSAUpgradeable":[47459],"FaucetHelper":[173402]},"nodeType":"SourceUnit","src":"32:2807:296","nodes":[{"id":173297,"nodeType":"PragmaDirective","src":"32:23:296","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":173299,"nodeType":"ImportDirective","src":"57:111:296","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol","nameLocation":"-1:-1:-1","scope":173403,"sourceUnit":47460,"symbolAliases":[{"foreign":{"id":173298,"name":"ECDSAUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47459,"src":"66:16:296","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":173301,"nodeType":"ImportDirective","src":"169:99:296","nodes":[],"absolutePath":"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol","file":"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol","nameLocation":"-1:-1:-1","scope":173403,"sourceUnit":97128,"symbolAliases":[{"foreign":{"id":173300,"name":"AdminFaucetAuthModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97127,"src":"178:21:296","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":173402,"nodeType":"ContractDefinition","src":"350:2488:296","nodes":[{"id":173308,"nodeType":"VariableDeclaration","src":"430:103:296","nodes":[],"constant":true,"documentation":{"id":173303,"nodeType":"StructuredDocumentation","src":"378:47:296","text":"@notice EIP712 typehash for the Proof type."},"functionSelector":"8b3e3bf6","mutability":"constant","name":"PROOF_TYPEHASH","nameLocation":"454:14:296","scope":173402,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"430:7:296","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"50726f6f66286164647265737320726563697069656e742c62797465733332206e6f6e63652c6279746573333220696429","id":173306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"481:51:296","typeDescriptions":{"typeIdentifier":"t_stringliteral_d4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e","typeString":"literal_string \"Proof(address recipient,bytes32 nonce,bytes32 id)\""},"value":"Proof(address recipient,bytes32 nonce,bytes32 id)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e","typeString":"literal_string \"Proof(address recipient,bytes32 nonce,bytes32 id)\""}],"id":173305,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"471:9:296","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":173307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"471:62:296","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":173314,"nodeType":"VariableDeclaration","src":"641:152:296","nodes":[],"constant":true,"documentation":{"id":173309,"nodeType":"StructuredDocumentation","src":"540:96:296","text":"@notice EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"functionSelector":"c7977be7","mutability":"constant","name":"EIP712_DOMAIN_TYPEHASH","nameLocation":"665:22:296","scope":173402,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"641:7:296","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":173312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"708:84:296","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":173311,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"698:9:296","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":173313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"698:95:296","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":173317,"nodeType":"VariableDeclaration","src":"883:27:296","nodes":[],"constant":false,"documentation":{"id":173315,"nodeType":"StructuredDocumentation","src":"800:78:296","text":"@notice Keeps track of current nonce to generate new nonces for each drip."},"functionSelector":"adb610a3","mutability":"mutable","name":"currentNonce","nameLocation":"898:12:296","scope":173402,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173316,"name":"uint256","nodeType":"ElementaryTypeName","src":"883:7:296","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":173335,"nodeType":"FunctionDefinition","src":"1125:119:296","nodes":[],"body":{"id":173334,"nodeType":"Block","src":"1174:70:296","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":173329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1220:14:296","subExpression":{"id":173328,"name":"currentNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173317,"src":"1220:12:296","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":173326,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1209:3:296","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":173327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1209:10:296","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":173330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1209:26:296","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173325,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1199:9:296","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":173331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1199:37:296","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":173324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1191:7:296","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":173323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1191:7:296","typeDescriptions":{}}},"id":173332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1191:46:296","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":173322,"id":173333,"nodeType":"Return","src":"1184:53:296"}]},"documentation":{"id":173318,"nodeType":"StructuredDocumentation","src":"917:203:296","text":"@notice Returns a bytes32 nonce that should change everytime. In practice, people should use\n pseudorandom nonces.\n @return Nonce that should be used as part of drip parameters."},"functionSelector":"34b15118","implemented":true,"kind":"function","modifiers":[],"name":"consumeNonce","nameLocation":"1134:12:296","parameters":{"id":173319,"nodeType":"ParameterList","parameters":[],"src":"1146:2:296"},"returnParameters":{"id":173322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173321,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":173335,"src":"1165:7:296","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1165:7:296","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1164:9:296"},"scope":173402,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":173358,"nodeType":"FunctionDefinition","src":"1391:205:296","nodes":[],"body":{"id":173357,"nodeType":"Block","src":"1492:104:296","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":173347,"name":"PROOF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173308,"src":"1530:14:296","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":173348,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173339,"src":"1546:6:296","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$97072_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}},"id":173349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"recipient","nodeType":"MemberAccess","referencedDeclaration":97067,"src":"1546:16:296","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":173350,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173339,"src":"1564:6:296","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$97072_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}},"id":173351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":97069,"src":"1564:12:296","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":173352,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173339,"src":"1578:6:296","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$97072_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}},"id":173353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":97071,"src":"1578:9:296","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":173345,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1519:3:296","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":173346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1519:10:296","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":173354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1519:69:296","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173344,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1509:9:296","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":173355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1509:80:296","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":173343,"id":173356,"nodeType":"Return","src":"1502:87:296"}]},"documentation":{"id":173336,"nodeType":"StructuredDocumentation","src":"1250:136:296","text":"@notice Returns the hash of the struct Proof.\n @param _proof Proof struct to hash.\n @return EIP-712 typed struct hash."},"functionSelector":"796dfbfa","implemented":true,"kind":"function","modifiers":[],"name":"getProofStructHash","nameLocation":"1400:18:296","parameters":{"id":173340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173339,"mutability":"mutable","name":"_proof","nameLocation":"1454:6:296","nodeType":"VariableDeclaration","scope":173358,"src":"1419:41:296","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$97072_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof"},"typeName":{"id":173338,"nodeType":"UserDefinedTypeName","pathNode":{"id":173337,"name":"AdminFaucetAuthModule.Proof","nodeType":"IdentifierPath","referencedDeclaration":97072,"src":"1419:27:296"},"referencedDeclaration":97072,"src":"1419:27:296","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$97072_storage_ptr","typeString":"struct AdminFaucetAuthModule.Proof"}},"visibility":"internal"}],"src":"1418:43:296"},"returnParameters":{"id":173343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":173358,"src":"1483:7:296","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1483:7:296","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1482:9:296"},"scope":173402,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":173401,"nodeType":"FunctionDefinition","src":"2292:544:296","nodes":[],"body":{"id":173400,"nodeType":"Block","src":"2563:273:296","nodes":[],"statements":[{"assignments":[173376],"declarations":[{"constant":false,"id":173376,"mutability":"mutable","name":"domainSeparator","nameLocation":"2581:15:296","nodeType":"VariableDeclaration","scope":173400,"src":"2573:23:296","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2573:7:296","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":173391,"initialValue":{"arguments":[{"arguments":[{"id":173380,"name":"EIP712_DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173314,"src":"2633:22:296","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":173382,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173364,"src":"2667:5:296","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173381,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2657:9:296","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":173383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2657:16:296","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":173385,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173366,"src":"2685:8:296","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173384,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2675:9:296","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":173386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2675:19:296","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":173387,"name":"_chainid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173368,"src":"2696:8:296","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":173388,"name":"_verifyingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173370,"src":"2706:18:296","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":173378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2622:3:296","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":173379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2622:10:296","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":173389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2622:103:296","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":173377,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2599:9:296","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":173390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2599:136:296","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2573:162:296"},{"expression":{"arguments":[{"id":173394,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173376,"src":"2785:15:296","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":173396,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173362,"src":"2821:6:296","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$97072_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proof_$97072_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof memory"}],"id":173395,"name":"getProofStructHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173358,"src":"2802:18:296","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Proof_$97072_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct AdminFaucetAuthModule.Proof memory) pure returns (bytes32)"}},"id":173397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2802:26:296","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":173392,"name":"ECDSAUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47459,"src":"2752:16:296","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSAUpgradeable_$47459_$","typeString":"type(library ECDSAUpgradeable)"}},"id":173393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":47458,"src":"2752:32:296","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":173398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2752:77:296","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":173374,"id":173399,"nodeType":"Return","src":"2745:84:296"}]},"documentation":{"id":173359,"nodeType":"StructuredDocumentation","src":"1602:685:296","text":"@notice Computes the EIP712 digest with the given domain parameters.\n Used for testing that different domain parameters fail.\n @param _proof Proof struct to hash.\n @param _name Contract name to use in the EIP712 domain.\n @param _version Contract version to use in the EIP712 domain.\n @param _chainid Chain ID to use in the EIP712 domain.\n @param _verifyingContract Address to use in the EIP712 domain.\n @param _verifyingContract Address to use in the EIP712 domain.\n @param _verifyingContract Address to use in the EIP712 domain.\n @return EIP-712 compatible digest."},"functionSelector":"b163a6b8","implemented":true,"kind":"function","modifiers":[],"name":"getDigestWithEIP712Domain","nameLocation":"2301:25:296","parameters":{"id":173371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173362,"mutability":"mutable","name":"_proof","nameLocation":"2371:6:296","nodeType":"VariableDeclaration","scope":173401,"src":"2336:41:296","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$97072_memory_ptr","typeString":"struct AdminFaucetAuthModule.Proof"},"typeName":{"id":173361,"nodeType":"UserDefinedTypeName","pathNode":{"id":173360,"name":"AdminFaucetAuthModule.Proof","nodeType":"IdentifierPath","referencedDeclaration":97072,"src":"2336:27:296"},"referencedDeclaration":97072,"src":"2336:27:296","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$97072_storage_ptr","typeString":"struct AdminFaucetAuthModule.Proof"}},"visibility":"internal"},{"constant":false,"id":173364,"mutability":"mutable","name":"_name","nameLocation":"2400:5:296","nodeType":"VariableDeclaration","scope":173401,"src":"2387:18:296","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173363,"name":"bytes","nodeType":"ElementaryTypeName","src":"2387:5:296","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":173366,"mutability":"mutable","name":"_version","nameLocation":"2428:8:296","nodeType":"VariableDeclaration","scope":173401,"src":"2415:21:296","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173365,"name":"bytes","nodeType":"ElementaryTypeName","src":"2415:5:296","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":173368,"mutability":"mutable","name":"_chainid","nameLocation":"2454:8:296","nodeType":"VariableDeclaration","scope":173401,"src":"2446:16:296","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173367,"name":"uint256","nodeType":"ElementaryTypeName","src":"2446:7:296","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":173370,"mutability":"mutable","name":"_verifyingContract","nameLocation":"2480:18:296","nodeType":"VariableDeclaration","scope":173401,"src":"2472:26:296","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173369,"name":"address","nodeType":"ElementaryTypeName","src":"2472:7:296","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2326:178:296"},"returnParameters":{"id":173374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173373,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":173401,"src":"2550:7:296","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173372,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2550:7:296","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2549:9:296"},"scope":173402,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"FaucetHelper","contractDependencies":[],"contractKind":"contract","documentation":{"id":173302,"nodeType":"StructuredDocumentation","src":"270:80:296","text":"@notice Simple helper contract that helps with testing the Faucet contract."},"fullyImplemented":true,"linearizedBaseContracts":[173402],"name":"FaucetHelper","nameLocation":"359:12:296","scope":173403,"usedErrors":[]}],"license":"MIT"},"id":296}
{"abi":[{"type":"function","name":"EIP712_DOMAIN_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROOF_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"consumeNonce","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"currentNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDigestWithEIP712Domain","inputs":[{"name":"_proof","type":"tuple","internalType":"struct AdminFaucetAuthModule.Proof","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"id","type":"bytes32","internalType":"bytes32"}]},{"name":"_name","type":"bytes","internalType":"bytes"},{"name":"_version","type":"bytes","internalType":"bytes"},{"name":"_chainid","type":"uint256","internalType":"uint256"},{"name":"_verifyingContract","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getProofStructHash","inputs":[{"name":"_proof","type":"tuple","internalType":"struct AdminFaucetAuthModule.Proof","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"id","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506105bd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063adb610a311610050578063adb610a314610142578063b163a6b81461014b578063c7977be71461015e57600080fd5b806334b1511814610077578063796dfbfa146100915780638b3e3bf61461011b575b600080fd5b61007f610185565b60405190815260200160405180910390f35b61007f61009f3660046103f3565b805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b61007f7fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e81565b61007f60005481565b61007f6101593660046104c1565b6101c5565b61007f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b60008054818061019483610551565b919050556040516020016101aa91815260200190565b60405160208183030381529060405280519060200120905090565b8351602080860191909120845185830120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9481019490945283019190915260608201526080810183905273ffffffffffffffffffffffffffffffffffffffff821660a0820152600090819060c00160405160208183030381529060405280519060200120905061032f816102d489805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b919050565b6000606082840312156103a457600080fd5b6040516060810181811067ffffffffffffffff821117156103c7576103c761033a565b6040529050806103d683610369565b815260208301356020820152604083013560408201525092915050565b60006060828403121561040557600080fd5b61040f8383610392565b9392505050565b600082601f83011261042757600080fd5b813567ffffffffffffffff808211156104425761044261033a565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104885761048861033a565b816040528381528660208588010111156104a157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060e086880312156104d957600080fd5b6104e38787610392565b9450606086013567ffffffffffffffff8082111561050057600080fd5b61050c89838a01610416565b9550608088013591508082111561052257600080fd5b5061052f88828901610416565b93505060a0860135915061054560c08701610369565b90509295509295909350565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036105a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"350:2488:312:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063adb610a311610050578063adb610a314610142578063b163a6b81461014b578063c7977be71461015e57600080fd5b806334b1511814610077578063796dfbfa146100915780638b3e3bf61461011b575b600080fd5b61007f610185565b60405190815260200160405180910390f35b61007f61009f3660046103f3565b805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b61007f7fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e81565b61007f60005481565b61007f6101593660046104c1565b6101c5565b61007f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b60008054818061019483610551565b919050556040516020016101aa91815260200190565b60405160208183030381529060405280519060200120905090565b8351602080860191909120845185830120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9481019490945283019190915260608201526080810183905273ffffffffffffffffffffffffffffffffffffffff821660a0820152600090819060c00160405160208183030381529060405280519060200120905061032f816102d489805160208083015160409384015184517fd4283507dc7a8282faa6b4c8c18bacbb74dbbab5467342e6f581656f3577236e8185015273ffffffffffffffffffffffffffffffffffffffff9094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461038d57600080fd5b919050565b6000606082840312156103a457600080fd5b6040516060810181811067ffffffffffffffff821117156103c7576103c761033a565b6040529050806103d683610369565b815260208301356020820152604083013560408201525092915050565b60006060828403121561040557600080fd5b61040f8383610392565b9392505050565b600082601f83011261042757600080fd5b813567ffffffffffffffff808211156104425761044261033a565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104885761048861033a565b816040528381528660208588010111156104a157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060e086880312156104d957600080fd5b6104e38787610392565b9450606086013567ffffffffffffffff8082111561050057600080fd5b61050c89838a01610416565b9550608088013591508082111561052257600080fd5b5061052f88828901610416565b93505060a0860135915061054560c08701610369565b90509295509295909350565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036105a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"350:2488:312:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1125:119;;;:::i;:::-;;;160:25:350;;;148:2;133:18;1125:119:312;;;;;;;1391:205;;;;;;:::i;:::-;1546:16;;1564:12;;;;;1578:9;;;;;1519:69;;471:62;1519:69;;;3715:25:350;3788:42;3776:55;;;3756:18;;;3749:83;3848:18;;;3841:34;;;;3891:18;;;;3884:34;;;;1519:69:312;;;;;;;;;;3687:19:350;;;;1519:69:312;;;1509:80;;;;;;1391:205;430:103;;471:62;430:103;;883:27;;;;;;2292:544;;;;;;:::i;:::-;;:::i;641:152::-;;698:95;641:152;;1125:119;1165:7;1220:14;;1165:7;;1220:14;;;:::i;:::-;;;;;1209:26;;;;;;160:25:350;;148:2;133:18;;14:177;1209:26:312;;;;;;;;;;;;;1199:37;;;;;;1184:53;;1125:119;:::o;2292:544::-;2657:16;;;;;;;;;;2675:19;;;;;;2622:103;;;698:95;2622:103;;;4188:25:350;;;;4229:18;;4222:34;;;;4272:18;;;4265:34;4315:18;;;4308:34;;;4391:42;4379:55;;4358:19;;;4351:84;2550:7:312;;;;4160:19:350;;2622:103:312;;;;;;;;;;;;2599:136;;;;;;2573:162;;2752:77;2785:15;2802:26;2821:6;1546:16;;1564:12;;;;;1578:9;;;;;1519:69;;471:62;1519:69;;;3715:25:350;3788:42;3776:55;;;3756:18;;;3749:83;3848:18;;;3841:34;;;;3891:18;;;;3884:34;;;;1519:69:312;;;;;;;;;;3687:19:350;;;;1519:69:312;;;1509:80;;;;;;1391:205;2802:26;8710:57:34;;4716:66:350;8710:57:34;;;4704:79:350;4799:11;;;4792:27;;;4835:12;;;4828:28;;;8674:7:34;;4872:12:350;;8710:57:34;;;;;;;;;;;;8700:68;;;;;;8693:75;;8581:194;;;;;2752:77:312;2745:84;2292:544;-1:-1:-1;;;;;;;2292:544:312:o;196:184:350:-;248:77;245:1;238:88;345:4;342:1;335:15;369:4;366:1;359:15;385:196;453:20;;513:42;502:54;;492:65;;482:93;;571:1;568;561:12;482:93;385:196;;;:::o;586:542::-;638:5;686:4;674:9;669:3;665:19;661:30;658:50;;;704:1;701;694:12;658:50;737:2;731:9;779:4;771:6;767:17;850:6;838:10;835:22;814:18;802:10;799:34;796:62;793:88;;;861:18;;:::i;:::-;897:2;890:22;930:6;-1:-1:-1;930:6:350;960:29;979:9;960:29;:::i;:::-;952:6;945:45;1051:2;1040:9;1036:18;1023:32;1018:2;1010:6;1006:15;999:57;1117:2;1106:9;1102:18;1089:32;1084:2;1076:6;1072:15;1065:57;;586:542;;;;:::o;1133:225::-;1217:6;1270:2;1258:9;1249:7;1245:23;1241:32;1238:52;;;1286:1;1283;1276:12;1238:52;1309:43;1344:7;1333:9;1309:43;:::i;:::-;1299:53;1133:225;-1:-1:-1;;;1133:225:350:o;1545:777::-;1587:5;1640:3;1633:4;1625:6;1621:17;1617:27;1607:55;;1658:1;1655;1648:12;1607:55;1694:6;1681:20;1720:18;1757:2;1753;1750:10;1747:36;;;1763:18;;:::i;:::-;1897:2;1891:9;1959:4;1951:13;;1802:66;1947:22;;;1971:2;1943:31;1939:40;1927:53;;;1995:18;;;2015:22;;;1992:46;1989:72;;;2041:18;;:::i;:::-;2081:10;2077:2;2070:22;2116:2;2108:6;2101:18;2162:3;2155:4;2150:2;2142:6;2138:15;2134:26;2131:35;2128:55;;;2179:1;2176;2169:12;2128:55;2243:2;2236:4;2228:6;2224:17;2217:4;2209:6;2205:17;2192:54;2290:1;2283:4;2278:2;2270:6;2266:15;2262:26;2255:37;2310:6;2301:15;;;;;;1545:777;;;;:::o;2327:798::-;2465:6;2473;2481;2489;2497;2550:3;2538:9;2529:7;2525:23;2521:33;2518:53;;;2567:1;2564;2557:12;2518:53;2590:43;2625:7;2614:9;2590:43;:::i;:::-;2580:53;;2684:2;2673:9;2669:18;2656:32;2707:18;2748:2;2740:6;2737:14;2734:34;;;2764:1;2761;2754:12;2734:34;2787:49;2828:7;2819:6;2808:9;2804:22;2787:49;:::i;:::-;2777:59;;2889:3;2878:9;2874:19;2861:33;2845:49;;2919:2;2909:8;2906:16;2903:36;;;2935:1;2932;2925:12;2903:36;;2958:51;3001:7;2990:8;2979:9;2975:24;2958:51;:::i;:::-;2948:61;;;3056:3;3045:9;3041:19;3028:33;3018:43;;3080:39;3114:3;3103:9;3099:19;3080:39;:::i;:::-;3070:49;;2327:798;;;;;;;;:::o;3130:349::-;3169:3;3200:66;3193:5;3190:77;3187:257;;3300:77;3297:1;3290:88;3401:4;3398:1;3391:15;3429:4;3426:1;3419:15;3187:257;-1:-1:-1;3471:1:350;3460:13;;3130:349::o","linkReferences":{}},"methodIdentifiers":{"EIP712_DOMAIN_TYPEHASH()":"c7977be7","PROOF_TYPEHASH()":"8b3e3bf6","consumeNonce()":"34b15118","currentNonce()":"adb610a3","getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":"b163a6b8","getProofStructHash((address,bytes32,bytes32))":"796dfbfa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EIP712_DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROOF_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consumeNonce\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct AdminFaucetAuthModule.Proof\",\"name\":\"_proof\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_name\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_version\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_chainid\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_verifyingContract\",\"type\":\"address\"}],\"name\":\"getDigestWithEIP712Domain\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct AdminFaucetAuthModule.Proof\",\"name\":\"_proof\",\"type\":\"tuple\"}],\"name\":\"getProofStructHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"consumeNonce()\":{\"returns\":{\"_0\":\"Nonce that should be used as part of drip parameters.\"}},\"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)\":{\"params\":{\"_chainid\":\"Chain ID to use in the EIP712 domain.\",\"_name\":\"Contract name to use in the EIP712 domain.\",\"_proof\":\"Proof struct to hash.\",\"_verifyingContract\":\"Address to use in the EIP712 domain.\",\"_version\":\"Contract version to use in the EIP712 domain.\"},\"returns\":{\"_0\":\"EIP-712 compatible digest.\"}},\"getProofStructHash((address,bytes32,bytes32))\":{\"params\":{\"_proof\":\"Proof struct to hash.\"},\"returns\":{\"_0\":\"EIP-712 typed struct hash.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"EIP712_DOMAIN_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the EIP712Domain type that is included as part of the signature.\"},\"PROOF_TYPEHASH()\":{\"notice\":\"EIP712 typehash for the Proof type.\"},\"consumeNonce()\":{\"notice\":\"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces.\"},\"currentNonce()\":{\"notice\":\"Keeps track of current nonce to generate new nonces for each drip.\"},\"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)\":{\"notice\":\"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail.\"},\"getProofStructHash((address,bytes32,bytes32))\":{\"notice\":\"Returns the hash of the struct Proof.\"}},\"notice\":\"Simple helper contract that helps with testing the Faucet contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/FaucetHelper.sol\":\"FaucetHelper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol\":{\"keccak256\":\"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb\",\"dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]},\"src/periphery/faucet/Faucet.sol\":{\"keccak256\":\"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727\",\"dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS\"]},\"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol\":{\"keccak256\":\"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7\",\"dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r\"]},\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":{\"keccak256\":\"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850\",\"dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf\"]},\"test/mocks/FaucetHelper.sol\":{\"keccak256\":\"0x1924dc9b7151426028273501d6fe0e3ceb3ccd38947d01fce10a36282ebe14cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76c58e4b66c72adfbac601a55e68fb9e95642a4e02d854a00918ae4d0ac42329\",\"dweb:/ipfs/QmdD2ETTgWNMvfodQwy5a6s81XRRrPp9yPPi3QFPw2HMe7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"EIP712_DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROOF_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"consumeNonce","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct AdminFaucetAuthModule.Proof","name":"_proof","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"bytes32","name":"id","type":"bytes32"}]},{"internalType":"bytes","name":"_name","type":"bytes"},{"internalType":"bytes","name":"_version","type":"bytes"},{"internalType":"uint256","name":"_chainid","type":"uint256"},{"internalType":"address","name":"_verifyingContract","type":"address"}],"stateMutability":"pure","type":"function","name":"getDigestWithEIP712Domain","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct AdminFaucetAuthModule.Proof","name":"_proof","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"bytes32","name":"id","type":"bytes32"}]}],"stateMutability":"pure","type":"function","name":"getProofStructHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"consumeNonce()":{"returns":{"_0":"Nonce that should be used as part of drip parameters."}},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"params":{"_chainid":"Chain ID to use in the EIP712 domain.","_name":"Contract name to use in the EIP712 domain.","_proof":"Proof struct to hash.","_verifyingContract":"Address to use in the EIP712 domain.","_version":"Contract version to use in the EIP712 domain."},"returns":{"_0":"EIP-712 compatible digest."}},"getProofStructHash((address,bytes32,bytes32))":{"params":{"_proof":"Proof struct to hash."},"returns":{"_0":"EIP-712 typed struct hash."}}},"version":1},"userdoc":{"kind":"user","methods":{"EIP712_DOMAIN_TYPEHASH()":{"notice":"EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"consumeNonce()":{"notice":"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces."},"currentNonce()":{"notice":"Keeps track of current nonce to generate new nonces for each drip."},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"notice":"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail."},"getProofStructHash((address,bytes32,bytes32))":{"notice":"Returns the hash of the struct Proof."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/FaucetHelper.sol":"FaucetHelper"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol":{"keccak256":"0xbf5daf926894541a40a64b43c3746aa1940c5a1b3b8d14a06465eea72a9b90cc","urls":["bzz-raw://fbdea6be4e36fc5406e81560d8f3f073a61c5d3cb5889b7c896ff5981e2128eb","dweb:/ipfs/QmPpkPNkLEjDf4RZYjiypj9BrNyaXrb2U4pE9aq7sTG9km"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"},"src/periphery/faucet/Faucet.sol":{"keccak256":"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb","urls":["bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727","dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS"],"license":"MIT"},"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol":{"keccak256":"0x61ee226cdf92f7cee746ca0742cd34998add458e1e3a61d748091e1baca1115e","urls":["bzz-raw://ebaa96860a55390e9c52f4096fda83b5a0a0c7603a43afeb9af116e14942f0c7","dweb:/ipfs/QmS2iimkhDxUmpS2QSyfWPUJrhLsXvz9H2kQE7BCYLyg3r"],"license":"MIT"},"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":{"keccak256":"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d","urls":["bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850","dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf"],"license":"MIT"},"test/mocks/FaucetHelper.sol":{"keccak256":"0x1924dc9b7151426028273501d6fe0e3ceb3ccd38947d01fce10a36282ebe14cd","urls":["bzz-raw://76c58e4b66c72adfbac601a55e68fb9e95642a4e02d854a00918ae4d0ac42329","dweb:/ipfs/QmdD2ETTgWNMvfodQwy5a6s81XRRrPp9yPPi3QFPw2HMe7"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":191576,"contract":"test/mocks/FaucetHelper.sol:FaucetHelper","label":"currentNonce","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"EIP712_DOMAIN_TYPEHASH()":{"notice":"EIP712 typehash for the EIP712Domain type that is included as part of the signature."},"PROOF_TYPEHASH()":{"notice":"EIP712 typehash for the Proof type."},"consumeNonce()":{"notice":"Returns a bytes32 nonce that should change everytime. In practice, people should use pseudorandom nonces."},"currentNonce()":{"notice":"Keeps track of current nonce to generate new nonces for each drip."},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"notice":"Computes the EIP712 digest with the given domain parameters. Used for testing that different domain parameters fail."},"getProofStructHash((address,bytes32,bytes32))":{"notice":"Returns the hash of the struct Proof."}},"notice":"Simple helper contract that helps with testing the Faucet contract."},"devdoc":{"version":1,"kind":"dev","methods":{"consumeNonce()":{"returns":{"_0":"Nonce that should be used as part of drip parameters."}},"getDigestWithEIP712Domain((address,bytes32,bytes32),bytes,bytes,uint256,address)":{"params":{"_chainid":"Chain ID to use in the EIP712 domain.","_name":"Contract name to use in the EIP712 domain.","_proof":"Proof struct to hash.","_verifyingContract":"Address to use in the EIP712 domain.","_version":"Contract version to use in the EIP712 domain."},"returns":{"_0":"EIP-712 compatible digest."}},"getProofStructHash((address,bytes32,bytes32))":{"params":{"_proof":"Proof struct to hash."},"returns":{"_0":"EIP-712 typed struct hash."}}}},"id":312}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"checkAfterExecution","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"success","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"checkTransaction","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"},{"name":"safeTxGas","type":"uint256","internalType":"uint256"},{"name":"baseGas","type":"uint256","internalType":"uint256"},{"name":"gasPrice","type":"uint256","internalType":"uint256"},{"name":"gasToken","type":"address","internalType":"address"},{"name":"refundReceiver","type":"address","internalType":"address payable"},{"name":"signatures","type":"bytes","internalType":"bytes"},{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"checkAfterExecution(bytes32,bool)":"93271368","checkTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes,address)":"75f0bb52","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"checkAfterExecution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"safeTxGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"gasToken\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"refundReceiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"checkTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/base/GuardManager.sol\":\"BaseGuard\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/base/GuardManager.sol\":{\"keccak256\":\"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64\",\"dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34\",\"dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo\"]},\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3\",\"dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu\"]},\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"checkAfterExecution"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address payable","name":"refundReceiver","type":"address"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"checkTransaction"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/base/GuardManager.sol":"BaseGuard"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/base/GuardManager.sol":{"keccak256":"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d","urls":["bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64","dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453","urls":["bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34","dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13","urls":["bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3","dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb","urls":["bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89","dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"ast":{"absolutePath":"lib/safe-contracts/contracts/base/GuardManager.sol","id":56988,"exportedSymbols":{"BaseGuard":[56925],"Enum":[57930],"Guard":[56899],"GuardManager":[56987],"IERC165":[58273],"SelfAuthorized":[58005]},"nodeType":"SourceUnit","src":"42:2899:74","nodes":[{"id":56860,"nodeType":"PragmaDirective","src":"42:31:74","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":56861,"nodeType":"ImportDirective","src":"75:28:74","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/Enum.sol","file":"../common/Enum.sol","nameLocation":"-1:-1:-1","scope":56988,"sourceUnit":57931,"symbolAliases":[],"unitAlias":""},{"id":56862,"nodeType":"ImportDirective","src":"104:38:74","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/SelfAuthorized.sol","file":"../common/SelfAuthorized.sol","nameLocation":"-1:-1:-1","scope":56988,"sourceUnit":58006,"symbolAliases":[],"unitAlias":""},{"id":56863,"nodeType":"ImportDirective","src":"143:35:74","nodes":[],"absolutePath":"lib/safe-contracts/contracts/interfaces/IERC165.sol","file":"../interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":56988,"sourceUnit":58274,"symbolAliases":[],"unitAlias":""},{"id":56899,"nodeType":"ContractDefinition","src":"180:458:74","nodes":[{"id":56891,"nodeType":"FunctionDefinition","src":"213:349:74","nodes":[],"functionSelector":"75f0bb52","implemented":false,"kind":"function","modifiers":[],"name":"checkTransaction","nameLocation":"222:16:74","parameters":{"id":56889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56867,"mutability":"mutable","name":"to","nameLocation":"256:2:74","nodeType":"VariableDeclaration","scope":56891,"src":"248:10:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56866,"name":"address","nodeType":"ElementaryTypeName","src":"248:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56869,"mutability":"mutable","name":"value","nameLocation":"276:5:74","nodeType":"VariableDeclaration","scope":56891,"src":"268:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56868,"name":"uint256","nodeType":"ElementaryTypeName","src":"268:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56871,"mutability":"mutable","name":"data","nameLocation":"304:4:74","nodeType":"VariableDeclaration","scope":56891,"src":"291:17:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56870,"name":"bytes","nodeType":"ElementaryTypeName","src":"291:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":56874,"mutability":"mutable","name":"operation","nameLocation":"333:9:74","nodeType":"VariableDeclaration","scope":56891,"src":"318:24:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$57929","typeString":"enum Enum.Operation"},"typeName":{"id":56873,"nodeType":"UserDefinedTypeName","pathNode":{"id":56872,"name":"Enum.Operation","nodeType":"IdentifierPath","referencedDeclaration":57929,"src":"318:14:74"},"referencedDeclaration":57929,"src":"318:14:74","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$57929","typeString":"enum Enum.Operation"}},"visibility":"internal"},{"constant":false,"id":56876,"mutability":"mutable","name":"safeTxGas","nameLocation":"360:9:74","nodeType":"VariableDeclaration","scope":56891,"src":"352:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56875,"name":"uint256","nodeType":"ElementaryTypeName","src":"352:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56878,"mutability":"mutable","name":"baseGas","nameLocation":"387:7:74","nodeType":"VariableDeclaration","scope":56891,"src":"379:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56877,"name":"uint256","nodeType":"ElementaryTypeName","src":"379:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56880,"mutability":"mutable","name":"gasPrice","nameLocation":"412:8:74","nodeType":"VariableDeclaration","scope":56891,"src":"404:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56879,"name":"uint256","nodeType":"ElementaryTypeName","src":"404:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56882,"mutability":"mutable","name":"gasToken","nameLocation":"438:8:74","nodeType":"VariableDeclaration","scope":56891,"src":"430:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56881,"name":"address","nodeType":"ElementaryTypeName","src":"430:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56884,"mutability":"mutable","name":"refundReceiver","nameLocation":"472:14:74","nodeType":"VariableDeclaration","scope":56891,"src":"456:30:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":56883,"name":"address","nodeType":"ElementaryTypeName","src":"456:15:74","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":56886,"mutability":"mutable","name":"signatures","nameLocation":"509:10:74","nodeType":"VariableDeclaration","scope":56891,"src":"496:23:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56885,"name":"bytes","nodeType":"ElementaryTypeName","src":"496:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":56888,"mutability":"mutable","name":"msgSender","nameLocation":"537:9:74","nodeType":"VariableDeclaration","scope":56891,"src":"529:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56887,"name":"address","nodeType":"ElementaryTypeName","src":"529:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"238:314:74"},"returnParameters":{"id":56890,"nodeType":"ParameterList","parameters":[],"src":"561:0:74"},"scope":56899,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56898,"nodeType":"FunctionDefinition","src":"568:68:74","nodes":[],"functionSelector":"93271368","implemented":false,"kind":"function","modifiers":[],"name":"checkAfterExecution","nameLocation":"577:19:74","parameters":{"id":56896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56893,"mutability":"mutable","name":"txHash","nameLocation":"605:6:74","nodeType":"VariableDeclaration","scope":56898,"src":"597:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"597:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56895,"mutability":"mutable","name":"success","nameLocation":"618:7:74","nodeType":"VariableDeclaration","scope":56898,"src":"613:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56894,"name":"bool","nodeType":"ElementaryTypeName","src":"613:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"596:30:74"},"returnParameters":{"id":56897,"nodeType":"ParameterList","parameters":[],"src":"635:0:74"},"scope":56899,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":56864,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":58273,"src":"199:7:74"},"id":56865,"nodeType":"InheritanceSpecifier","src":"199:7:74"}],"canonicalName":"Guard","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[56899,58273],"name":"Guard","nameLocation":"190:5:74","scope":56988,"usedErrors":[]},{"id":56925,"nodeType":"ContractDefinition","src":"640:296:74","nodes":[{"id":56924,"nodeType":"FunctionDefinition","src":"683:251:74","nodes":[],"body":{"id":56923,"nodeType":"Block","src":"776:158:74","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":56921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":56914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56909,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56903,"src":"805:11:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":56911,"name":"Guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56899,"src":"825:5:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}],"id":56910,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"820:4:74","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":56912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"820:11:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Guard_$56899","typeString":"type(contract Guard)"}},"id":56913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"820:23:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"805:38:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":56920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56915,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56903,"src":"873:11:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":56917,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58273,"src":"893:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$58273_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$58273_$","typeString":"type(contract IERC165)"}],"id":56916,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"888:4:74","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":56918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"888:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$58273","typeString":"type(contract IERC165)"}},"id":56919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"888:25:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"873:40:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"805:108:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":56908,"id":56922,"nodeType":"Return","src":"786:127:74"}]},"baseFunctions":[58272],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"692:17:74","overrides":{"id":56905,"nodeType":"OverrideSpecifier","overrides":[],"src":"752:8:74"},"parameters":{"id":56904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56903,"mutability":"mutable","name":"interfaceId","nameLocation":"717:11:74","nodeType":"VariableDeclaration","scope":56924,"src":"710:18:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":56902,"name":"bytes4","nodeType":"ElementaryTypeName","src":"710:6:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"709:20:74"},"returnParameters":{"id":56908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56924,"src":"770:4:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56906,"name":"bool","nodeType":"ElementaryTypeName","src":"770:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"769:6:74"},"scope":56925,"stateMutability":"view","virtual":true,"visibility":"external"}],"abstract":true,"baseContracts":[{"baseName":{"id":56900,"name":"Guard","nodeType":"IdentifierPath","referencedDeclaration":56899,"src":"671:5:74"},"id":56901,"nodeType":"InheritanceSpecifier","src":"671:5:74"}],"canonicalName":"BaseGuard","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"linearizedBaseContracts":[56925,56899,58273],"name":"BaseGuard","nameLocation":"658:9:74","scope":56988,"usedErrors":[]},{"id":56987,"nodeType":"ContractDefinition","src":"1108:1832:74","nodes":[{"id":56932,"nodeType":"EventDefinition","src":"1163:42:74","nodes":[],"anonymous":false,"eventSelector":"1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa2","name":"ChangedGuard","nameLocation":"1169:12:74","parameters":{"id":56931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56930,"indexed":true,"mutability":"mutable","name":"guard","nameLocation":"1198:5:74","nodeType":"VariableDeclaration","scope":56932,"src":"1182:21:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56929,"name":"address","nodeType":"ElementaryTypeName","src":"1182:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1181:23:74"}},{"id":56935,"nodeType":"VariableDeclaration","src":"1259:113:74","nodes":[],"constant":true,"mutability":"constant","name":"GUARD_STORAGE_SLOT","nameLocation":"1285:18:74","scope":56987,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1259:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834613230346636323063386335636364636133666435346430303362616464383562613530303433366134333166306362646134663535386339336333346338","id":56934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1306:66:74","typeDescriptions":{"typeIdentifier":"t_rational_33528237782592280163068556224972516439282563014722366175641814928123294921928_by_1","typeString":"int_const 3352...(69 digits omitted)...1928"},"value":"0x4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c8"},"visibility":"internal"},{"id":56974,"nodeType":"FunctionDefinition","src":"1962:386:74","nodes":[],"body":{"id":56973,"nodeType":"Block","src":"2015:333:74","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56943,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56938,"src":"2029:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2046:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":56945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2038:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56944,"name":"address","nodeType":"ElementaryTypeName","src":"2038:7:74","typeDescriptions":{}}},"id":56947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2038:10:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2029:19:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56963,"nodeType":"IfStatement","src":"2025:123:74","trueBody":{"id":56962,"nodeType":"Block","src":"2050:98:74","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":56955,"name":"Guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56899,"src":"2108:5:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}],"id":56954,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2103:4:74","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":56956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2103:11:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Guard_$56899","typeString":"type(contract Guard)"}},"id":56957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"2103:23:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"id":56951,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56938,"src":"2078:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56950,"name":"Guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56899,"src":"2072:5:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}},"id":56952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:12:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Guard_$56899","typeString":"contract Guard"}},"id":56953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58272,"src":"2072:30:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":56958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:55:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753333030","id":56959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2129:7:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2a4c0da6073a4ef35f113e24388fa780c351ad02fefd784ffba62884174edf0","typeString":"literal_string \"GS300\""},"value":"GS300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c2a4c0da6073a4ef35f113e24388fa780c351ad02fefd784ffba62884174edf0","typeString":"literal_string \"GS300\""}],"id":56949,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2064:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2064:73:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56961,"nodeType":"ExpressionStatement","src":"2064:73:74"}]}},{"assignments":[56965],"declarations":[{"constant":false,"id":56965,"mutability":"mutable","name":"slot","nameLocation":"2165:4:74","nodeType":"VariableDeclaration","scope":56973,"src":"2157:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2157:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":56967,"initialValue":{"id":56966,"name":"GUARD_STORAGE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56935,"src":"2172:18:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2157:33:74"},{"AST":{"nodeType":"YulBlock","src":"2265:43:74","statements":[{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2286:4:74"},{"name":"guard","nodeType":"YulIdentifier","src":"2292:5:74"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2279:6:74"},"nodeType":"YulFunctionCall","src":"2279:19:74"},"nodeType":"YulExpressionStatement","src":"2279:19:74"}]},"evmVersion":"london","externalReferences":[{"declaration":56938,"isOffset":false,"isSlot":false,"src":"2292:5:74","valueSize":1},{"declaration":56965,"isOffset":false,"isSlot":false,"src":"2286:4:74","valueSize":1}],"id":56968,"nodeType":"InlineAssembly","src":"2256:52:74"},{"eventCall":{"arguments":[{"id":56970,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56938,"src":"2335:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56969,"name":"ChangedGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56932,"src":"2322:12:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":56971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2322:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56972,"nodeType":"EmitStatement","src":"2317:24:74"}]},"documentation":{"id":56936,"nodeType":"StructuredDocumentation","src":"1379:578:74","text":" @dev Set a guard that checks transactions before execution\n This can only be done via a Safe transaction.\n ⚠️ IMPORTANT: Since a guard has full power to block Safe transaction execution,\n a broken guard can cause a denial of service for the Safe. Make sure to carefully\n audit the guard code and design recovery mechanisms.\n @notice Set Transaction Guard `guard` for the Safe. Make sure you trust the guard.\n @param guard The address of the guard to be used or the 0 address to disable the guard"},"functionSelector":"e19a9dd9","implemented":true,"kind":"function","modifiers":[{"id":56941,"kind":"modifierInvocation","modifierName":{"id":56940,"name":"authorized","nodeType":"IdentifierPath","referencedDeclaration":58004,"src":"2004:10:74"},"nodeType":"ModifierInvocation","src":"2004:10:74"}],"name":"setGuard","nameLocation":"1971:8:74","parameters":{"id":56939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56938,"mutability":"mutable","name":"guard","nameLocation":"1988:5:74","nodeType":"VariableDeclaration","scope":56974,"src":"1980:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56937,"name":"address","nodeType":"ElementaryTypeName","src":"1980:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1979:15:74"},"returnParameters":{"id":56942,"nodeType":"ParameterList","parameters":[],"src":"2015:0:74"},"scope":56987,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56986,"nodeType":"FunctionDefinition","src":"2712:226:74","nodes":[],"body":{"id":56985,"nodeType":"Block","src":"2770:168:74","nodes":[],"statements":[{"assignments":[56981],"declarations":[{"constant":false,"id":56981,"mutability":"mutable","name":"slot","nameLocation":"2788:4:74","nodeType":"VariableDeclaration","scope":56985,"src":"2780:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56980,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2780:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":56983,"initialValue":{"id":56982,"name":"GUARD_STORAGE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56935,"src":"2795:18:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2780:33:74"},{"AST":{"nodeType":"YulBlock","src":"2888:44:74","statements":[{"nodeType":"YulAssignment","src":"2902:20:74","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2917:4:74"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"2911:5:74"},"nodeType":"YulFunctionCall","src":"2911:11:74"},"variableNames":[{"name":"guard","nodeType":"YulIdentifier","src":"2902:5:74"}]}]},"evmVersion":"london","externalReferences":[{"declaration":56978,"isOffset":false,"isSlot":false,"src":"2902:5:74","valueSize":1},{"declaration":56981,"isOffset":false,"isSlot":false,"src":"2917:4:74","valueSize":1}],"id":56984,"nodeType":"InlineAssembly","src":"2879:53:74"}]},"documentation":{"id":56975,"nodeType":"StructuredDocumentation","src":"2354:353:74","text":" @dev Internal method to retrieve the current guard\n We do not have a public method because we're short on bytecode size limit,\n to retrieve the guard address, one can use `getStorageAt` from `StorageAccessible` contract\n with the slot `GUARD_STORAGE_SLOT`\n @return guard The address of the guard"},"implemented":true,"kind":"function","modifiers":[],"name":"getGuard","nameLocation":"2721:8:74","parameters":{"id":56976,"nodeType":"ParameterList","parameters":[],"src":"2729:2:74"},"returnParameters":{"id":56979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56978,"mutability":"mutable","name":"guard","nameLocation":"2763:5:74","nodeType":"VariableDeclaration","scope":56986,"src":"2755:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56977,"name":"address","nodeType":"ElementaryTypeName","src":"2755:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2754:15:74"},"scope":56987,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":56927,"name":"SelfAuthorized","nodeType":"IdentifierPath","referencedDeclaration":58005,"src":"1142:14:74"},"id":56928,"nodeType":"InheritanceSpecifier","src":"1142:14:74"}],"canonicalName":"GuardManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":56926,"nodeType":"StructuredDocumentation","src":"938:169:74","text":" @title Guard Manager - A contract managing transaction guards which perform pre and post-checks on Safe transactions.\n @author Richard Meissner - @rmeissner"},"fullyImplemented":true,"linearizedBaseContracts":[56987,58005],"name":"GuardManager","nameLocation":"1126:12:74","scope":56988,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":74}
{"abi":[{"type":"function","name":"checkAfterExecution","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"success","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"checkTransaction","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"},{"name":"safeTxGas","type":"uint256","internalType":"uint256"},{"name":"baseGas","type":"uint256","internalType":"uint256"},{"name":"gasPrice","type":"uint256","internalType":"uint256"},{"name":"gasToken","type":"address","internalType":"address"},{"name":"refundReceiver","type":"address","internalType":"address payable"},{"name":"signatures","type":"bytes","internalType":"bytes"},{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"checkAfterExecution(bytes32,bool)":"93271368","checkTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes,address)":"75f0bb52","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"checkAfterExecution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"safeTxGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"gasToken\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"refundReceiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"checkTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/base/GuardManager.sol\":\"BaseGuard\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/base/GuardManager.sol\":{\"keccak256\":\"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64\",\"dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34\",\"dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo\"]},\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3\",\"dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu\"]},\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"checkAfterExecution"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address payable","name":"refundReceiver","type":"address"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"checkTransaction"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/base/GuardManager.sol":"BaseGuard"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/base/GuardManager.sol":{"keccak256":"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d","urls":["bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64","dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453","urls":["bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34","dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13","urls":["bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3","dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb","urls":["bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89","dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"id":74}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"checkAfterExecution","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"success","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"checkTransaction","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"},{"name":"safeTxGas","type":"uint256","internalType":"uint256"},{"name":"baseGas","type":"uint256","internalType":"uint256"},{"name":"gasPrice","type":"uint256","internalType":"uint256"},{"name":"gasToken","type":"address","internalType":"address"},{"name":"refundReceiver","type":"address","internalType":"address payable"},{"name":"signatures","type":"bytes","internalType":"bytes"},{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"checkAfterExecution(bytes32,bool)":"93271368","checkTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes,address)":"75f0bb52","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"checkAfterExecution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"safeTxGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"gasToken\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"refundReceiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"checkTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/base/GuardManager.sol\":\"Guard\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/base/GuardManager.sol\":{\"keccak256\":\"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64\",\"dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34\",\"dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo\"]},\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3\",\"dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu\"]},\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"checkAfterExecution"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address payable","name":"refundReceiver","type":"address"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"checkTransaction"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/base/GuardManager.sol":"Guard"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/base/GuardManager.sol":{"keccak256":"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d","urls":["bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64","dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453","urls":["bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34","dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13","urls":["bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3","dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb","urls":["bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89","dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"ast":{"absolutePath":"lib/safe-contracts/contracts/base/GuardManager.sol","id":56988,"exportedSymbols":{"BaseGuard":[56925],"Enum":[57930],"Guard":[56899],"GuardManager":[56987],"IERC165":[58273],"SelfAuthorized":[58005]},"nodeType":"SourceUnit","src":"42:2899:74","nodes":[{"id":56860,"nodeType":"PragmaDirective","src":"42:31:74","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":56861,"nodeType":"ImportDirective","src":"75:28:74","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/Enum.sol","file":"../common/Enum.sol","nameLocation":"-1:-1:-1","scope":56988,"sourceUnit":57931,"symbolAliases":[],"unitAlias":""},{"id":56862,"nodeType":"ImportDirective","src":"104:38:74","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/SelfAuthorized.sol","file":"../common/SelfAuthorized.sol","nameLocation":"-1:-1:-1","scope":56988,"sourceUnit":58006,"symbolAliases":[],"unitAlias":""},{"id":56863,"nodeType":"ImportDirective","src":"143:35:74","nodes":[],"absolutePath":"lib/safe-contracts/contracts/interfaces/IERC165.sol","file":"../interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":56988,"sourceUnit":58274,"symbolAliases":[],"unitAlias":""},{"id":56899,"nodeType":"ContractDefinition","src":"180:458:74","nodes":[{"id":56891,"nodeType":"FunctionDefinition","src":"213:349:74","nodes":[],"functionSelector":"75f0bb52","implemented":false,"kind":"function","modifiers":[],"name":"checkTransaction","nameLocation":"222:16:74","parameters":{"id":56889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56867,"mutability":"mutable","name":"to","nameLocation":"256:2:74","nodeType":"VariableDeclaration","scope":56891,"src":"248:10:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56866,"name":"address","nodeType":"ElementaryTypeName","src":"248:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56869,"mutability":"mutable","name":"value","nameLocation":"276:5:74","nodeType":"VariableDeclaration","scope":56891,"src":"268:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56868,"name":"uint256","nodeType":"ElementaryTypeName","src":"268:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56871,"mutability":"mutable","name":"data","nameLocation":"304:4:74","nodeType":"VariableDeclaration","scope":56891,"src":"291:17:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56870,"name":"bytes","nodeType":"ElementaryTypeName","src":"291:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":56874,"mutability":"mutable","name":"operation","nameLocation":"333:9:74","nodeType":"VariableDeclaration","scope":56891,"src":"318:24:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$57929","typeString":"enum Enum.Operation"},"typeName":{"id":56873,"nodeType":"UserDefinedTypeName","pathNode":{"id":56872,"name":"Enum.Operation","nodeType":"IdentifierPath","referencedDeclaration":57929,"src":"318:14:74"},"referencedDeclaration":57929,"src":"318:14:74","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$57929","typeString":"enum Enum.Operation"}},"visibility":"internal"},{"constant":false,"id":56876,"mutability":"mutable","name":"safeTxGas","nameLocation":"360:9:74","nodeType":"VariableDeclaration","scope":56891,"src":"352:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56875,"name":"uint256","nodeType":"ElementaryTypeName","src":"352:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56878,"mutability":"mutable","name":"baseGas","nameLocation":"387:7:74","nodeType":"VariableDeclaration","scope":56891,"src":"379:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56877,"name":"uint256","nodeType":"ElementaryTypeName","src":"379:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56880,"mutability":"mutable","name":"gasPrice","nameLocation":"412:8:74","nodeType":"VariableDeclaration","scope":56891,"src":"404:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56879,"name":"uint256","nodeType":"ElementaryTypeName","src":"404:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56882,"mutability":"mutable","name":"gasToken","nameLocation":"438:8:74","nodeType":"VariableDeclaration","scope":56891,"src":"430:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56881,"name":"address","nodeType":"ElementaryTypeName","src":"430:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56884,"mutability":"mutable","name":"refundReceiver","nameLocation":"472:14:74","nodeType":"VariableDeclaration","scope":56891,"src":"456:30:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":56883,"name":"address","nodeType":"ElementaryTypeName","src":"456:15:74","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":56886,"mutability":"mutable","name":"signatures","nameLocation":"509:10:74","nodeType":"VariableDeclaration","scope":56891,"src":"496:23:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56885,"name":"bytes","nodeType":"ElementaryTypeName","src":"496:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":56888,"mutability":"mutable","name":"msgSender","nameLocation":"537:9:74","nodeType":"VariableDeclaration","scope":56891,"src":"529:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56887,"name":"address","nodeType":"ElementaryTypeName","src":"529:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"238:314:74"},"returnParameters":{"id":56890,"nodeType":"ParameterList","parameters":[],"src":"561:0:74"},"scope":56899,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56898,"nodeType":"FunctionDefinition","src":"568:68:74","nodes":[],"functionSelector":"93271368","implemented":false,"kind":"function","modifiers":[],"name":"checkAfterExecution","nameLocation":"577:19:74","parameters":{"id":56896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56893,"mutability":"mutable","name":"txHash","nameLocation":"605:6:74","nodeType":"VariableDeclaration","scope":56898,"src":"597:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"597:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56895,"mutability":"mutable","name":"success","nameLocation":"618:7:74","nodeType":"VariableDeclaration","scope":56898,"src":"613:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56894,"name":"bool","nodeType":"ElementaryTypeName","src":"613:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"596:30:74"},"returnParameters":{"id":56897,"nodeType":"ParameterList","parameters":[],"src":"635:0:74"},"scope":56899,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":56864,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":58273,"src":"199:7:74"},"id":56865,"nodeType":"InheritanceSpecifier","src":"199:7:74"}],"canonicalName":"Guard","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[56899,58273],"name":"Guard","nameLocation":"190:5:74","scope":56988,"usedErrors":[]},{"id":56925,"nodeType":"ContractDefinition","src":"640:296:74","nodes":[{"id":56924,"nodeType":"FunctionDefinition","src":"683:251:74","nodes":[],"body":{"id":56923,"nodeType":"Block","src":"776:158:74","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":56921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":56914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56909,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56903,"src":"805:11:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":56911,"name":"Guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56899,"src":"825:5:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}],"id":56910,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"820:4:74","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":56912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"820:11:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Guard_$56899","typeString":"type(contract Guard)"}},"id":56913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"820:23:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"805:38:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":56920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56915,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56903,"src":"873:11:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":56917,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58273,"src":"893:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$58273_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$58273_$","typeString":"type(contract IERC165)"}],"id":56916,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"888:4:74","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":56918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"888:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$58273","typeString":"type(contract IERC165)"}},"id":56919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"888:25:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"873:40:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"805:108:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":56908,"id":56922,"nodeType":"Return","src":"786:127:74"}]},"baseFunctions":[58272],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"692:17:74","overrides":{"id":56905,"nodeType":"OverrideSpecifier","overrides":[],"src":"752:8:74"},"parameters":{"id":56904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56903,"mutability":"mutable","name":"interfaceId","nameLocation":"717:11:74","nodeType":"VariableDeclaration","scope":56924,"src":"710:18:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":56902,"name":"bytes4","nodeType":"ElementaryTypeName","src":"710:6:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"709:20:74"},"returnParameters":{"id":56908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56924,"src":"770:4:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56906,"name":"bool","nodeType":"ElementaryTypeName","src":"770:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"769:6:74"},"scope":56925,"stateMutability":"view","virtual":true,"visibility":"external"}],"abstract":true,"baseContracts":[{"baseName":{"id":56900,"name":"Guard","nodeType":"IdentifierPath","referencedDeclaration":56899,"src":"671:5:74"},"id":56901,"nodeType":"InheritanceSpecifier","src":"671:5:74"}],"canonicalName":"BaseGuard","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"linearizedBaseContracts":[56925,56899,58273],"name":"BaseGuard","nameLocation":"658:9:74","scope":56988,"usedErrors":[]},{"id":56987,"nodeType":"ContractDefinition","src":"1108:1832:74","nodes":[{"id":56932,"nodeType":"EventDefinition","src":"1163:42:74","nodes":[],"anonymous":false,"eventSelector":"1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa2","name":"ChangedGuard","nameLocation":"1169:12:74","parameters":{"id":56931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56930,"indexed":true,"mutability":"mutable","name":"guard","nameLocation":"1198:5:74","nodeType":"VariableDeclaration","scope":56932,"src":"1182:21:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56929,"name":"address","nodeType":"ElementaryTypeName","src":"1182:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1181:23:74"}},{"id":56935,"nodeType":"VariableDeclaration","src":"1259:113:74","nodes":[],"constant":true,"mutability":"constant","name":"GUARD_STORAGE_SLOT","nameLocation":"1285:18:74","scope":56987,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1259:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834613230346636323063386335636364636133666435346430303362616464383562613530303433366134333166306362646134663535386339336333346338","id":56934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1306:66:74","typeDescriptions":{"typeIdentifier":"t_rational_33528237782592280163068556224972516439282563014722366175641814928123294921928_by_1","typeString":"int_const 3352...(69 digits omitted)...1928"},"value":"0x4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c8"},"visibility":"internal"},{"id":56974,"nodeType":"FunctionDefinition","src":"1962:386:74","nodes":[],"body":{"id":56973,"nodeType":"Block","src":"2015:333:74","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56943,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56938,"src":"2029:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2046:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":56945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2038:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56944,"name":"address","nodeType":"ElementaryTypeName","src":"2038:7:74","typeDescriptions":{}}},"id":56947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2038:10:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2029:19:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56963,"nodeType":"IfStatement","src":"2025:123:74","trueBody":{"id":56962,"nodeType":"Block","src":"2050:98:74","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":56955,"name":"Guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56899,"src":"2108:5:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}],"id":56954,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2103:4:74","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":56956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2103:11:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Guard_$56899","typeString":"type(contract Guard)"}},"id":56957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"2103:23:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"id":56951,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56938,"src":"2078:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56950,"name":"Guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56899,"src":"2072:5:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}},"id":56952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:12:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Guard_$56899","typeString":"contract Guard"}},"id":56953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58272,"src":"2072:30:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":56958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:55:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753333030","id":56959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2129:7:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2a4c0da6073a4ef35f113e24388fa780c351ad02fefd784ffba62884174edf0","typeString":"literal_string \"GS300\""},"value":"GS300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c2a4c0da6073a4ef35f113e24388fa780c351ad02fefd784ffba62884174edf0","typeString":"literal_string \"GS300\""}],"id":56949,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2064:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2064:73:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56961,"nodeType":"ExpressionStatement","src":"2064:73:74"}]}},{"assignments":[56965],"declarations":[{"constant":false,"id":56965,"mutability":"mutable","name":"slot","nameLocation":"2165:4:74","nodeType":"VariableDeclaration","scope":56973,"src":"2157:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2157:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":56967,"initialValue":{"id":56966,"name":"GUARD_STORAGE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56935,"src":"2172:18:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2157:33:74"},{"AST":{"nodeType":"YulBlock","src":"2265:43:74","statements":[{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2286:4:74"},{"name":"guard","nodeType":"YulIdentifier","src":"2292:5:74"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2279:6:74"},"nodeType":"YulFunctionCall","src":"2279:19:74"},"nodeType":"YulExpressionStatement","src":"2279:19:74"}]},"evmVersion":"london","externalReferences":[{"declaration":56938,"isOffset":false,"isSlot":false,"src":"2292:5:74","valueSize":1},{"declaration":56965,"isOffset":false,"isSlot":false,"src":"2286:4:74","valueSize":1}],"id":56968,"nodeType":"InlineAssembly","src":"2256:52:74"},{"eventCall":{"arguments":[{"id":56970,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56938,"src":"2335:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56969,"name":"ChangedGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56932,"src":"2322:12:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":56971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2322:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56972,"nodeType":"EmitStatement","src":"2317:24:74"}]},"documentation":{"id":56936,"nodeType":"StructuredDocumentation","src":"1379:578:74","text":" @dev Set a guard that checks transactions before execution\n This can only be done via a Safe transaction.\n ⚠️ IMPORTANT: Since a guard has full power to block Safe transaction execution,\n a broken guard can cause a denial of service for the Safe. Make sure to carefully\n audit the guard code and design recovery mechanisms.\n @notice Set Transaction Guard `guard` for the Safe. Make sure you trust the guard.\n @param guard The address of the guard to be used or the 0 address to disable the guard"},"functionSelector":"e19a9dd9","implemented":true,"kind":"function","modifiers":[{"id":56941,"kind":"modifierInvocation","modifierName":{"id":56940,"name":"authorized","nodeType":"IdentifierPath","referencedDeclaration":58004,"src":"2004:10:74"},"nodeType":"ModifierInvocation","src":"2004:10:74"}],"name":"setGuard","nameLocation":"1971:8:74","parameters":{"id":56939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56938,"mutability":"mutable","name":"guard","nameLocation":"1988:5:74","nodeType":"VariableDeclaration","scope":56974,"src":"1980:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56937,"name":"address","nodeType":"ElementaryTypeName","src":"1980:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1979:15:74"},"returnParameters":{"id":56942,"nodeType":"ParameterList","parameters":[],"src":"2015:0:74"},"scope":56987,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56986,"nodeType":"FunctionDefinition","src":"2712:226:74","nodes":[],"body":{"id":56985,"nodeType":"Block","src":"2770:168:74","nodes":[],"statements":[{"assignments":[56981],"declarations":[{"constant":false,"id":56981,"mutability":"mutable","name":"slot","nameLocation":"2788:4:74","nodeType":"VariableDeclaration","scope":56985,"src":"2780:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56980,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2780:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":56983,"initialValue":{"id":56982,"name":"GUARD_STORAGE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56935,"src":"2795:18:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2780:33:74"},{"AST":{"nodeType":"YulBlock","src":"2888:44:74","statements":[{"nodeType":"YulAssignment","src":"2902:20:74","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2917:4:74"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"2911:5:74"},"nodeType":"YulFunctionCall","src":"2911:11:74"},"variableNames":[{"name":"guard","nodeType":"YulIdentifier","src":"2902:5:74"}]}]},"evmVersion":"london","externalReferences":[{"declaration":56978,"isOffset":false,"isSlot":false,"src":"2902:5:74","valueSize":1},{"declaration":56981,"isOffset":false,"isSlot":false,"src":"2917:4:74","valueSize":1}],"id":56984,"nodeType":"InlineAssembly","src":"2879:53:74"}]},"documentation":{"id":56975,"nodeType":"StructuredDocumentation","src":"2354:353:74","text":" @dev Internal method to retrieve the current guard\n We do not have a public method because we're short on bytecode size limit,\n to retrieve the guard address, one can use `getStorageAt` from `StorageAccessible` contract\n with the slot `GUARD_STORAGE_SLOT`\n @return guard The address of the guard"},"implemented":true,"kind":"function","modifiers":[],"name":"getGuard","nameLocation":"2721:8:74","parameters":{"id":56976,"nodeType":"ParameterList","parameters":[],"src":"2729:2:74"},"returnParameters":{"id":56979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56978,"mutability":"mutable","name":"guard","nameLocation":"2763:5:74","nodeType":"VariableDeclaration","scope":56986,"src":"2755:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56977,"name":"address","nodeType":"ElementaryTypeName","src":"2755:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2754:15:74"},"scope":56987,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":56927,"name":"SelfAuthorized","nodeType":"IdentifierPath","referencedDeclaration":58005,"src":"1142:14:74"},"id":56928,"nodeType":"InheritanceSpecifier","src":"1142:14:74"}],"canonicalName":"GuardManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":56926,"nodeType":"StructuredDocumentation","src":"938:169:74","text":" @title Guard Manager - A contract managing transaction guards which perform pre and post-checks on Safe transactions.\n @author Richard Meissner - @rmeissner"},"fullyImplemented":true,"linearizedBaseContracts":[56987,58005],"name":"GuardManager","nameLocation":"1126:12:74","scope":56988,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":74}
{"abi":[{"type":"function","name":"checkAfterExecution","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"success","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"checkTransaction","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"},{"name":"safeTxGas","type":"uint256","internalType":"uint256"},{"name":"baseGas","type":"uint256","internalType":"uint256"},{"name":"gasPrice","type":"uint256","internalType":"uint256"},{"name":"gasToken","type":"address","internalType":"address"},{"name":"refundReceiver","type":"address","internalType":"address payable"},{"name":"signatures","type":"bytes","internalType":"bytes"},{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"checkAfterExecution(bytes32,bool)":"93271368","checkTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes,address)":"75f0bb52","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"checkAfterExecution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"safeTxGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"gasToken\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"refundReceiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"checkTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/base/GuardManager.sol\":\"Guard\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/base/GuardManager.sol\":{\"keccak256\":\"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64\",\"dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34\",\"dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo\"]},\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3\",\"dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu\"]},\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"checkAfterExecution"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address payable","name":"refundReceiver","type":"address"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"checkTransaction"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/base/GuardManager.sol":"Guard"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/base/GuardManager.sol":{"keccak256":"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d","urls":["bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64","dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453","urls":["bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34","dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13","urls":["bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3","dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb","urls":["bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89","dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"id":74}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"setGuard","inputs":[{"name":"guard","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ChangedGuard","inputs":[{"name":"guard","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"setGuard(address)":"e19a9dd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guard\",\"type\":\"address\"}],\"name\":\"ChangedGuard\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guard\",\"type\":\"address\"}],\"name\":\"setGuard\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{\"setGuard(address)\":{\"details\":\"Set a guard that checks transactions before execution This can only be done via a Safe transaction. \\u26a0\\ufe0f IMPORTANT: Since a guard has full power to block Safe transaction execution, a broken guard can cause a denial of service for the Safe. Make sure to carefully audit the guard code and design recovery mechanisms.\",\"params\":{\"guard\":\"The address of the guard to be used or the 0 address to disable the guard\"}}},\"title\":\"Guard Manager - A contract managing transaction guards which perform pre and post-checks on Safe transactions.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setGuard(address)\":{\"notice\":\"Set Transaction Guard `guard` for the Safe. Make sure you trust the guard.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/base/GuardManager.sol\":\"GuardManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/base/GuardManager.sol\":{\"keccak256\":\"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64\",\"dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34\",\"dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo\"]},\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3\",\"dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu\"]},\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"guard","type":"address","indexed":true}],"type":"event","name":"ChangedGuard","anonymous":false},{"inputs":[{"internalType":"address","name":"guard","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setGuard"}],"devdoc":{"kind":"dev","methods":{"setGuard(address)":{"details":"Set a guard that checks transactions before execution This can only be done via a Safe transaction. ⚠️ IMPORTANT: Since a guard has full power to block Safe transaction execution, a broken guard can cause a denial of service for the Safe. Make sure to carefully audit the guard code and design recovery mechanisms.","params":{"guard":"The address of the guard to be used or the 0 address to disable the guard"}}},"version":1},"userdoc":{"kind":"user","methods":{"setGuard(address)":{"notice":"Set Transaction Guard `guard` for the Safe. Make sure you trust the guard."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/base/GuardManager.sol":"GuardManager"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/base/GuardManager.sol":{"keccak256":"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d","urls":["bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64","dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453","urls":["bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34","dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13","urls":["bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3","dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb","urls":["bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89","dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"setGuard(address)":{"notice":"Set Transaction Guard `guard` for the Safe. Make sure you trust the guard."}}},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","methods":{"setGuard(address)":{"details":"Set a guard that checks transactions before execution This can only be done via a Safe transaction. ⚠️ IMPORTANT: Since a guard has full power to block Safe transaction execution, a broken guard can cause a denial of service for the Safe. Make sure to carefully audit the guard code and design recovery mechanisms.","params":{"guard":"The address of the guard to be used or the 0 address to disable the guard"}}},"title":"Guard Manager - A contract managing transaction guards which perform pre and post-checks on Safe transactions."},"ast":{"absolutePath":"lib/safe-contracts/contracts/base/GuardManager.sol","id":56988,"exportedSymbols":{"BaseGuard":[56925],"Enum":[57930],"Guard":[56899],"GuardManager":[56987],"IERC165":[58273],"SelfAuthorized":[58005]},"nodeType":"SourceUnit","src":"42:2899:74","nodes":[{"id":56860,"nodeType":"PragmaDirective","src":"42:31:74","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":56861,"nodeType":"ImportDirective","src":"75:28:74","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/Enum.sol","file":"../common/Enum.sol","nameLocation":"-1:-1:-1","scope":56988,"sourceUnit":57931,"symbolAliases":[],"unitAlias":""},{"id":56862,"nodeType":"ImportDirective","src":"104:38:74","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/SelfAuthorized.sol","file":"../common/SelfAuthorized.sol","nameLocation":"-1:-1:-1","scope":56988,"sourceUnit":58006,"symbolAliases":[],"unitAlias":""},{"id":56863,"nodeType":"ImportDirective","src":"143:35:74","nodes":[],"absolutePath":"lib/safe-contracts/contracts/interfaces/IERC165.sol","file":"../interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":56988,"sourceUnit":58274,"symbolAliases":[],"unitAlias":""},{"id":56899,"nodeType":"ContractDefinition","src":"180:458:74","nodes":[{"id":56891,"nodeType":"FunctionDefinition","src":"213:349:74","nodes":[],"functionSelector":"75f0bb52","implemented":false,"kind":"function","modifiers":[],"name":"checkTransaction","nameLocation":"222:16:74","parameters":{"id":56889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56867,"mutability":"mutable","name":"to","nameLocation":"256:2:74","nodeType":"VariableDeclaration","scope":56891,"src":"248:10:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56866,"name":"address","nodeType":"ElementaryTypeName","src":"248:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56869,"mutability":"mutable","name":"value","nameLocation":"276:5:74","nodeType":"VariableDeclaration","scope":56891,"src":"268:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56868,"name":"uint256","nodeType":"ElementaryTypeName","src":"268:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56871,"mutability":"mutable","name":"data","nameLocation":"304:4:74","nodeType":"VariableDeclaration","scope":56891,"src":"291:17:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56870,"name":"bytes","nodeType":"ElementaryTypeName","src":"291:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":56874,"mutability":"mutable","name":"operation","nameLocation":"333:9:74","nodeType":"VariableDeclaration","scope":56891,"src":"318:24:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$57929","typeString":"enum Enum.Operation"},"typeName":{"id":56873,"nodeType":"UserDefinedTypeName","pathNode":{"id":56872,"name":"Enum.Operation","nodeType":"IdentifierPath","referencedDeclaration":57929,"src":"318:14:74"},"referencedDeclaration":57929,"src":"318:14:74","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$57929","typeString":"enum Enum.Operation"}},"visibility":"internal"},{"constant":false,"id":56876,"mutability":"mutable","name":"safeTxGas","nameLocation":"360:9:74","nodeType":"VariableDeclaration","scope":56891,"src":"352:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56875,"name":"uint256","nodeType":"ElementaryTypeName","src":"352:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56878,"mutability":"mutable","name":"baseGas","nameLocation":"387:7:74","nodeType":"VariableDeclaration","scope":56891,"src":"379:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56877,"name":"uint256","nodeType":"ElementaryTypeName","src":"379:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56880,"mutability":"mutable","name":"gasPrice","nameLocation":"412:8:74","nodeType":"VariableDeclaration","scope":56891,"src":"404:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56879,"name":"uint256","nodeType":"ElementaryTypeName","src":"404:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56882,"mutability":"mutable","name":"gasToken","nameLocation":"438:8:74","nodeType":"VariableDeclaration","scope":56891,"src":"430:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56881,"name":"address","nodeType":"ElementaryTypeName","src":"430:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56884,"mutability":"mutable","name":"refundReceiver","nameLocation":"472:14:74","nodeType":"VariableDeclaration","scope":56891,"src":"456:30:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":56883,"name":"address","nodeType":"ElementaryTypeName","src":"456:15:74","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":56886,"mutability":"mutable","name":"signatures","nameLocation":"509:10:74","nodeType":"VariableDeclaration","scope":56891,"src":"496:23:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56885,"name":"bytes","nodeType":"ElementaryTypeName","src":"496:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":56888,"mutability":"mutable","name":"msgSender","nameLocation":"537:9:74","nodeType":"VariableDeclaration","scope":56891,"src":"529:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56887,"name":"address","nodeType":"ElementaryTypeName","src":"529:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"238:314:74"},"returnParameters":{"id":56890,"nodeType":"ParameterList","parameters":[],"src":"561:0:74"},"scope":56899,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56898,"nodeType":"FunctionDefinition","src":"568:68:74","nodes":[],"functionSelector":"93271368","implemented":false,"kind":"function","modifiers":[],"name":"checkAfterExecution","nameLocation":"577:19:74","parameters":{"id":56896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56893,"mutability":"mutable","name":"txHash","nameLocation":"605:6:74","nodeType":"VariableDeclaration","scope":56898,"src":"597:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"597:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56895,"mutability":"mutable","name":"success","nameLocation":"618:7:74","nodeType":"VariableDeclaration","scope":56898,"src":"613:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56894,"name":"bool","nodeType":"ElementaryTypeName","src":"613:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"596:30:74"},"returnParameters":{"id":56897,"nodeType":"ParameterList","parameters":[],"src":"635:0:74"},"scope":56899,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":56864,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":58273,"src":"199:7:74"},"id":56865,"nodeType":"InheritanceSpecifier","src":"199:7:74"}],"canonicalName":"Guard","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[56899,58273],"name":"Guard","nameLocation":"190:5:74","scope":56988,"usedErrors":[]},{"id":56925,"nodeType":"ContractDefinition","src":"640:296:74","nodes":[{"id":56924,"nodeType":"FunctionDefinition","src":"683:251:74","nodes":[],"body":{"id":56923,"nodeType":"Block","src":"776:158:74","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":56921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":56914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56909,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56903,"src":"805:11:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":56911,"name":"Guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56899,"src":"825:5:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}],"id":56910,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"820:4:74","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":56912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"820:11:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Guard_$56899","typeString":"type(contract Guard)"}},"id":56913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"820:23:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"805:38:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":56920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56915,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56903,"src":"873:11:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":56917,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58273,"src":"893:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$58273_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$58273_$","typeString":"type(contract IERC165)"}],"id":56916,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"888:4:74","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":56918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"888:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$58273","typeString":"type(contract IERC165)"}},"id":56919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"888:25:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"873:40:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"805:108:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":56908,"id":56922,"nodeType":"Return","src":"786:127:74"}]},"baseFunctions":[58272],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"692:17:74","overrides":{"id":56905,"nodeType":"OverrideSpecifier","overrides":[],"src":"752:8:74"},"parameters":{"id":56904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56903,"mutability":"mutable","name":"interfaceId","nameLocation":"717:11:74","nodeType":"VariableDeclaration","scope":56924,"src":"710:18:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":56902,"name":"bytes4","nodeType":"ElementaryTypeName","src":"710:6:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"709:20:74"},"returnParameters":{"id":56908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56924,"src":"770:4:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56906,"name":"bool","nodeType":"ElementaryTypeName","src":"770:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"769:6:74"},"scope":56925,"stateMutability":"view","virtual":true,"visibility":"external"}],"abstract":true,"baseContracts":[{"baseName":{"id":56900,"name":"Guard","nodeType":"IdentifierPath","referencedDeclaration":56899,"src":"671:5:74"},"id":56901,"nodeType":"InheritanceSpecifier","src":"671:5:74"}],"canonicalName":"BaseGuard","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"linearizedBaseContracts":[56925,56899,58273],"name":"BaseGuard","nameLocation":"658:9:74","scope":56988,"usedErrors":[]},{"id":56987,"nodeType":"ContractDefinition","src":"1108:1832:74","nodes":[{"id":56932,"nodeType":"EventDefinition","src":"1163:42:74","nodes":[],"anonymous":false,"eventSelector":"1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa2","name":"ChangedGuard","nameLocation":"1169:12:74","parameters":{"id":56931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56930,"indexed":true,"mutability":"mutable","name":"guard","nameLocation":"1198:5:74","nodeType":"VariableDeclaration","scope":56932,"src":"1182:21:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56929,"name":"address","nodeType":"ElementaryTypeName","src":"1182:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1181:23:74"}},{"id":56935,"nodeType":"VariableDeclaration","src":"1259:113:74","nodes":[],"constant":true,"mutability":"constant","name":"GUARD_STORAGE_SLOT","nameLocation":"1285:18:74","scope":56987,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1259:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834613230346636323063386335636364636133666435346430303362616464383562613530303433366134333166306362646134663535386339336333346338","id":56934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1306:66:74","typeDescriptions":{"typeIdentifier":"t_rational_33528237782592280163068556224972516439282563014722366175641814928123294921928_by_1","typeString":"int_const 3352...(69 digits omitted)...1928"},"value":"0x4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c8"},"visibility":"internal"},{"id":56974,"nodeType":"FunctionDefinition","src":"1962:386:74","nodes":[],"body":{"id":56973,"nodeType":"Block","src":"2015:333:74","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56943,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56938,"src":"2029:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2046:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":56945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2038:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56944,"name":"address","nodeType":"ElementaryTypeName","src":"2038:7:74","typeDescriptions":{}}},"id":56947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2038:10:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2029:19:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56963,"nodeType":"IfStatement","src":"2025:123:74","trueBody":{"id":56962,"nodeType":"Block","src":"2050:98:74","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":56955,"name":"Guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56899,"src":"2108:5:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}],"id":56954,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2103:4:74","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":56956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2103:11:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Guard_$56899","typeString":"type(contract Guard)"}},"id":56957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"2103:23:74","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"id":56951,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56938,"src":"2078:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56950,"name":"Guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56899,"src":"2072:5:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Guard_$56899_$","typeString":"type(contract Guard)"}},"id":56952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:12:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Guard_$56899","typeString":"contract Guard"}},"id":56953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58272,"src":"2072:30:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":56958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:55:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753333030","id":56959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2129:7:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2a4c0da6073a4ef35f113e24388fa780c351ad02fefd784ffba62884174edf0","typeString":"literal_string \"GS300\""},"value":"GS300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c2a4c0da6073a4ef35f113e24388fa780c351ad02fefd784ffba62884174edf0","typeString":"literal_string \"GS300\""}],"id":56949,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2064:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2064:73:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56961,"nodeType":"ExpressionStatement","src":"2064:73:74"}]}},{"assignments":[56965],"declarations":[{"constant":false,"id":56965,"mutability":"mutable","name":"slot","nameLocation":"2165:4:74","nodeType":"VariableDeclaration","scope":56973,"src":"2157:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2157:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":56967,"initialValue":{"id":56966,"name":"GUARD_STORAGE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56935,"src":"2172:18:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2157:33:74"},{"AST":{"nodeType":"YulBlock","src":"2265:43:74","statements":[{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2286:4:74"},{"name":"guard","nodeType":"YulIdentifier","src":"2292:5:74"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2279:6:74"},"nodeType":"YulFunctionCall","src":"2279:19:74"},"nodeType":"YulExpressionStatement","src":"2279:19:74"}]},"evmVersion":"london","externalReferences":[{"declaration":56938,"isOffset":false,"isSlot":false,"src":"2292:5:74","valueSize":1},{"declaration":56965,"isOffset":false,"isSlot":false,"src":"2286:4:74","valueSize":1}],"id":56968,"nodeType":"InlineAssembly","src":"2256:52:74"},{"eventCall":{"arguments":[{"id":56970,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56938,"src":"2335:5:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56969,"name":"ChangedGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56932,"src":"2322:12:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":56971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2322:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56972,"nodeType":"EmitStatement","src":"2317:24:74"}]},"documentation":{"id":56936,"nodeType":"StructuredDocumentation","src":"1379:578:74","text":" @dev Set a guard that checks transactions before execution\n This can only be done via a Safe transaction.\n ⚠️ IMPORTANT: Since a guard has full power to block Safe transaction execution,\n a broken guard can cause a denial of service for the Safe. Make sure to carefully\n audit the guard code and design recovery mechanisms.\n @notice Set Transaction Guard `guard` for the Safe. Make sure you trust the guard.\n @param guard The address of the guard to be used or the 0 address to disable the guard"},"functionSelector":"e19a9dd9","implemented":true,"kind":"function","modifiers":[{"id":56941,"kind":"modifierInvocation","modifierName":{"id":56940,"name":"authorized","nodeType":"IdentifierPath","referencedDeclaration":58004,"src":"2004:10:74"},"nodeType":"ModifierInvocation","src":"2004:10:74"}],"name":"setGuard","nameLocation":"1971:8:74","parameters":{"id":56939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56938,"mutability":"mutable","name":"guard","nameLocation":"1988:5:74","nodeType":"VariableDeclaration","scope":56974,"src":"1980:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56937,"name":"address","nodeType":"ElementaryTypeName","src":"1980:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1979:15:74"},"returnParameters":{"id":56942,"nodeType":"ParameterList","parameters":[],"src":"2015:0:74"},"scope":56987,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56986,"nodeType":"FunctionDefinition","src":"2712:226:74","nodes":[],"body":{"id":56985,"nodeType":"Block","src":"2770:168:74","nodes":[],"statements":[{"assignments":[56981],"declarations":[{"constant":false,"id":56981,"mutability":"mutable","name":"slot","nameLocation":"2788:4:74","nodeType":"VariableDeclaration","scope":56985,"src":"2780:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56980,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2780:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":56983,"initialValue":{"id":56982,"name":"GUARD_STORAGE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56935,"src":"2795:18:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2780:33:74"},{"AST":{"nodeType":"YulBlock","src":"2888:44:74","statements":[{"nodeType":"YulAssignment","src":"2902:20:74","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2917:4:74"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"2911:5:74"},"nodeType":"YulFunctionCall","src":"2911:11:74"},"variableNames":[{"name":"guard","nodeType":"YulIdentifier","src":"2902:5:74"}]}]},"evmVersion":"london","externalReferences":[{"declaration":56978,"isOffset":false,"isSlot":false,"src":"2902:5:74","valueSize":1},{"declaration":56981,"isOffset":false,"isSlot":false,"src":"2917:4:74","valueSize":1}],"id":56984,"nodeType":"InlineAssembly","src":"2879:53:74"}]},"documentation":{"id":56975,"nodeType":"StructuredDocumentation","src":"2354:353:74","text":" @dev Internal method to retrieve the current guard\n We do not have a public method because we're short on bytecode size limit,\n to retrieve the guard address, one can use `getStorageAt` from `StorageAccessible` contract\n with the slot `GUARD_STORAGE_SLOT`\n @return guard The address of the guard"},"implemented":true,"kind":"function","modifiers":[],"name":"getGuard","nameLocation":"2721:8:74","parameters":{"id":56976,"nodeType":"ParameterList","parameters":[],"src":"2729:2:74"},"returnParameters":{"id":56979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56978,"mutability":"mutable","name":"guard","nameLocation":"2763:5:74","nodeType":"VariableDeclaration","scope":56986,"src":"2755:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56977,"name":"address","nodeType":"ElementaryTypeName","src":"2755:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2754:15:74"},"scope":56987,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":56927,"name":"SelfAuthorized","nodeType":"IdentifierPath","referencedDeclaration":58005,"src":"1142:14:74"},"id":56928,"nodeType":"InheritanceSpecifier","src":"1142:14:74"}],"canonicalName":"GuardManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":56926,"nodeType":"StructuredDocumentation","src":"938:169:74","text":" @title Guard Manager - A contract managing transaction guards which perform pre and post-checks on Safe transactions.\n @author Richard Meissner - @rmeissner"},"fullyImplemented":true,"linearizedBaseContracts":[56987,58005],"name":"GuardManager","nameLocation":"1126:12:74","scope":56988,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":74}
{"abi":[{"type":"function","name":"setGuard","inputs":[{"name":"guard","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ChangedGuard","inputs":[{"name":"guard","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"setGuard(address)":"e19a9dd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guard\",\"type\":\"address\"}],\"name\":\"ChangedGuard\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guard\",\"type\":\"address\"}],\"name\":\"setGuard\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{\"setGuard(address)\":{\"details\":\"Set a guard that checks transactions before execution This can only be done via a Safe transaction. \\u26a0\\ufe0f IMPORTANT: Since a guard has full power to block Safe transaction execution, a broken guard can cause a denial of service for the Safe. Make sure to carefully audit the guard code and design recovery mechanisms.\",\"params\":{\"guard\":\"The address of the guard to be used or the 0 address to disable the guard\"}}},\"title\":\"Guard Manager - A contract managing transaction guards which perform pre and post-checks on Safe transactions.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setGuard(address)\":{\"notice\":\"Set Transaction Guard `guard` for the Safe. Make sure you trust the guard.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/base/GuardManager.sol\":\"GuardManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/base/GuardManager.sol\":{\"keccak256\":\"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64\",\"dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34\",\"dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo\"]},\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3\",\"dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu\"]},\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"guard","type":"address","indexed":true}],"type":"event","name":"ChangedGuard","anonymous":false},{"inputs":[{"internalType":"address","name":"guard","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setGuard"}],"devdoc":{"kind":"dev","methods":{"setGuard(address)":{"details":"Set a guard that checks transactions before execution This can only be done via a Safe transaction. ⚠️ IMPORTANT: Since a guard has full power to block Safe transaction execution, a broken guard can cause a denial of service for the Safe. Make sure to carefully audit the guard code and design recovery mechanisms.","params":{"guard":"The address of the guard to be used or the 0 address to disable the guard"}}},"version":1},"userdoc":{"kind":"user","methods":{"setGuard(address)":{"notice":"Set Transaction Guard `guard` for the Safe. Make sure you trust the guard."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/base/GuardManager.sol":"GuardManager"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/base/GuardManager.sol":{"keccak256":"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d","urls":["bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64","dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453","urls":["bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34","dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13","urls":["bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3","dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb","urls":["bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89","dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"setGuard(address)":{"notice":"Set Transaction Guard `guard` for the Safe. Make sure you trust the guard."}}},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","methods":{"setGuard(address)":{"details":"Set a guard that checks transactions before execution This can only be done via a Safe transaction. ⚠️ IMPORTANT: Since a guard has full power to block Safe transaction execution, a broken guard can cause a denial of service for the Safe. Make sure to carefully audit the guard code and design recovery mechanisms.","params":{"guard":"The address of the guard to be used or the 0 address to disable the guard"}}},"title":"Guard Manager - A contract managing transaction guards which perform pre and post-checks on Safe transactions."},"id":74}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"255:5092:181:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;255:5092:181;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"255:5092:181:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Hashing\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Hashing handles Optimism's various different hashing schemes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Hashing.sol\":\"Hashing\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Hashing.sol":"Hashing"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Hashing handles Optimism's various different hashing schemes."},"devdoc":{"version":1,"kind":"dev","title":"Hashing"},"ast":{"absolutePath":"src/libraries/Hashing.sol","id":93698,"exportedSymbols":{"Encoding":[93475],"Hashing":[93697],"Types":[94081]},"nodeType":"SourceUnit","src":"32:5316:181","nodes":[{"id":93477,"nodeType":"PragmaDirective","src":"32:23:181","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":93479,"nodeType":"ImportDirective","src":"57:48:181","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":93698,"sourceUnit":94082,"symbolAliases":[{"foreign":{"id":93478,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94081,"src":"66:5:181","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":93481,"nodeType":"ImportDirective","src":"106:54:181","nodes":[],"absolutePath":"src/libraries/Encoding.sol","file":"src/libraries/Encoding.sol","nameLocation":"-1:-1:-1","scope":93698,"sourceUnit":93476,"symbolAliases":[{"foreign":{"id":93480,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93475,"src":"115:8:181","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":93697,"nodeType":"ContractDefinition","src":"255:5092:181","nodes":[{"id":93499,"nodeType":"FunctionDefinition","src":"618:178:181","nodes":[],"body":{"id":93498,"nodeType":"Block","src":"723:73:181","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":93494,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93486,"src":"784:3:181","typeDescriptions":{"typeIdentifier":"t_struct$_UserDepositTransaction_$94067_memory_ptr","typeString":"struct Types.UserDepositTransaction memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UserDepositTransaction_$94067_memory_ptr","typeString":"struct Types.UserDepositTransaction memory"}],"expression":{"id":93492,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93475,"src":"750:8:181","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$93475_$","typeString":"type(library Encoding)"}},"id":93493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encodeDepositTransaction","nodeType":"MemberAccess","referencedDeclaration":93277,"src":"750:33:181","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_UserDepositTransaction_$94067_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct Types.UserDepositTransaction memory) pure returns (bytes memory)"}},"id":93495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"750:38:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":93491,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"740:9:181","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":93496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"740:49:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":93490,"id":93497,"nodeType":"Return","src":"733:56:181"}]},"documentation":{"id":93483,"nodeType":"StructuredDocumentation","src":"277:336:181","text":"@notice Computes the hash of the RLP encoded L2 transaction that would be generated when a\n given deposit is sent to the L2 system. Useful for searching for a deposit in the L2\n system.\n @param _tx User deposit transaction to hash.\n @return Hash of the RLP encoded L2 deposit transaction."},"implemented":true,"kind":"function","modifiers":[],"name":"hashDepositTransaction","nameLocation":"627:22:181","parameters":{"id":93487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93486,"mutability":"mutable","name":"_tx","nameLocation":"686:3:181","nodeType":"VariableDeclaration","scope":93499,"src":"650:39:181","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UserDepositTransaction_$94067_memory_ptr","typeString":"struct Types.UserDepositTransaction"},"typeName":{"id":93485,"nodeType":"UserDefinedTypeName","pathNode":{"id":93484,"name":"Types.UserDepositTransaction","nodeType":"IdentifierPath","referencedDeclaration":94067,"src":"650:28:181"},"referencedDeclaration":94067,"src":"650:28:181","typeDescriptions":{"typeIdentifier":"t_struct$_UserDepositTransaction_$94067_storage_ptr","typeString":"struct Types.UserDepositTransaction"}},"visibility":"internal"}],"src":"649:41:181"},"returnParameters":{"id":93490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":93499,"src":"714:7:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"714:7:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"713:9:181"},"scope":93697,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":93531,"nodeType":"FunctionDefinition","src":"1289:244:181","nodes":[],"body":{"id":93530,"nodeType":"Block","src":"1389:144:181","nodes":[],"statements":[{"assignments":[93510],"declarations":[{"constant":false,"id":93510,"mutability":"mutable","name":"depositId","nameLocation":"1407:9:181","nodeType":"VariableDeclaration","scope":93530,"src":"1399:17:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93509,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1399:7:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":93518,"initialValue":{"arguments":[{"arguments":[{"id":93514,"name":"_l1BlockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93502,"src":"1440:12:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":93515,"name":"_logIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93504,"src":"1454:9:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":93512,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1429:3:181","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":93513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1429:10:181","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":93516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1429:35:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":93511,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1419:9:181","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":93517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1419:46:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1399:66:181"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":93524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1511:1:181","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":93523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1503:7:181","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":93522,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1503:7:181","typeDescriptions":{}}},"id":93525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1503:10:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":93526,"name":"depositId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93510,"src":"1515:9:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":93520,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1492:3:181","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":93521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1492:10:181","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":93527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1492:33:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":93519,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1482:9:181","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":93528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1482:44:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":93508,"id":93529,"nodeType":"Return","src":"1475:51:181"}]},"documentation":{"id":93500,"nodeType":"StructuredDocumentation","src":"802:482:181","text":"@notice Computes the deposit transaction's \"source hash\", a value that guarantees the hash\n of the L2 transaction that corresponds to a deposit is unique and is\n deterministically generated from L1 transaction data.\n @param _l1BlockHash Hash of the L1 block where the deposit was included.\n @param _logIndex The index of the log that created the deposit transaction.\n @return Hash of the deposit transaction's \"source hash\"."},"implemented":true,"kind":"function","modifiers":[],"name":"hashDepositSource","nameLocation":"1298:17:181","parameters":{"id":93505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93502,"mutability":"mutable","name":"_l1BlockHash","nameLocation":"1324:12:181","nodeType":"VariableDeclaration","scope":93531,"src":"1316:20:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93501,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1316:7:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":93504,"mutability":"mutable","name":"_logIndex","nameLocation":"1346:9:181","nodeType":"VariableDeclaration","scope":93531,"src":"1338:17:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93503,"name":"uint256","nodeType":"ElementaryTypeName","src":"1338:7:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1315:41:181"},"returnParameters":{"id":93508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93507,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":93531,"src":"1380:7:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93506,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1380:7:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1379:9:181"},"scope":93697,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":93588,"nodeType":"FunctionDefinition","src":"2094:660:181","nodes":[],"body":{"id":93587,"nodeType":"Block","src":"2345:409:181","nodes":[],"statements":[{"assignments":[null,93550],"declarations":[null,{"constant":false,"id":93550,"mutability":"mutable","name":"version","nameLocation":"2365:7:181","nodeType":"VariableDeclaration","scope":93587,"src":"2358:14:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":93549,"name":"uint16","nodeType":"ElementaryTypeName","src":"2358:6:181","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":93555,"initialValue":{"arguments":[{"id":93553,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93534,"src":"2406:6:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":93551,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93475,"src":"2376:8:181","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$93475_$","typeString":"type(library Encoding)"}},"id":93552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decodeVersionedNonce","nodeType":"MemberAccess","referencedDeclaration":93426,"src":"2376:29:181","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint240_$_t_uint16_$","typeString":"function (uint256) pure returns (uint240,uint16)"}},"id":93554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2376:37:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint240_$_t_uint16_$","typeString":"tuple(uint240,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"2355:58:181"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":93558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":93556,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93550,"src":"2427:7:181","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":93557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2438:1:181","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2427:12:181","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":93569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":93567,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93550,"src":"2540:7:181","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":93568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2551:1:181","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2540:12:181","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":93584,"nodeType":"Block","src":"2668:80:181","statements":[{"expression":{"arguments":[{"hexValue":"48617368696e673a20756e6b6e6f776e2063726f737320646f6d61696e206d6573736167652076657273696f6e","id":93581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2689:47:181","typeDescriptions":{"typeIdentifier":"t_stringliteral_384bb798b2228f81413367d26d76c93c293c9719e4003e054257d609e7be0f72","typeString":"literal_string \"Hashing: unknown cross domain message version\""},"value":"Hashing: unknown cross domain message version"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_384bb798b2228f81413367d26d76c93c293c9719e4003e054257d609e7be0f72","typeString":"literal_string \"Hashing: unknown cross domain message version\""}],"id":93580,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2682:6:181","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":93582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2682:55:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":93583,"nodeType":"ExpressionStatement","src":"2682:55:181"}]},"id":93585,"nodeType":"IfStatement","src":"2536:212:181","trueBody":{"id":93579,"nodeType":"Block","src":"2554:108:181","statements":[{"expression":{"arguments":[{"id":93571,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93534,"src":"2600:6:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":93572,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93536,"src":"2608:7:181","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":93573,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93538,"src":"2617:7:181","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":93574,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93540,"src":"2626:6:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":93575,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93542,"src":"2634:9:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":93576,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93544,"src":"2645:5:181","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":93570,"name":"hashCrossDomainMessageV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93644,"src":"2575:24:181","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,address,address,uint256,uint256,bytes memory) pure returns (bytes32)"}},"id":93577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2575:76:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":93548,"id":93578,"nodeType":"Return","src":"2568:83:181"}]}},"id":93586,"nodeType":"IfStatement","src":"2423:325:181","trueBody":{"id":93566,"nodeType":"Block","src":"2441:89:181","statements":[{"expression":{"arguments":[{"id":93560,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93538,"src":"2487:7:181","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":93561,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93536,"src":"2496:7:181","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":93562,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93544,"src":"2505:5:181","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":93563,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93534,"src":"2512:6:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":93559,"name":"hashCrossDomainMessageV0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93613,"src":"2462:24:181","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,address,bytes memory,uint256) pure returns (bytes32)"}},"id":93564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2462:57:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":93548,"id":93565,"nodeType":"Return","src":"2455:64:181"}]}}]},"documentation":{"id":93532,"nodeType":"StructuredDocumentation","src":"1539:550:181","text":"@notice Hashes the cross domain message based on the version that is encoded into the\n message nonce.\n @param _nonce Message nonce with version encoded into the first two bytes.\n @param _sender Address of the sender of the message.\n @param _target Address of the target of the message.\n @param _value ETH value to send to the target.\n @param _gasLimit Gas limit to use for the message.\n @param _data Data to send with the message.\n @return Hashed cross domain message."},"implemented":true,"kind":"function","modifiers":[],"name":"hashCrossDomainMessage","nameLocation":"2103:22:181","parameters":{"id":93545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93534,"mutability":"mutable","name":"_nonce","nameLocation":"2143:6:181","nodeType":"VariableDeclaration","scope":93588,"src":"2135:14:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93533,"name":"uint256","nodeType":"ElementaryTypeName","src":"2135:7:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93536,"mutability":"mutable","name":"_sender","nameLocation":"2167:7:181","nodeType":"VariableDeclaration","scope":93588,"src":"2159:15:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93535,"name":"address","nodeType":"ElementaryTypeName","src":"2159:7:181","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":93538,"mutability":"mutable","name":"_target","nameLocation":"2192:7:181","nodeType":"VariableDeclaration","scope":93588,"src":"2184:15:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93537,"name":"address","nodeType":"ElementaryTypeName","src":"2184:7:181","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":93540,"mutability":"mutable","name":"_value","nameLocation":"2217:6:181","nodeType":"VariableDeclaration","scope":93588,"src":"2209:14:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93539,"name":"uint256","nodeType":"ElementaryTypeName","src":"2209:7:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93542,"mutability":"mutable","name":"_gasLimit","nameLocation":"2241:9:181","nodeType":"VariableDeclaration","scope":93588,"src":"2233:17:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93541,"name":"uint256","nodeType":"ElementaryTypeName","src":"2233:7:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93544,"mutability":"mutable","name":"_data","nameLocation":"2273:5:181","nodeType":"VariableDeclaration","scope":93588,"src":"2260:18:181","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":93543,"name":"bytes","nodeType":"ElementaryTypeName","src":"2260:5:181","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2125:159:181"},"returnParameters":{"id":93548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":93588,"src":"2332:7:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2332:7:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2331:9:181"},"scope":93697,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":93613,"nodeType":"FunctionDefinition","src":"3100:305:181","nodes":[],"body":{"id":93612,"nodeType":"Block","src":"3302:103:181","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":93605,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93591,"src":"3365:7:181","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":93606,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93593,"src":"3374:7:181","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":93607,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93595,"src":"3383:5:181","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":93608,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93597,"src":"3390:6:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":93603,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93475,"src":"3329:8:181","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$93475_$","typeString":"type(library Encoding)"}},"id":93604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encodeCrossDomainMessageV0","nodeType":"MemberAccess","referencedDeclaration":93357,"src":"3329:35:181","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,address,bytes memory,uint256) pure returns (bytes memory)"}},"id":93609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3329:68:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":93602,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3319:9:181","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":93610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3319:79:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":93601,"id":93611,"nodeType":"Return","src":"3312:86:181"}]},"documentation":{"id":93589,"nodeType":"StructuredDocumentation","src":"2760:335:181","text":"@notice Hashes a cross domain message based on the V0 (legacy) encoding.\n @param _target Address of the target of the message.\n @param _sender Address of the sender of the message.\n @param _data Data to send with the message.\n @param _nonce Message nonce.\n @return Hashed cross domain message."},"implemented":true,"kind":"function","modifiers":[],"name":"hashCrossDomainMessageV0","nameLocation":"3109:24:181","parameters":{"id":93598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93591,"mutability":"mutable","name":"_target","nameLocation":"3151:7:181","nodeType":"VariableDeclaration","scope":93613,"src":"3143:15:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93590,"name":"address","nodeType":"ElementaryTypeName","src":"3143:7:181","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":93593,"mutability":"mutable","name":"_sender","nameLocation":"3176:7:181","nodeType":"VariableDeclaration","scope":93613,"src":"3168:15:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93592,"name":"address","nodeType":"ElementaryTypeName","src":"3168:7:181","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":93595,"mutability":"mutable","name":"_data","nameLocation":"3206:5:181","nodeType":"VariableDeclaration","scope":93613,"src":"3193:18:181","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":93594,"name":"bytes","nodeType":"ElementaryTypeName","src":"3193:5:181","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":93597,"mutability":"mutable","name":"_nonce","nameLocation":"3229:6:181","nodeType":"VariableDeclaration","scope":93613,"src":"3221:14:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93596,"name":"uint256","nodeType":"ElementaryTypeName","src":"3221:7:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3133:108:181"},"returnParameters":{"id":93601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93600,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":93613,"src":"3289:7:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3289:7:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3288:9:181"},"scope":93697,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":93644,"nodeType":"FunctionDefinition","src":"3877:375:181","nodes":[],"body":{"id":93643,"nodeType":"Block","src":"4130:122:181","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":93634,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93616,"src":"4193:6:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":93635,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93618,"src":"4201:7:181","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":93636,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93620,"src":"4210:7:181","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":93637,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93622,"src":"4219:6:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":93638,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93624,"src":"4227:9:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":93639,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93626,"src":"4238:5:181","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":93632,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93475,"src":"4157:8:181","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$93475_$","typeString":"type(library Encoding)"}},"id":93633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encodeCrossDomainMessageV1","nodeType":"MemberAccess","referencedDeclaration":93387,"src":"4157:35:181","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,address,address,uint256,uint256,bytes memory) pure returns (bytes memory)"}},"id":93640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4157:87:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":93631,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4147:9:181","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":93641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4147:98:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":93630,"id":93642,"nodeType":"Return","src":"4140:105:181"}]},"documentation":{"id":93614,"nodeType":"StructuredDocumentation","src":"3411:461:181","text":"@notice Hashes a cross domain message based on the V1 (current) encoding.\n @param _nonce Message nonce.\n @param _sender Address of the sender of the message.\n @param _target Address of the target of the message.\n @param _value ETH value to send to the target.\n @param _gasLimit Gas limit to use for the message.\n @param _data Data to send with the message.\n @return Hashed cross domain message."},"implemented":true,"kind":"function","modifiers":[],"name":"hashCrossDomainMessageV1","nameLocation":"3886:24:181","parameters":{"id":93627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93616,"mutability":"mutable","name":"_nonce","nameLocation":"3928:6:181","nodeType":"VariableDeclaration","scope":93644,"src":"3920:14:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93615,"name":"uint256","nodeType":"ElementaryTypeName","src":"3920:7:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93618,"mutability":"mutable","name":"_sender","nameLocation":"3952:7:181","nodeType":"VariableDeclaration","scope":93644,"src":"3944:15:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93617,"name":"address","nodeType":"ElementaryTypeName","src":"3944:7:181","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":93620,"mutability":"mutable","name":"_target","nameLocation":"3977:7:181","nodeType":"VariableDeclaration","scope":93644,"src":"3969:15:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93619,"name":"address","nodeType":"ElementaryTypeName","src":"3969:7:181","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":93622,"mutability":"mutable","name":"_value","nameLocation":"4002:6:181","nodeType":"VariableDeclaration","scope":93644,"src":"3994:14:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93621,"name":"uint256","nodeType":"ElementaryTypeName","src":"3994:7:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93624,"mutability":"mutable","name":"_gasLimit","nameLocation":"4026:9:181","nodeType":"VariableDeclaration","scope":93644,"src":"4018:17:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93623,"name":"uint256","nodeType":"ElementaryTypeName","src":"4018:7:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93626,"mutability":"mutable","name":"_data","nameLocation":"4058:5:181","nodeType":"VariableDeclaration","scope":93644,"src":"4045:18:181","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":93625,"name":"bytes","nodeType":"ElementaryTypeName","src":"4045:5:181","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3910:159:181"},"returnParameters":{"id":93630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":93644,"src":"4117:7:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4117:7:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4116:9:181"},"scope":93697,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":93672,"nodeType":"FunctionDefinition","src":"4456:211:181","nodes":[],"body":{"id":93671,"nodeType":"Block","src":"4552:115:181","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":93656,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93648,"src":"4590:3:181","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":93657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":94069,"src":"4590:9:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":93658,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93648,"src":"4601:3:181","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":93659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":94071,"src":"4601:10:181","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":93660,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93648,"src":"4613:3:181","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":93661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"target","nodeType":"MemberAccess","referencedDeclaration":94073,"src":"4613:10:181","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":93662,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93648,"src":"4625:3:181","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":93663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":94075,"src":"4625:9:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":93664,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93648,"src":"4636:3:181","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":93665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":94077,"src":"4636:12:181","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":93666,"name":"_tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93648,"src":"4650:3:181","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}},"id":93667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":94079,"src":"4650:8:181","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":93654,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4579:3:181","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":93655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"4579:10:181","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":93668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4579:80:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":93653,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4569:9:181","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":93669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4569:91:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":93652,"id":93670,"nodeType":"Return","src":"4562:98:181"}]},"documentation":{"id":93645,"nodeType":"StructuredDocumentation","src":"4258:193:181","text":"@notice Derives the withdrawal hash according to the encoding in the L2 Withdrawer contract\n @param _tx Withdrawal transaction to hash.\n @return Hashed withdrawal transaction."},"implemented":true,"kind":"function","modifiers":[],"name":"hashWithdrawal","nameLocation":"4465:14:181","parameters":{"id":93649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93648,"mutability":"mutable","name":"_tx","nameLocation":"4515:3:181","nodeType":"VariableDeclaration","scope":93672,"src":"4480:38:181","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":93647,"nodeType":"UserDefinedTypeName","pathNode":{"id":93646,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":94080,"src":"4480:27:181"},"referencedDeclaration":94080,"src":"4480:27:181","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"4479:40:181"},"returnParameters":{"id":93652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":93672,"src":"4543:7:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93650,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4543:7:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4542:9:181"},"scope":93697,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":93696,"nodeType":"FunctionDefinition","src":"4961:384:181","nodes":[],"body":{"id":93695,"nodeType":"Block","src":"5069:276:181","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":93684,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93676,"src":"5137:16:181","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_memory_ptr","typeString":"struct Types.OutputRootProof memory"}},"id":93685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"version","nodeType":"MemberAccess","referencedDeclaration":94041,"src":"5137:24:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":93686,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93676,"src":"5179:16:181","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_memory_ptr","typeString":"struct Types.OutputRootProof memory"}},"id":93687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stateRoot","nodeType":"MemberAccess","referencedDeclaration":94043,"src":"5179:26:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":93688,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93676,"src":"5223:16:181","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_memory_ptr","typeString":"struct Types.OutputRootProof memory"}},"id":93689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"messagePasserStorageRoot","nodeType":"MemberAccess","referencedDeclaration":94045,"src":"5223:41:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":93690,"name":"_outputRootProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93676,"src":"5282:16:181","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_memory_ptr","typeString":"struct Types.OutputRootProof memory"}},"id":93691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"latestBlockhash","nodeType":"MemberAccess","referencedDeclaration":94047,"src":"5282:32:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":93682,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5109:3:181","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":93683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"5109:10:181","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":93692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5109:219:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":93681,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5086:9:181","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":93693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5086:252:181","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":93680,"id":93694,"nodeType":"Return","src":"5079:259:181"}]},"documentation":{"id":93673,"nodeType":"StructuredDocumentation","src":"4673:283:181","text":"@notice Hashes the various elements of an output root proof into an output root hash which\n can be used to check if the proof is valid.\n @param _outputRootProof Output root proof which should hash to an output root.\n @return Hashed output root proof."},"implemented":true,"kind":"function","modifiers":[],"name":"hashOutputRootProof","nameLocation":"4970:19:181","parameters":{"id":93677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93676,"mutability":"mutable","name":"_outputRootProof","nameLocation":"5019:16:181","nodeType":"VariableDeclaration","scope":93696,"src":"4990:45:181","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_memory_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":93675,"nodeType":"UserDefinedTypeName","pathNode":{"id":93674,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":94048,"src":"4990:21:181"},"referencedDeclaration":94048,"src":"4990:21:181","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"}],"src":"4989:47:181"},"returnParameters":{"id":93680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93679,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":93696,"src":"5060:7:181","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5060:7:181","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5059:9:181"},"scope":93697,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Hashing","contractDependencies":[],"contractKind":"library","documentation":{"id":93482,"nodeType":"StructuredDocumentation","src":"162:93:181","text":"@title Hashing\n @notice Hashing handles Optimism's various different hashing schemes."},"fullyImplemented":true,"linearizedBaseContracts":[93697],"name":"Hashing","nameLocation":"263:7:181","scope":93698,"usedErrors":[]}],"license":"MIT"},"id":181}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"255:5092:192:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;255:5092:192;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"255:5092:192:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Hashing\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Hashing handles Optimism's various different hashing schemes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Hashing.sol\":\"Hashing\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Hashing.sol":"Hashing"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Hashing handles Optimism's various different hashing schemes."},"devdoc":{"version":1,"kind":"dev","title":"Hashing"},"id":192}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"getAddress","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setAddress","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddressSet","inputs":[{"name":"name","type":"string","indexed":true,"internalType":"string"},{"name":"newAddress","type":"address","indexed":false,"internalType":"address"},{"name":"oldAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getAddress(string)":"bf40fac1","setAddress(string,address)":"9b2ea4bd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"}],\"name\":\"AddressSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddressSet(string,address,address)\":{\"params\":{\"name\":\"String name being set in the registry.\",\"newAddress\":\"Address set for the given name.\",\"oldAddress\":\"Address that was previously set for the given name.\"}}},\"kind\":\"dev\",\"methods\":{\"getAddress(string)\":{\"params\":{\"_name\":\"Name to retrieve an address for.\"},\"returns\":{\"_0\":\"Address associated with the given name.\"}},\"setAddress(string,address)\":{\"params\":{\"_address\":\"Address to associate with the name.\",\"_name\":\"String name to associate an address with.\"}}},\"title\":\"IAddressManager\",\"version\":1},\"userdoc\":{\"events\":{\"AddressSet(string,address,address)\":{\"notice\":\"Emitted when an address is modified in the registry.\"}},\"kind\":\"user\",\"methods\":{\"getAddress(string)\":{\"notice\":\"Retrieves the address associated with a given name.\"},\"setAddress(string,address)\":{\"notice\":\"Changes the address associated with a particular name.\"}},\"notice\":\"Minimal interface of the Legacy AddressManager.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/interfaces/IAddressManager.sol\":\"IAddressManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"scripts/interfaces/IAddressManager.sol\":{\"keccak256\":\"0x8535ed4854cada3ed9eca1a04a6fd2567862f7bd7dc4a8a1be36095ec437da53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afd8602362aee418eac66093e59bab8da103122a3c08c8f79f44effdfe4fd6ce\",\"dweb:/ipfs/QmUBeiKWmEpx2yK4237QMz12nrPhmbWe56xd6QFH9vfrPt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string","indexed":true},{"internalType":"address","name":"newAddress","type":"address","indexed":false},{"internalType":"address","name":"oldAddress","type":"address","indexed":false}],"type":"event","name":"AddressSet","anonymous":false},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"view","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAddress"}],"devdoc":{"kind":"dev","methods":{"getAddress(string)":{"params":{"_name":"Name to retrieve an address for."},"returns":{"_0":"Address associated with the given name."}},"setAddress(string,address)":{"params":{"_address":"Address to associate with the name.","_name":"String name to associate an address with."}}},"version":1},"userdoc":{"kind":"user","methods":{"getAddress(string)":{"notice":"Retrieves the address associated with a given name."},"setAddress(string,address)":{"notice":"Changes the address associated with a particular name."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/interfaces/IAddressManager.sol":"IAddressManager"},"evmVersion":"london","libraries":{}},"sources":{"scripts/interfaces/IAddressManager.sol":{"keccak256":"0x8535ed4854cada3ed9eca1a04a6fd2567862f7bd7dc4a8a1be36095ec437da53","urls":["bzz-raw://afd8602362aee418eac66093e59bab8da103122a3c08c8f79f44effdfe4fd6ce","dweb:/ipfs/QmUBeiKWmEpx2yK4237QMz12nrPhmbWe56xd6QFH9vfrPt"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"getAddress(string)":{"notice":"Retrieves the address associated with a given name."},"setAddress(string,address)":{"notice":"Changes the address associated with a particular name."}},"events":{"AddressSet(string,address,address)":{"notice":"Emitted when an address is modified in the registry."}},"notice":"Minimal interface of the Legacy AddressManager."},"devdoc":{"version":1,"kind":"dev","methods":{"getAddress(string)":{"params":{"_name":"Name to retrieve an address for."},"returns":{"_0":"Address associated with the given name."}},"setAddress(string,address)":{"params":{"_address":"Address to associate with the name.","_name":"String name to associate an address with."}}},"events":{"AddressSet(string,address,address)":{"params":{"name":"String name being set in the registry.","newAddress":"Address set for the given name.","oldAddress":"Address that was previously set for the given name."}}},"title":"IAddressManager"},"ast":{"absolutePath":"scripts/interfaces/IAddressManager.sol","id":75710,"exportedSymbols":{"IAddressManager":[75709]},"nodeType":"SourceUnit","src":"32:1024:117","nodes":[{"id":75682,"nodeType":"PragmaDirective","src":"32:24:117","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":75709,"nodeType":"ContractDefinition","src":"145:910:117","nodes":[{"id":75692,"nodeType":"EventDefinition","src":"447:78:117","nodes":[],"anonymous":false,"documentation":{"id":75684,"nodeType":"StructuredDocumentation","src":"177:265:117","text":"@notice Emitted when an address is modified in the registry.\n @param name String name being set in the registry.\n @param newAddress Address set for the given name.\n @param oldAddress Address that was previously set for the given name."},"eventSelector":"9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c","name":"AddressSet","nameLocation":"453:10:117","parameters":{"id":75691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75686,"indexed":true,"mutability":"mutable","name":"name","nameLocation":"479:4:117","nodeType":"VariableDeclaration","scope":75692,"src":"464:19:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":75685,"name":"string","nodeType":"ElementaryTypeName","src":"464:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":75688,"indexed":false,"mutability":"mutable","name":"newAddress","nameLocation":"493:10:117","nodeType":"VariableDeclaration","scope":75692,"src":"485:18:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75687,"name":"address","nodeType":"ElementaryTypeName","src":"485:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75690,"indexed":false,"mutability":"mutable","name":"oldAddress","nameLocation":"513:10:117","nodeType":"VariableDeclaration","scope":75692,"src":"505:18:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75689,"name":"address","nodeType":"ElementaryTypeName","src":"505:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"463:61:117"}},{"id":75700,"nodeType":"FunctionDefinition","src":"728:68:117","nodes":[],"documentation":{"id":75693,"nodeType":"StructuredDocumentation","src":"531:192:117","text":"@notice Changes the address associated with a particular name.\n @param _name String name to associate an address with.\n @param _address Address to associate with the name."},"functionSelector":"9b2ea4bd","implemented":false,"kind":"function","modifiers":[],"name":"setAddress","nameLocation":"737:10:117","parameters":{"id":75698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75695,"mutability":"mutable","name":"_name","nameLocation":"762:5:117","nodeType":"VariableDeclaration","scope":75700,"src":"748:19:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":75694,"name":"string","nodeType":"ElementaryTypeName","src":"748:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":75697,"mutability":"mutable","name":"_address","nameLocation":"777:8:117","nodeType":"VariableDeclaration","scope":75700,"src":"769:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75696,"name":"address","nodeType":"ElementaryTypeName","src":"769:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"747:39:117"},"returnParameters":{"id":75699,"nodeType":"ParameterList","parameters":[],"src":"795:0:117"},"scope":75709,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75708,"nodeType":"FunctionDefinition","src":"980:73:117","nodes":[],"documentation":{"id":75701,"nodeType":"StructuredDocumentation","src":"802:173:117","text":"@notice Retrieves the address associated with a given name.\n @param _name Name to retrieve an address for.\n @return Address associated with the given name."},"functionSelector":"bf40fac1","implemented":false,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"989:10:117","parameters":{"id":75704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75703,"mutability":"mutable","name":"_name","nameLocation":"1014:5:117","nodeType":"VariableDeclaration","scope":75708,"src":"1000:19:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":75702,"name":"string","nodeType":"ElementaryTypeName","src":"1000:6:117","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"999:21:117"},"returnParameters":{"id":75707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75706,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75708,"src":"1044:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75705,"name":"address","nodeType":"ElementaryTypeName","src":"1044:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1043:9:117"},"scope":75709,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IAddressManager","contractDependencies":[],"contractKind":"interface","documentation":{"id":75683,"nodeType":"StructuredDocumentation","src":"58:87:117","text":"@title IAddressManager\n @notice Minimal interface of the Legacy AddressManager."},"fullyImplemented":false,"linearizedBaseContracts":[75709],"name":"IAddressManager","nameLocation":"155:15:117","scope":75710,"usedErrors":[]}],"license":"MIT"},"id":117}
{"abi":[{"type":"function","name":"getAddress","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setAddress","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddressSet","inputs":[{"name":"name","type":"string","indexed":true,"internalType":"string"},{"name":"newAddress","type":"address","indexed":false,"internalType":"address"},{"name":"oldAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getAddress(string)":"bf40fac1","setAddress(string,address)":"9b2ea4bd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"}],\"name\":\"AddressSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddressSet(string,address,address)\":{\"params\":{\"name\":\"String name being set in the registry.\",\"newAddress\":\"Address set for the given name.\",\"oldAddress\":\"Address that was previously set for the given name.\"}}},\"kind\":\"dev\",\"methods\":{\"getAddress(string)\":{\"params\":{\"_name\":\"Name to retrieve an address for.\"},\"returns\":{\"_0\":\"Address associated with the given name.\"}},\"setAddress(string,address)\":{\"params\":{\"_address\":\"Address to associate with the name.\",\"_name\":\"String name to associate an address with.\"}}},\"title\":\"IAddressManager\",\"version\":1},\"userdoc\":{\"events\":{\"AddressSet(string,address,address)\":{\"notice\":\"Emitted when an address is modified in the registry.\"}},\"kind\":\"user\",\"methods\":{\"getAddress(string)\":{\"notice\":\"Retrieves the address associated with a given name.\"},\"setAddress(string,address)\":{\"notice\":\"Changes the address associated with a particular name.\"}},\"notice\":\"Minimal interface of the Legacy AddressManager.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/interfaces/IAddressManager.sol\":\"IAddressManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"scripts/interfaces/IAddressManager.sol\":{\"keccak256\":\"0x8535ed4854cada3ed9eca1a04a6fd2567862f7bd7dc4a8a1be36095ec437da53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afd8602362aee418eac66093e59bab8da103122a3c08c8f79f44effdfe4fd6ce\",\"dweb:/ipfs/QmUBeiKWmEpx2yK4237QMz12nrPhmbWe56xd6QFH9vfrPt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string","indexed":true},{"internalType":"address","name":"newAddress","type":"address","indexed":false},{"internalType":"address","name":"oldAddress","type":"address","indexed":false}],"type":"event","name":"AddressSet","anonymous":false},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"view","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAddress"}],"devdoc":{"kind":"dev","methods":{"getAddress(string)":{"params":{"_name":"Name to retrieve an address for."},"returns":{"_0":"Address associated with the given name."}},"setAddress(string,address)":{"params":{"_address":"Address to associate with the name.","_name":"String name to associate an address with."}}},"version":1},"userdoc":{"kind":"user","methods":{"getAddress(string)":{"notice":"Retrieves the address associated with a given name."},"setAddress(string,address)":{"notice":"Changes the address associated with a particular name."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/interfaces/IAddressManager.sol":"IAddressManager"},"evmVersion":"london","libraries":{}},"sources":{"scripts/interfaces/IAddressManager.sol":{"keccak256":"0x8535ed4854cada3ed9eca1a04a6fd2567862f7bd7dc4a8a1be36095ec437da53","urls":["bzz-raw://afd8602362aee418eac66093e59bab8da103122a3c08c8f79f44effdfe4fd6ce","dweb:/ipfs/QmUBeiKWmEpx2yK4237QMz12nrPhmbWe56xd6QFH9vfrPt"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"getAddress(string)":{"notice":"Retrieves the address associated with a given name."},"setAddress(string,address)":{"notice":"Changes the address associated with a particular name."}},"events":{"AddressSet(string,address,address)":{"notice":"Emitted when an address is modified in the registry."}},"notice":"Minimal interface of the Legacy AddressManager."},"devdoc":{"version":1,"kind":"dev","methods":{"getAddress(string)":{"params":{"_name":"Name to retrieve an address for."},"returns":{"_0":"Address associated with the given name."}},"setAddress(string,address)":{"params":{"_address":"Address to associate with the name.","_name":"String name to associate an address with."}}},"events":{"AddressSet(string,address,address)":{"params":{"name":"String name being set in the registry.","newAddress":"Address set for the given name.","oldAddress":"Address that was previously set for the given name."}}},"title":"IAddressManager"},"id":121}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"oracle","inputs":[],"outputs":[{"name":"oracle_","type":"address","internalType":"contract IPreimageOracle"}],"stateMutability":"view"},{"type":"function","name":"step","inputs":[{"name":"_stateData","type":"bytes","internalType":"bytes"},{"name":"_proof","type":"bytes","internalType":"bytes"},{"name":"_localContext","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"postState_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"oracle()":"7dc0d1d0","step(bytes,bytes,bytes32)":"e14ced32"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract IPreimageOracle\",\"name\":\"oracle_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_localContext\",\"type\":\"bytes32\"}],\"name\":\"step\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"postState_\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"step(bytes,bytes,bytes32)\":{\"params\":{\"_localContext\":\"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.\",\"_proof\":\"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.\",\"_stateData\":\"The raw opaque prestate data.\"},\"returns\":{\"postState_\":\"The hash of the post state witness after the state transition.\"}}},\"title\":\"IBigStepper\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"oracle()\":{\"notice\":\"Returns the preimage oracle used by the state machine.\"},\"step(bytes,bytes,bytes32)\":{\"notice\":\"Performs the state transition from a given prestate and returns the hash of the post state witness.\"}},\"notice\":\"Describes a state machine that can perform a single instruction step, provided a prestate and an optional proof. \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28c0\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u28fc\\u2836\\u2885\\u2812\\u2884\\u2894\\u28f6\\u2866\\u28e4\\u2864\\u2804\\u28c0\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2828\\u284f\\u2800\\u2800\\u2808\\u2822\\u28d9\\u28af\\u28c4\\u2800\\u28a8\\u282f\\u287a\\u2858\\u2884\\u2800\\u2800\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28c0\\u28f6\\u2846\\u2800\\u2800\\u2800\\u2800\\u2808\\u2813\\u282c\\u2852\\u2821\\u28c0\\u2899\\u285c\\u2840\\u2813\\u2804\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b8\\u2877\\u283f\\u28e7\\u28c0\\u2840\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2809\\u2823\\u28de\\u2829\\u2825\\u2800\\u283c\\u2884\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b8\\u2847\\u2800\\u2800\\u2800\\u2809\\u28b9\\u28f6\\u2812\\u2812\\u2802\\u2808\\u2809\\u2801\\u2818\\u2846\\u2800\\u28ff\\u28ff\\u282b\\u2844\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28e0\\u28b6\\u28e4\\u28c0\\u2840\\u2800\\u2800\\u28b8\\u287f\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u281e\\u2800\\u2800\\u28a1\\u28a8\\u2880\\u2844\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28e0\\u2852\\u28ff\\u28bf\\u2864\\u281d\\u2863\\u2809\\u2801\\u281a\\u281b\\u2800\\u2824\\u2824\\u28c4\\u2870\\u2801\\u2800\\u2800\\u2800\\u2809\\u2819\\u28b8\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u2864\\u28af\\u284c\\u287f\\u2847\\u2818\\u2877\\u2800\\u2801\\u2800\\u2800\\u2880\\u28f0\\u2822\\u2832\\u281b\\u28c8\\u28f8\\u2826\\u2824\\u2836\\u2834\\u28ac\\u28d0\\u28ca\\u2842\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u28e4\\u286a\\u2857\\u28ab\\u281e\\u2800\\u2806\\u28c0\\u283b\\u2824\\u2834\\u2810\\u281a\\u28c9\\u2880\\u2826\\u2802\\u280b\\u2801\\u2800\\u2801\\u2800\\u2800\\u2800\\u2800\\u288b\\u2809\\u2807\\u2800 \\u2800\\u2800\\u2800\\u2800\\u28c0\\u2864\\u2810\\u2812\\u2818\\u2879\\u2809\\u28b8\\u2807\\u2838\\u2800\\u2800\\u2800\\u2800\\u28c0\\u28e4\\u2834\\u281a\\u2809\\u2808\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u283c\\u2800\\u28fe\\u2800 \\u2800\\u2800\\u2800\\u2870\\u2800\\u2809\\u2809\\u2800\\u2801\\u2800\\u2800\\u2808\\u2887\\u2808\\u2812\\u2812\\u2818\\u2808\\u2880\\u28a1\\u2842\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b0\\u2800\\u28b8\\u2844 \\u2800\\u2800\\u2838\\u28ff\\u28c6\\u2824\\u2880\\u2840\\u2800\\u2800\\u2800\\u2800\\u2898\\u284c\\u2800\\u2800\\u28c0\\u28c0\\u28c0\\u2848\\u28e4\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b8\\u2800\\u28b8\\u2847 \\u2800\\u2800\\u28b8\\u28c0\\u2800\\u2809\\u2812\\u2810\\u281b\\u280b\\u282d\\u282d\\u280d\\u2809\\u281b\\u2812\\u2812\\u2812\\u2800\\u2812\\u281a\\u281b\\u281b\\u281b\\u2829\\u282d\\u282d\\u282d\\u282d\\u2824\\u2824\\u2824\\u2824\\u2824\\u282d\\u282d\\u2809\\u2813\\u2846 \\u2800\\u2800\\u2818\\u283f\\u28f7\\u28f6\\u28e4\\u28e4\\u28c0\\u28c0\\u2840\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28e0\\u28e4\\u28c4\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2847 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2809\\u2819\\u281b\\u281b\\u283b\\u283f\\u28bf\\u28ff\\u28ff\\u28f7\\u28f6\\u28f6\\u28f6\\u28e4\\u28e4\\u28c0\\u28c1\\u28db\\u28c3\\u28d2\\u283f\\u283f\\u283f\\u2824\\u2820\\u2804\\u2824\\u2824\\u28a4\\u28db\\u28d3\\u28c2\\u28fb\\u2847 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2808\\u2809\\u2809\\u2809\\u2819\\u281b\\u283b\\u283f\\u283f\\u283f\\u28bf\\u28ff\\u28ff\\u28ff\\u28f7\\u28f6\\u28f6\\u28fe\\u28ff\\u28ff\\u28ff\\u28ff\\u283f\\u281f\\u2801 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2808\\u2808\\u2809\\u2809\\u2809\\u2809\\u2801\\u2800\\u2800\\u2800\\u2800\\u2800\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IBigStepper.sol\":\"IBigStepper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x66c1a22ff6d8a9ab9f5d12791c15c5273cb7f4421b1b5c6d1a76a166d3af418f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f893baa1ac7eba3e24b80844dd16181dc9824277f896ab1c2eb7af22a096cb99\",\"dweb:/ipfs/QmVtK36UpWdozR7UHEjANi6BVPCDTm5BF2HRhjRZg9MS3e\"]},\"src/dispute/interfaces/IBigStepper.sol\":{\"keccak256\":\"0x9c75967a7647640522967e294613191553839cfa56a041ab009c9b0c6edb04f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0188af98bdeaf1b362f3800e844bc9c5b888bd2df8ddbecffdb18c0e35c9be29\",\"dweb:/ipfs/QmUMKsCn56D8qJdhXCHqEHXJmLmdLW322crjS2nbqQJ1EZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"oracle","outputs":[{"internalType":"contract IPreimageOracle","name":"oracle_","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_stateData","type":"bytes"},{"internalType":"bytes","name":"_proof","type":"bytes"},{"internalType":"bytes32","name":"_localContext","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"step","outputs":[{"internalType":"bytes32","name":"postState_","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"version":1},"userdoc":{"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IBigStepper.sol":"IBigStepper"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x66c1a22ff6d8a9ab9f5d12791c15c5273cb7f4421b1b5c6d1a76a166d3af418f","urls":["bzz-raw://f893baa1ac7eba3e24b80844dd16181dc9824277f896ab1c2eb7af22a096cb99","dweb:/ipfs/QmVtK36UpWdozR7UHEjANi6BVPCDTm5BF2HRhjRZg9MS3e"],"license":"MIT"},"src/dispute/interfaces/IBigStepper.sol":{"keccak256":"0x9c75967a7647640522967e294613191553839cfa56a041ab009c9b0c6edb04f1","urls":["bzz-raw://0188af98bdeaf1b362f3800e844bc9c5b888bd2df8ddbecffdb18c0e35c9be29","dweb:/ipfs/QmUMKsCn56D8qJdhXCHqEHXJmLmdLW322crjS2nbqQJ1EZ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}},"notice":"Describes a state machine that can perform a single instruction step, provided a prestate and an optional proof. ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠶⢅⠒⢄⢔⣶⡦⣤⡤⠄⣀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠨⡏⠀⠀⠈⠢⣙⢯⣄⠀⢨⠯⡺⡘⢄⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣶⡆⠀⠀⠀⠀⠈⠓⠬⡒⠡⣀⢙⡜⡀⠓⠄⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡷⠿⣧⣀⡀⠀⠀⠀⠀⠀⠀⠉⠣⣞⠩⠥⠀⠼⢄⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠉⢹⣶⠒⠒⠂⠈⠉⠁⠘⡆⠀⣿⣿⠫⡄⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⢶⣤⣀⡀⠀⠀⢸⡿⠀⠀⠀⠀⠀⢀⠞⠀⠀⢡⢨⢀⡄⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡒⣿⢿⡤⠝⡣⠉⠁⠚⠛⠀⠤⠤⣄⡰⠁⠀⠀⠀⠉⠙⢸⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⢯⡌⡿⡇⠘⡷⠀⠁⠀⠀⢀⣰⠢⠲⠛⣈⣸⠦⠤⠶⠴⢬⣐⣊⡂⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡪⡗⢫⠞⠀⠆⣀⠻⠤⠴⠐⠚⣉⢀⠦⠂⠋⠁⠀⠁⠀⠀⠀⠀⢋⠉⠇⠀ ⠀⠀⠀⠀⣀⡤⠐⠒⠘⡹⠉⢸⠇⠸⠀⠀⠀⠀⣀⣤⠴⠚⠉⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠼⠀⣾⠀ ⠀⠀⠀⡰⠀⠉⠉⠀⠁⠀⠀⠈⢇⠈⠒⠒⠘⠈⢀⢡⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠀⢸⡄ ⠀⠀⠸⣿⣆⠤⢀⡀⠀⠀⠀⠀⢘⡌⠀⠀⣀⣀⣀⡈⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⢸⡇ ⠀⠀⢸⣀⠀⠉⠒⠐⠛⠋⠭⠭⠍⠉⠛⠒⠒⠒⠀⠒⠚⠛⠛⠛⠩⠭⠭⠭⠭⠤⠤⠤⠤⠤⠭⠭⠉⠓⡆ ⠀⠀⠘⠿⣷⣶⣤⣤⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⠀⠀⠀⠀⠀⠉⠙⠛⠛⠻⠿⢿⣿⣿⣷⣶⣶⣶⣤⣤⣀⣁⣛⣃⣒⠿⠿⠿⠤⠠⠄⠤⠤⢤⣛⣓⣂⣻⡇ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠙⠛⠻⠿⠿⠿⢿⣿⣿⣿⣷⣶⣶⣾⣿⣿⣿⣿⠿⠟⠁ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠈⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀"},"devdoc":{"version":1,"kind":"dev","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"title":"IBigStepper"},"ast":{"absolutePath":"src/dispute/interfaces/IBigStepper.sol","id":90441,"exportedSymbols":{"IBigStepper":[90440],"IPreimageOracle":[87827]},"nodeType":"SourceUnit","src":"32:3436:154","nodes":[{"id":90417,"nodeType":"PragmaDirective","src":"32:24:154","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":90419,"nodeType":"ImportDirective","src":"58:76:154","nodes":[],"absolutePath":"src/cannon/interfaces/IPreimageOracle.sol","file":"src/cannon/interfaces/IPreimageOracle.sol","nameLocation":"-1:-1:-1","scope":90441,"sourceUnit":87828,"symbolAliases":[{"foreign":{"id":90418,"name":"IPreimageOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87827,"src":"67:15:154","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90440,"nodeType":"ContractDefinition","src":"2492:975:154","nodes":[{"id":90432,"nodeType":"FunctionDefinition","src":"3151:171:154","nodes":[],"documentation":{"id":90421,"nodeType":"StructuredDocumentation","src":"2520:626:154","text":"@notice Performs the state transition from a given prestate and returns the hash of the post state witness.\n @param _stateData The raw opaque prestate data.\n @param _proof Opaque proof data, can be used to prove things about the prestate in relation to the state of the\n interface's implementation.\n @param _localContext The local key context for the preimage oracle. Optional, can be set as a constant if the\n implementation only requires one set of local keys.\n @return postState_ The hash of the post state witness after the state transition."},"functionSelector":"e14ced32","implemented":false,"kind":"function","modifiers":[],"name":"step","nameLocation":"3160:4:154","parameters":{"id":90428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90423,"mutability":"mutable","name":"_stateData","nameLocation":"3189:10:154","nodeType":"VariableDeclaration","scope":90432,"src":"3174:25:154","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":90422,"name":"bytes","nodeType":"ElementaryTypeName","src":"3174:5:154","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":90425,"mutability":"mutable","name":"_proof","nameLocation":"3224:6:154","nodeType":"VariableDeclaration","scope":90432,"src":"3209:21:154","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":90424,"name":"bytes","nodeType":"ElementaryTypeName","src":"3209:5:154","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":90427,"mutability":"mutable","name":"_localContext","nameLocation":"3248:13:154","nodeType":"VariableDeclaration","scope":90432,"src":"3240:21:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3240:7:154","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3164:103:154"},"returnParameters":{"id":90431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90430,"mutability":"mutable","name":"postState_","nameLocation":"3310:10:154","nodeType":"VariableDeclaration","scope":90432,"src":"3302:18:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3302:7:154","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3301:20:154"},"scope":90440,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":90439,"nodeType":"FunctionDefinition","src":"3399:66:154","nodes":[],"documentation":{"id":90433,"nodeType":"StructuredDocumentation","src":"3328:66:154","text":"@notice Returns the preimage oracle used by the state machine."},"functionSelector":"7dc0d1d0","implemented":false,"kind":"function","modifiers":[],"name":"oracle","nameLocation":"3408:6:154","parameters":{"id":90434,"nodeType":"ParameterList","parameters":[],"src":"3414:2:154"},"returnParameters":{"id":90438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90437,"mutability":"mutable","name":"oracle_","nameLocation":"3456:7:154","nodeType":"VariableDeclaration","scope":90439,"src":"3440:23:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$87827","typeString":"contract IPreimageOracle"},"typeName":{"id":90436,"nodeType":"UserDefinedTypeName","pathNode":{"id":90435,"name":"IPreimageOracle","nodeType":"IdentifierPath","referencedDeclaration":87827,"src":"3440:15:154"},"referencedDeclaration":87827,"src":"3440:15:154","typeDescriptions":{"typeIdentifier":"t_contract$_IPreimageOracle_$87827","typeString":"contract IPreimageOracle"}},"visibility":"internal"}],"src":"3439:25:154"},"scope":90440,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IBigStepper","contractDependencies":[],"contractKind":"interface","documentation":{"id":90420,"nodeType":"StructuredDocumentation","src":"136:2356:154","text":"@title IBigStepper\n @notice Describes a state machine that can perform a single instruction step, provided a prestate and an optional\n proof.\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠶⢅⠒⢄⢔⣶⡦⣤⡤⠄⣀⠀⠀⠀⠀⠀⠀⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠨⡏⠀⠀⠈⠢⣙⢯⣄⠀⢨⠯⡺⡘⢄⠀⠀⠀⠀⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣶⡆⠀⠀⠀⠀⠈⠓⠬⡒⠡⣀⢙⡜⡀⠓⠄⠀⠀⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡷⠿⣧⣀⡀⠀⠀⠀⠀⠀⠀⠉⠣⣞⠩⠥⠀⠼⢄⠀⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠉⢹⣶⠒⠒⠂⠈⠉⠁⠘⡆⠀⣿⣿⠫⡄⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⢶⣤⣀⡀⠀⠀⢸⡿⠀⠀⠀⠀⠀⢀⠞⠀⠀⢡⢨⢀⡄⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡒⣿⢿⡤⠝⡣⠉⠁⠚⠛⠀⠤⠤⣄⡰⠁⠀⠀⠀⠉⠙⢸⠀⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⢯⡌⡿⡇⠘⡷⠀⠁⠀⠀⢀⣰⠢⠲⠛⣈⣸⠦⠤⠶⠴⢬⣐⣊⡂⠀\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡪⡗⢫⠞⠀⠆⣀⠻⠤⠴⠐⠚⣉⢀⠦⠂⠋⠁⠀⠁⠀⠀⠀⠀⢋⠉⠇⠀\n ⠀⠀⠀⠀⣀⡤⠐⠒⠘⡹⠉⢸⠇⠸⠀⠀⠀⠀⣀⣤⠴⠚⠉⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠼⠀⣾⠀\n ⠀⠀⠀⡰⠀⠉⠉⠀⠁⠀⠀⠈⢇⠈⠒⠒⠘⠈⢀⢡⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠀⢸⡄\n ⠀⠀⠸⣿⣆⠤⢀⡀⠀⠀⠀⠀⢘⡌⠀⠀⣀⣀⣀⡈⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⢸⡇\n ⠀⠀⢸⣀⠀⠉⠒⠐⠛⠋⠭⠭⠍⠉⠛⠒⠒⠒⠀⠒⠚⠛⠛⠛⠩⠭⠭⠭⠭⠤⠤⠤⠤⠤⠭⠭⠉⠓⡆\n ⠀⠀⠘⠿⣷⣶⣤⣤⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇\n ⠀⠀⠀⠀⠀⠉⠙⠛⠛⠻⠿⢿⣿⣿⣷⣶⣶⣶⣤⣤⣀⣁⣛⣃⣒⠿⠿⠿⠤⠠⠄⠤⠤⢤⣛⣓⣂⣻⡇\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠙⠛⠻⠿⠿⠿⢿⣿⣿⣿⣷⣶⣶⣾⣿⣿⣿⣿⠿⠟⠁\n ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠈⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀"},"fullyImplemented":false,"linearizedBaseContracts":[90440],"name":"IBigStepper","nameLocation":"2502:11:154","scope":90441,"usedErrors":[]}],"license":"MIT"},"id":154}
{"abi":[{"type":"function","name":"oracle","inputs":[],"outputs":[{"name":"oracle_","type":"address","internalType":"contract IPreimageOracle"}],"stateMutability":"view"},{"type":"function","name":"step","inputs":[{"name":"_stateData","type":"bytes","internalType":"bytes"},{"name":"_proof","type":"bytes","internalType":"bytes"},{"name":"_localContext","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"postState_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"oracle()":"7dc0d1d0","step(bytes,bytes,bytes32)":"e14ced32"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract IPreimageOracle\",\"name\":\"oracle_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_localContext\",\"type\":\"bytes32\"}],\"name\":\"step\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"postState_\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"step(bytes,bytes,bytes32)\":{\"params\":{\"_localContext\":\"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.\",\"_proof\":\"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.\",\"_stateData\":\"The raw opaque prestate data.\"},\"returns\":{\"postState_\":\"The hash of the post state witness after the state transition.\"}}},\"title\":\"IBigStepper\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"oracle()\":{\"notice\":\"Returns the preimage oracle used by the state machine.\"},\"step(bytes,bytes,bytes32)\":{\"notice\":\"Performs the state transition from a given prestate and returns the hash of the post state witness.\"}},\"notice\":\"Describes a state machine that can perform a single instruction step, provided a prestate and an optional proof. \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28c0\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u28fc\\u2836\\u2885\\u2812\\u2884\\u2894\\u28f6\\u2866\\u28e4\\u2864\\u2804\\u28c0\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2828\\u284f\\u2800\\u2800\\u2808\\u2822\\u28d9\\u28af\\u28c4\\u2800\\u28a8\\u282f\\u287a\\u2858\\u2884\\u2800\\u2800\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28c0\\u28f6\\u2846\\u2800\\u2800\\u2800\\u2800\\u2808\\u2813\\u282c\\u2852\\u2821\\u28c0\\u2899\\u285c\\u2840\\u2813\\u2804\\u2800\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b8\\u2877\\u283f\\u28e7\\u28c0\\u2840\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2809\\u2823\\u28de\\u2829\\u2825\\u2800\\u283c\\u2884\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b8\\u2847\\u2800\\u2800\\u2800\\u2809\\u28b9\\u28f6\\u2812\\u2812\\u2802\\u2808\\u2809\\u2801\\u2818\\u2846\\u2800\\u28ff\\u28ff\\u282b\\u2844\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28e0\\u28b6\\u28e4\\u28c0\\u2840\\u2800\\u2800\\u28b8\\u287f\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u281e\\u2800\\u2800\\u28a1\\u28a8\\u2880\\u2844\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28e0\\u2852\\u28ff\\u28bf\\u2864\\u281d\\u2863\\u2809\\u2801\\u281a\\u281b\\u2800\\u2824\\u2824\\u28c4\\u2870\\u2801\\u2800\\u2800\\u2800\\u2809\\u2819\\u28b8\\u2800\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u2864\\u28af\\u284c\\u287f\\u2847\\u2818\\u2877\\u2800\\u2801\\u2800\\u2800\\u2880\\u28f0\\u2822\\u2832\\u281b\\u28c8\\u28f8\\u2826\\u2824\\u2836\\u2834\\u28ac\\u28d0\\u28ca\\u2842\\u2800 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2880\\u28e4\\u286a\\u2857\\u28ab\\u281e\\u2800\\u2806\\u28c0\\u283b\\u2824\\u2834\\u2810\\u281a\\u28c9\\u2880\\u2826\\u2802\\u280b\\u2801\\u2800\\u2801\\u2800\\u2800\\u2800\\u2800\\u288b\\u2809\\u2807\\u2800 \\u2800\\u2800\\u2800\\u2800\\u28c0\\u2864\\u2810\\u2812\\u2818\\u2879\\u2809\\u28b8\\u2807\\u2838\\u2800\\u2800\\u2800\\u2800\\u28c0\\u28e4\\u2834\\u281a\\u2809\\u2808\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u283c\\u2800\\u28fe\\u2800 \\u2800\\u2800\\u2800\\u2870\\u2800\\u2809\\u2809\\u2800\\u2801\\u2800\\u2800\\u2808\\u2887\\u2808\\u2812\\u2812\\u2818\\u2808\\u2880\\u28a1\\u2842\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b0\\u2800\\u28b8\\u2844 \\u2800\\u2800\\u2838\\u28ff\\u28c6\\u2824\\u2880\\u2840\\u2800\\u2800\\u2800\\u2800\\u2898\\u284c\\u2800\\u2800\\u28c0\\u28c0\\u28c0\\u2848\\u28e4\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28b8\\u2800\\u28b8\\u2847 \\u2800\\u2800\\u28b8\\u28c0\\u2800\\u2809\\u2812\\u2810\\u281b\\u280b\\u282d\\u282d\\u280d\\u2809\\u281b\\u2812\\u2812\\u2812\\u2800\\u2812\\u281a\\u281b\\u281b\\u281b\\u2829\\u282d\\u282d\\u282d\\u282d\\u2824\\u2824\\u2824\\u2824\\u2824\\u282d\\u282d\\u2809\\u2813\\u2846 \\u2800\\u2800\\u2818\\u283f\\u28f7\\u28f6\\u28e4\\u28e4\\u28c0\\u28c0\\u2840\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u28e0\\u28e4\\u28c4\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2847 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2809\\u2819\\u281b\\u281b\\u283b\\u283f\\u28bf\\u28ff\\u28ff\\u28f7\\u28f6\\u28f6\\u28f6\\u28e4\\u28e4\\u28c0\\u28c1\\u28db\\u28c3\\u28d2\\u283f\\u283f\\u283f\\u2824\\u2820\\u2804\\u2824\\u2824\\u28a4\\u28db\\u28d3\\u28c2\\u28fb\\u2847 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2808\\u2809\\u2809\\u2809\\u2819\\u281b\\u283b\\u283f\\u283f\\u283f\\u28bf\\u28ff\\u28ff\\u28ff\\u28f7\\u28f6\\u28f6\\u28fe\\u28ff\\u28ff\\u28ff\\u28ff\\u283f\\u281f\\u2801 \\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2800\\u2808\\u2808\\u2809\\u2809\\u2809\\u2809\\u2801\\u2800\\u2800\\u2800\\u2800\\u2800\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IBigStepper.sol\":\"IBigStepper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af\",\"dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1\"]},\"src/dispute/interfaces/IBigStepper.sol\":{\"keccak256\":\"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884\",\"dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"oracle","outputs":[{"internalType":"contract IPreimageOracle","name":"oracle_","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_stateData","type":"bytes"},{"internalType":"bytes","name":"_proof","type":"bytes"},{"internalType":"bytes32","name":"_localContext","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"step","outputs":[{"internalType":"bytes32","name":"postState_","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"version":1},"userdoc":{"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IBigStepper.sol":"IBigStepper"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f","urls":["bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af","dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1"],"license":"MIT"},"src/dispute/interfaces/IBigStepper.sol":{"keccak256":"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a","urls":["bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884","dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"oracle()":{"notice":"Returns the preimage oracle used by the state machine."},"step(bytes,bytes,bytes32)":{"notice":"Performs the state transition from a given prestate and returns the hash of the post state witness."}},"notice":"Describes a state machine that can perform a single instruction step, provided a prestate and an optional proof. ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠶⢅⠒⢄⢔⣶⡦⣤⡤⠄⣀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠨⡏⠀⠀⠈⠢⣙⢯⣄⠀⢨⠯⡺⡘⢄⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣶⡆⠀⠀⠀⠀⠈⠓⠬⡒⠡⣀⢙⡜⡀⠓⠄⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡷⠿⣧⣀⡀⠀⠀⠀⠀⠀⠀⠉⠣⣞⠩⠥⠀⠼⢄⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠉⢹⣶⠒⠒⠂⠈⠉⠁⠘⡆⠀⣿⣿⠫⡄⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⢶⣤⣀⡀⠀⠀⢸⡿⠀⠀⠀⠀⠀⢀⠞⠀⠀⢡⢨⢀⡄⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡒⣿⢿⡤⠝⡣⠉⠁⠚⠛⠀⠤⠤⣄⡰⠁⠀⠀⠀⠉⠙⢸⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⢯⡌⡿⡇⠘⡷⠀⠁⠀⠀⢀⣰⠢⠲⠛⣈⣸⠦⠤⠶⠴⢬⣐⣊⡂⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡪⡗⢫⠞⠀⠆⣀⠻⠤⠴⠐⠚⣉⢀⠦⠂⠋⠁⠀⠁⠀⠀⠀⠀⢋⠉⠇⠀ ⠀⠀⠀⠀⣀⡤⠐⠒⠘⡹⠉⢸⠇⠸⠀⠀⠀⠀⣀⣤⠴⠚⠉⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠼⠀⣾⠀ ⠀⠀⠀⡰⠀⠉⠉⠀⠁⠀⠀⠈⢇⠈⠒⠒⠘⠈⢀⢡⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠀⢸⡄ ⠀⠀⠸⣿⣆⠤⢀⡀⠀⠀⠀⠀⢘⡌⠀⠀⣀⣀⣀⡈⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⢸⡇ ⠀⠀⢸⣀⠀⠉⠒⠐⠛⠋⠭⠭⠍⠉⠛⠒⠒⠒⠀⠒⠚⠛⠛⠛⠩⠭⠭⠭⠭⠤⠤⠤⠤⠤⠭⠭⠉⠓⡆ ⠀⠀⠘⠿⣷⣶⣤⣤⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⠀⠀⠀⠀⠀⠉⠙⠛⠛⠻⠿⢿⣿⣿⣷⣶⣶⣶⣤⣤⣀⣁⣛⣃⣒⠿⠿⠿⠤⠠⠄⠤⠤⢤⣛⣓⣂⣻⡇ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠙⠛⠻⠿⠿⠿⢿⣿⣿⣿⣷⣶⣶⣾⣿⣿⣿⣿⠿⠟⠁ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠈⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀"},"devdoc":{"version":1,"kind":"dev","methods":{"step(bytes,bytes,bytes32)":{"params":{"_localContext":"The local key context for the preimage oracle. Optional, can be set as a constant if the implementation only requires one set of local keys.","_proof":"Opaque proof data, can be used to prove things about the prestate in relation to the state of the interface's implementation.","_stateData":"The raw opaque prestate data."},"returns":{"postState_":"The hash of the post state witness after the state transition."}}},"title":"IBigStepper"},"id":162}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"createdAt","inputs":[],"outputs":[{"name":"createdAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"extraData","inputs":[],"outputs":[{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"gameData","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"},{"name":"rootClaim_","type":"bytes32","internalType":"Claim"},{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"gameType","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"resolve","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"nonpayable"},{"type":"function","name":"resolvedAt","inputs":[],"outputs":[{"name":"resolvedAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"rootClaim","inputs":[],"outputs":[{"name":"rootClaim_","type":"bytes32","internalType":"Claim"}],"stateMutability":"pure"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"view"},{"type":"event","name":"Resolved","inputs":[{"name":"status","type":"uint8","indexed":true,"internalType":"enum GameStatus"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createdAt()":"cf09e0d0","extraData()":"609d3334","gameData()":"fa24f743","gameType()":"bbdc02db","initialize()":"8129fc1c","resolve()":"2810e1d6","resolvedAt()":"19effeb4","rootClaim()":"bcef3b55","status()":"200d2ed2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum GameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"createdAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"resolvedAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Resolved(uint8)\":{\"params\":{\"status\":\"The status of the game after resolution.\"}}},\"kind\":\"dev\",\"methods\":{\"createdAt()\":{\"returns\":{\"createdAt_\":\"The timestamp that the DisputeGame contract was created at.\"}},\"extraData()\":{\"details\":\"`clones-with-immutable-args` argument #2\",\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\"}},\"gameData()\":{\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\",\"gameType_\":\"The type of proof system being used.\",\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"gameType()\":{\"details\":\"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.\",\"returns\":{\"gameType_\":\"The type of proof system being used.\"}},\"initialize()\":{\"details\":\"This function may only be called once.\"},\"resolve()\":{\"details\":\"May only be called if the `status` is `IN_PROGRESS`.\",\"returns\":{\"status_\":\"The status of the game after resolution.\"}},\"resolvedAt()\":{\"returns\":{\"resolvedAt_\":\"The timestamp that the DisputeGame contract was resolved at.\"}},\"rootClaim()\":{\"details\":\"`clones-with-immutable-args` argument #1\",\"returns\":{\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"status()\":{\"returns\":{\"status_\":\"The current status of the game.\"}}},\"title\":\"IDisputeGame\",\"version\":1},\"userdoc\":{\"events\":{\"Resolved(uint8)\":{\"notice\":\"Emitted when the game is resolved.\"}},\"kind\":\"user\",\"methods\":{\"createdAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was created at.\"},\"extraData()\":{\"notice\":\"Getter for the extra data.\"},\"gameData()\":{\"notice\":\"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation.\"},\"gameType()\":{\"notice\":\"Getter for the game type.\"},\"initialize()\":{\"notice\":\"Initializes the contract.\"},\"resolve()\":{\"notice\":\"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties.\"},\"resolvedAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was resolved at.\"},\"rootClaim()\":{\"notice\":\"Getter for the root claim.\"},\"status()\":{\"notice\":\"Returns the current status of the game.\"}},\"notice\":\"The generic interface for a DisputeGame contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IDisputeGame.sol\":\"IDisputeGame\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum GameStatus","name":"status","type":"uint8","indexed":true}],"type":"event","name":"Resolved","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"createdAt","outputs":[{"internalType":"Timestamp","name":"createdAt_","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"extraData","outputs":[{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameData","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"},{"internalType":"Claim","name":"rootClaim_","type":"bytes32"},{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameType","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resolve","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolvedAt","outputs":[{"internalType":"Timestamp","name":"resolvedAt_","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"rootClaim","outputs":[{"internalType":"Claim","name":"rootClaim_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"extraData()":{"details":"`clones-with-immutable-args` argument #2","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #1","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}}},"version":1},"userdoc":{"kind":"user","methods":{"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"extraData()":{"notice":"Getter for the extra data."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"status()":{"notice":"Returns the current status of the game."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IDisputeGame.sol":"IDisputeGame"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"extraData()":{"notice":"Getter for the extra data."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"status()":{"notice":"Returns the current status of the game."}},"events":{"Resolved(uint8)":{"notice":"Emitted when the game is resolved."}},"notice":"The generic interface for a DisputeGame contract."},"devdoc":{"version":1,"kind":"dev","methods":{"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"extraData()":{"details":"`clones-with-immutable-args` argument #2","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #1","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}}},"events":{"Resolved(uint8)":{"params":{"status":"The status of the game after resolution."}}},"title":"IDisputeGame"},"ast":{"absolutePath":"src/dispute/interfaces/IDisputeGame.sol","id":90516,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"IDisputeGame":[90515],"IInitializable":[90789],"LibClaim":[91135],"LibClock":[91122],"LibDuration":[91148],"LibGameId":[90831],"LibGameType":[91200],"LibHash":[91161],"LibHashing":[90853],"LibPosition":[91067],"LibTimestamp":[91174],"LibVMStatus":[91187],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:3114:155","nodes":[{"id":90442,"nodeType":"PragmaDirective","src":"32:24:155","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":90444,"nodeType":"ImportDirective","src":"58:75:155","nodes":[],"absolutePath":"src/dispute/interfaces/IInitializable.sol","file":"src/dispute/interfaces/IInitializable.sol","nameLocation":"-1:-1:-1","scope":90516,"sourceUnit":90790,"symbolAliases":[{"foreign":{"id":90443,"name":"IInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90789,"src":"67:14:155","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90445,"nodeType":"ImportDirective","src":"135:40:155","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":90516,"sourceUnit":93135,"symbolAliases":[],"unitAlias":""},{"id":90515,"nodeType":"ContractDefinition","src":"263:2882:155","nodes":[{"id":90454,"nodeType":"EventDefinition","src":"424:42:155","nodes":[],"anonymous":false,"documentation":{"id":90449,"nodeType":"StructuredDocumentation","src":"310:109:155","text":"@notice Emitted when the game is resolved.\n @param status The status of the game after resolution."},"eventSelector":"5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60","name":"Resolved","nameLocation":"430:8:155","parameters":{"id":90453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90452,"indexed":true,"mutability":"mutable","name":"status","nameLocation":"458:6:155","nodeType":"VariableDeclaration","scope":90454,"src":"439:25:155","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$93060","typeString":"enum GameStatus"},"typeName":{"id":90451,"nodeType":"UserDefinedTypeName","pathNode":{"id":90450,"name":"GameStatus","nodeType":"IdentifierPath","referencedDeclaration":93060,"src":"439:10:155"},"referencedDeclaration":93060,"src":"439:10:155","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$93060","typeString":"enum GameStatus"}},"visibility":"internal"}],"src":"438:27:155"}},{"id":90461,"nodeType":"FunctionDefinition","src":"643:66:155","nodes":[],"documentation":{"id":90455,"nodeType":"StructuredDocumentation","src":"472:166:155","text":"@notice Returns the timestamp that the DisputeGame contract was created at.\n @return createdAt_ The timestamp that the DisputeGame contract was created at."},"functionSelector":"cf09e0d0","implemented":false,"kind":"function","modifiers":[],"name":"createdAt","nameLocation":"652:9:155","parameters":{"id":90456,"nodeType":"ParameterList","parameters":[],"src":"661:2:155"},"returnParameters":{"id":90460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90459,"mutability":"mutable","name":"createdAt_","nameLocation":"697:10:155","nodeType":"VariableDeclaration","scope":90461,"src":"687:20:155","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":90458,"nodeType":"UserDefinedTypeName","pathNode":{"id":90457,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"687:9:155"},"referencedDeclaration":93044,"src":"687:9:155","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"686:22:155"},"scope":90515,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":90468,"nodeType":"FunctionDefinition","src":"889:68:155","nodes":[],"documentation":{"id":90462,"nodeType":"StructuredDocumentation","src":"715:169:155","text":"@notice Returns the timestamp that the DisputeGame contract was resolved at.\n @return resolvedAt_ The timestamp that the DisputeGame contract was resolved at."},"functionSelector":"19effeb4","implemented":false,"kind":"function","modifiers":[],"name":"resolvedAt","nameLocation":"898:10:155","parameters":{"id":90463,"nodeType":"ParameterList","parameters":[],"src":"908:2:155"},"returnParameters":{"id":90467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90466,"mutability":"mutable","name":"resolvedAt_","nameLocation":"944:11:155","nodeType":"VariableDeclaration","scope":90468,"src":"934:21:155","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":90465,"nodeType":"UserDefinedTypeName","pathNode":{"id":90464,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"934:9:155"},"referencedDeclaration":93044,"src":"934:9:155","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"933:23:155"},"scope":90515,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":90475,"nodeType":"FunctionDefinition","src":"1075:61:155","nodes":[],"documentation":{"id":90469,"nodeType":"StructuredDocumentation","src":"963:107:155","text":"@notice Returns the current status of the game.\n @return status_ The current status of the game."},"functionSelector":"200d2ed2","implemented":false,"kind":"function","modifiers":[],"name":"status","nameLocation":"1084:6:155","parameters":{"id":90470,"nodeType":"ParameterList","parameters":[],"src":"1090:2:155"},"returnParameters":{"id":90474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90473,"mutability":"mutable","name":"status_","nameLocation":"1127:7:155","nodeType":"VariableDeclaration","scope":90475,"src":"1116:18:155","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$93060","typeString":"enum GameStatus"},"typeName":{"id":90472,"nodeType":"UserDefinedTypeName","pathNode":{"id":90471,"name":"GameStatus","nodeType":"IdentifierPath","referencedDeclaration":93060,"src":"1116:10:155"},"referencedDeclaration":93060,"src":"1116:10:155","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$93060","typeString":"enum GameStatus"}},"visibility":"internal"}],"src":"1115:20:155"},"scope":90515,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":90482,"nodeType":"FunctionDefinition","src":"1416:63:155","nodes":[],"documentation":{"id":90476,"nodeType":"StructuredDocumentation","src":"1142:269:155","text":"@notice Getter for the game type.\n @dev The reference impl should be entirely different depending on the type (fault, validity)\n i.e. The game type should indicate the security model.\n @return gameType_ The type of proof system being used."},"functionSelector":"bbdc02db","implemented":false,"kind":"function","modifiers":[],"name":"gameType","nameLocation":"1425:8:155","parameters":{"id":90477,"nodeType":"ParameterList","parameters":[],"src":"1433:2:155"},"returnParameters":{"id":90481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90480,"mutability":"mutable","name":"gameType_","nameLocation":"1468:9:155","nodeType":"VariableDeclaration","scope":90482,"src":"1459:18:155","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":90479,"nodeType":"UserDefinedTypeName","pathNode":{"id":90478,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"1459:8:155"},"referencedDeclaration":93054,"src":"1459:8:155","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"}],"src":"1458:20:155"},"scope":90515,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":90489,"nodeType":"FunctionDefinition","src":"1644:62:155","nodes":[],"documentation":{"id":90483,"nodeType":"StructuredDocumentation","src":"1485:154:155","text":"@notice Getter for the root claim.\n @dev `clones-with-immutable-args` argument #1\n @return rootClaim_ The root claim of the DisputeGame."},"functionSelector":"bcef3b55","implemented":false,"kind":"function","modifiers":[],"name":"rootClaim","nameLocation":"1653:9:155","parameters":{"id":90484,"nodeType":"ParameterList","parameters":[],"src":"1662:2:155"},"returnParameters":{"id":90488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90487,"mutability":"mutable","name":"rootClaim_","nameLocation":"1694:10:155","nodeType":"VariableDeclaration","scope":90489,"src":"1688:16:155","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":90486,"nodeType":"UserDefinedTypeName","pathNode":{"id":90485,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"1688:5:155"},"referencedDeclaration":93038,"src":"1688:5:155","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"}],"src":"1687:18:155"},"scope":90515,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":90495,"nodeType":"FunctionDefinition","src":"1905:69:155","nodes":[],"documentation":{"id":90490,"nodeType":"StructuredDocumentation","src":"1712:188:155","text":"@notice Getter for the extra data.\n @dev `clones-with-immutable-args` argument #2\n @return extraData_ Any extra data supplied to the dispute game contract by the creator."},"functionSelector":"609d3334","implemented":false,"kind":"function","modifiers":[],"name":"extraData","nameLocation":"1914:9:155","parameters":{"id":90491,"nodeType":"ParameterList","parameters":[],"src":"1923:2:155"},"returnParameters":{"id":90494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90493,"mutability":"mutable","name":"extraData_","nameLocation":"1962:10:155","nodeType":"VariableDeclaration","scope":90495,"src":"1949:23:155","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90492,"name":"bytes","nodeType":"ElementaryTypeName","src":"1949:5:155","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1948:25:155"},"scope":90515,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":90502,"nodeType":"FunctionDefinition","src":"2435:57:155","nodes":[],"documentation":{"id":90496,"nodeType":"StructuredDocumentation","src":"1980:450:155","text":"@notice If all necessary information has been gathered, this function should mark the game\n status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of\n the resolved game. It is at this stage that the bonds should be awarded to the\n necessary parties.\n @dev May only be called if the `status` is `IN_PROGRESS`.\n @return status_ The status of the game after resolution."},"functionSelector":"2810e1d6","implemented":false,"kind":"function","modifiers":[],"name":"resolve","nameLocation":"2444:7:155","parameters":{"id":90497,"nodeType":"ParameterList","parameters":[],"src":"2451:2:155"},"returnParameters":{"id":90501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90500,"mutability":"mutable","name":"status_","nameLocation":"2483:7:155","nodeType":"VariableDeclaration","scope":90502,"src":"2472:18:155","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$93060","typeString":"enum GameStatus"},"typeName":{"id":90499,"nodeType":"UserDefinedTypeName","pathNode":{"id":90498,"name":"GameStatus","nodeType":"IdentifierPath","referencedDeclaration":93060,"src":"2472:10:155"},"referencedDeclaration":93060,"src":"2472:10:155","typeDescriptions":{"typeIdentifier":"t_enum$_GameStatus_$93060","typeString":"enum GameStatus"}},"visibility":"internal"}],"src":"2471:20:155"},"scope":90515,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":90514,"nodeType":"FunctionDefinition","src":"3037:106:155","nodes":[],"documentation":{"id":90503,"nodeType":"StructuredDocumentation","src":"2498:534:155","text":"@notice A compliant implementation of this interface should return the components of the\n game UUID's preimage provided in the cwia payload. The preimage of the UUID is\n constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes\n concatenation.\n @return gameType_ The type of proof system being used.\n @return rootClaim_ The root claim of the DisputeGame.\n @return extraData_ Any extra data supplied to the dispute game contract by the creator."},"functionSelector":"fa24f743","implemented":false,"kind":"function","modifiers":[],"name":"gameData","nameLocation":"3046:8:155","parameters":{"id":90504,"nodeType":"ParameterList","parameters":[],"src":"3054:2:155"},"returnParameters":{"id":90513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90507,"mutability":"mutable","name":"gameType_","nameLocation":"3089:9:155","nodeType":"VariableDeclaration","scope":90514,"src":"3080:18:155","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":90506,"nodeType":"UserDefinedTypeName","pathNode":{"id":90505,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"3080:8:155"},"referencedDeclaration":93054,"src":"3080:8:155","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":90510,"mutability":"mutable","name":"rootClaim_","nameLocation":"3106:10:155","nodeType":"VariableDeclaration","scope":90514,"src":"3100:16:155","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":90509,"nodeType":"UserDefinedTypeName","pathNode":{"id":90508,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"3100:5:155"},"referencedDeclaration":93038,"src":"3100:5:155","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":90512,"mutability":"mutable","name":"extraData_","nameLocation":"3131:10:155","nodeType":"VariableDeclaration","scope":90514,"src":"3118:23:155","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90511,"name":"bytes","nodeType":"ElementaryTypeName","src":"3118:5:155","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3079:63:155"},"scope":90515,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":90447,"name":"IInitializable","nodeType":"IdentifierPath","referencedDeclaration":90789,"src":"289:14:155"},"id":90448,"nodeType":"InheritanceSpecifier","src":"289:14:155"}],"canonicalName":"IDisputeGame","contractDependencies":[],"contractKind":"interface","documentation":{"id":90446,"nodeType":"StructuredDocumentation","src":"177:86:155","text":"@title IDisputeGame\n @notice The generic interface for a DisputeGame contract."},"fullyImplemented":false,"linearizedBaseContracts":[90515,90789],"name":"IDisputeGame","nameLocation":"273:12:155","scope":90516,"usedErrors":[]}],"license":"MIT"},"id":155}
{"abi":[{"type":"function","name":"createdAt","inputs":[],"outputs":[{"name":"createdAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"extraData","inputs":[],"outputs":[{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"gameData","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"},{"name":"rootClaim_","type":"bytes32","internalType":"Claim"},{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"gameType","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"resolve","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"nonpayable"},{"type":"function","name":"resolvedAt","inputs":[],"outputs":[{"name":"resolvedAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"rootClaim","inputs":[],"outputs":[{"name":"rootClaim_","type":"bytes32","internalType":"Claim"}],"stateMutability":"pure"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"view"},{"type":"event","name":"Resolved","inputs":[{"name":"status","type":"uint8","indexed":true,"internalType":"enum GameStatus"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createdAt()":"cf09e0d0","extraData()":"609d3334","gameData()":"fa24f743","gameType()":"bbdc02db","initialize()":"8129fc1c","resolve()":"2810e1d6","resolvedAt()":"19effeb4","rootClaim()":"bcef3b55","status()":"200d2ed2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum GameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"createdAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"resolvedAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Resolved(uint8)\":{\"params\":{\"status\":\"The status of the game after resolution.\"}}},\"kind\":\"dev\",\"methods\":{\"createdAt()\":{\"returns\":{\"createdAt_\":\"The timestamp that the DisputeGame contract was created at.\"}},\"extraData()\":{\"details\":\"`clones-with-immutable-args` argument #2\",\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\"}},\"gameData()\":{\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\",\"gameType_\":\"The type of proof system being used.\",\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"gameType()\":{\"details\":\"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.\",\"returns\":{\"gameType_\":\"The type of proof system being used.\"}},\"initialize()\":{\"details\":\"This function may only be called once.\"},\"resolve()\":{\"details\":\"May only be called if the `status` is `IN_PROGRESS`.\",\"returns\":{\"status_\":\"The status of the game after resolution.\"}},\"resolvedAt()\":{\"returns\":{\"resolvedAt_\":\"The timestamp that the DisputeGame contract was resolved at.\"}},\"rootClaim()\":{\"details\":\"`clones-with-immutable-args` argument #1\",\"returns\":{\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"status()\":{\"returns\":{\"status_\":\"The current status of the game.\"}}},\"title\":\"IDisputeGame\",\"version\":1},\"userdoc\":{\"events\":{\"Resolved(uint8)\":{\"notice\":\"Emitted when the game is resolved.\"}},\"kind\":\"user\",\"methods\":{\"createdAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was created at.\"},\"extraData()\":{\"notice\":\"Getter for the extra data.\"},\"gameData()\":{\"notice\":\"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation.\"},\"gameType()\":{\"notice\":\"Getter for the game type.\"},\"initialize()\":{\"notice\":\"Initializes the contract.\"},\"resolve()\":{\"notice\":\"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties.\"},\"resolvedAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was resolved at.\"},\"rootClaim()\":{\"notice\":\"Getter for the root claim.\"},\"status()\":{\"notice\":\"Returns the current status of the game.\"}},\"notice\":\"The generic interface for a DisputeGame contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IDisputeGame.sol\":\"IDisputeGame\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum GameStatus","name":"status","type":"uint8","indexed":true}],"type":"event","name":"Resolved","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"createdAt","outputs":[{"internalType":"Timestamp","name":"createdAt_","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"extraData","outputs":[{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameData","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"},{"internalType":"Claim","name":"rootClaim_","type":"bytes32"},{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameType","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resolve","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolvedAt","outputs":[{"internalType":"Timestamp","name":"resolvedAt_","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"rootClaim","outputs":[{"internalType":"Claim","name":"rootClaim_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"extraData()":{"details":"`clones-with-immutable-args` argument #2","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #1","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}}},"version":1},"userdoc":{"kind":"user","methods":{"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"extraData()":{"notice":"Getter for the extra data."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"status()":{"notice":"Returns the current status of the game."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IDisputeGame.sol":"IDisputeGame"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"extraData()":{"notice":"Getter for the extra data."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"status()":{"notice":"Returns the current status of the game."}},"events":{"Resolved(uint8)":{"notice":"Emitted when the game is resolved."}},"notice":"The generic interface for a DisputeGame contract."},"devdoc":{"version":1,"kind":"dev","methods":{"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"extraData()":{"details":"`clones-with-immutable-args` argument #2","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #1","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}}},"events":{"Resolved(uint8)":{"params":{"status":"The status of the game after resolution."}}},"title":"IDisputeGame"},"id":164}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"check","inputs":[{"name":"_params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_params\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/IDripCheck.sol\":\"IDripCheck\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_params","type":"bytes"}],"stateMutability":"view","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/IDripCheck.sol":"IDripCheck"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}}},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}}},"ast":{"absolutePath":"src/periphery/drippie/IDripCheck.sol","id":96640,"exportedSymbols":{"IDripCheck":[96639]},"nodeType":"SourceUnit","src":"32:661:195","nodes":[{"id":96630,"nodeType":"PragmaDirective","src":"32:23:195","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":96639,"nodeType":"ContractDefinition","src":"57:635:195","nodes":[{"id":96638,"nodeType":"FunctionDefinition","src":"615:75:195","nodes":[],"documentation":{"id":96631,"nodeType":"StructuredDocumentation","src":"431:179:195","text":"@notice Checks whether a drip should be executable.\n @param _params Encoded parameters for the drip check.\n @return execute_ Whether the drip should be executed."},"functionSelector":"c64b3bb5","implemented":false,"kind":"function","modifiers":[],"name":"check","nameLocation":"624:5:195","parameters":{"id":96634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96633,"mutability":"mutable","name":"_params","nameLocation":"643:7:195","nodeType":"VariableDeclaration","scope":96638,"src":"630:20:195","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":96632,"name":"bytes","nodeType":"ElementaryTypeName","src":"630:5:195","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"629:22:195"},"returnParameters":{"id":96637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96636,"mutability":"mutable","name":"execute_","nameLocation":"680:8:195","nodeType":"VariableDeclaration","scope":96638,"src":"675:13:195","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":96635,"name":"bool","nodeType":"ElementaryTypeName","src":"675:4:195","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"674:15:195"},"scope":96639,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDripCheck","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[96639],"name":"IDripCheck","nameLocation":"67:10:195","scope":96640,"usedErrors":[]}],"license":"MIT"},"id":195}
{"abi":[{"type":"function","name":"check","inputs":[{"name":"_params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"execute_","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"check(bytes)":"c64b3bb5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_params\",\"type\":\"bytes\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"execute_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"check(bytes)\":{\"params\":{\"_params\":\"Encoded parameters for the drip check.\"},\"returns\":{\"execute_\":\"Whether the drip should be executed.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"check(bytes)\":{\"notice\":\"Checks whether a drip should be executable.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/drippie/IDripCheck.sol\":\"IDripCheck\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/drippie/IDripCheck.sol\":{\"keccak256\":\"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6\",\"dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_params","type":"bytes"}],"stateMutability":"view","type":"function","name":"check","outputs":[{"internalType":"bool","name":"execute_","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}},"version":1},"userdoc":{"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/drippie/IDripCheck.sol":"IDripCheck"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/drippie/IDripCheck.sol":{"keccak256":"0x4db01d51dc47813980a9a8d76e5f14783b6cfed23e4237260281edbe06dad628","urls":["bzz-raw://0ce87d7ed0e12be217066aafdc0d16ff563cdc6807ecbe2eb58b751d00e984d6","dweb:/ipfs/QmNWzTdxGk6ZDagpbz5RHCTWBkoSoPzaNtcSHppw3rBsmN"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"check(bytes)":{"notice":"Checks whether a drip should be executable."}}},"devdoc":{"version":1,"kind":"dev","methods":{"check(bytes)":{"params":{"_params":"Encoded parameters for the drip check."},"returns":{"execute_":"Whether the drip should be executed."}}}},"id":206}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"isValidSignature","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"magicValue","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided data\",\"params\":{\"hash\":\"Hash of the data to be signed\",\"signature\":\"Signature byte array associated with _data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":\"IERC1271\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":"IERC1271"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","id":47871,"exportedSymbols":{"IERC1271":[47870]},"nodeType":"SourceUnit","src":"92:574:40","nodes":[{"id":47858,"nodeType":"PragmaDirective","src":"92:23:40","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47870,"nodeType":"ContractDefinition","src":"307:358:40","nodes":[{"id":47869,"nodeType":"FunctionDefinition","src":"557:106:40","nodes":[],"documentation":{"id":47860,"nodeType":"StructuredDocumentation","src":"332:220:40","text":" @dev Should return whether the signature provided is valid for the provided data\n @param hash Hash of the data to be signed\n @param signature Signature byte array associated with _data"},"functionSelector":"1626ba7e","implemented":false,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"566:16:40","parameters":{"id":47865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47862,"mutability":"mutable","name":"hash","nameLocation":"591:4:40","nodeType":"VariableDeclaration","scope":47869,"src":"583:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"583:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47864,"mutability":"mutable","name":"signature","nameLocation":"610:9:40","nodeType":"VariableDeclaration","scope":47869,"src":"597:22:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47863,"name":"bytes","nodeType":"ElementaryTypeName","src":"597:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"582:38:40"},"returnParameters":{"id":47868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47867,"mutability":"mutable","name":"magicValue","nameLocation":"651:10:40","nodeType":"VariableDeclaration","scope":47869,"src":"644:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":47866,"name":"bytes4","nodeType":"ElementaryTypeName","src":"644:6:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"643:19:40"},"scope":47870,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC1271","contractDependencies":[],"contractKind":"interface","documentation":{"id":47859,"nodeType":"StructuredDocumentation","src":"117:189:40","text":" @dev Interface of the ERC1271 standard signature validation method for\n contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271].\n _Available since v4.1._"},"fullyImplemented":false,"linearizedBaseContracts":[47870],"name":"IERC1271","nameLocation":"317:8:40","scope":47871,"usedErrors":[]}],"license":"MIT"},"id":40}
{"abi":[{"type":"function","name":"isValidSignature","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"magicValue","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided data\",\"params\":{\"hash\":\"Hash of the data to be signed\",\"signature\":\"Signature byte array associated with _data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":\"IERC1271\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":"IERC1271"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}}},"id":40}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"isValidSignature","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"magicValue","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided data\",\"params\":{\"hash\":\"Hash of the data to be signed\",\"signature\":\"Signature byte array associated with _data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":\"IERC1271\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":"IERC1271"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","id":14,"exportedSymbols":{"IERC1271":[13]},"nodeType":"SourceUnit","src":"92:574:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"92:23:0","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":13,"nodeType":"ContractDefinition","src":"307:358:0","nodes":[{"id":12,"nodeType":"FunctionDefinition","src":"557:106:0","nodes":[],"documentation":{"id":3,"nodeType":"StructuredDocumentation","src":"332:220:0","text":" @dev Should return whether the signature provided is valid for the provided data\n @param hash Hash of the data to be signed\n @param signature Signature byte array associated with _data"},"functionSelector":"1626ba7e","implemented":false,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"566:16:0","parameters":{"id":8,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5,"mutability":"mutable","name":"hash","nameLocation":"591:4:0","nodeType":"VariableDeclaration","scope":12,"src":"583:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4,"name":"bytes32","nodeType":"ElementaryTypeName","src":"583:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7,"mutability":"mutable","name":"signature","nameLocation":"610:9:0","nodeType":"VariableDeclaration","scope":12,"src":"597:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6,"name":"bytes","nodeType":"ElementaryTypeName","src":"597:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"582:38:0"},"returnParameters":{"id":11,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10,"mutability":"mutable","name":"magicValue","nameLocation":"651:10:0","nodeType":"VariableDeclaration","scope":12,"src":"644:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9,"name":"bytes4","nodeType":"ElementaryTypeName","src":"644:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"643:19:0"},"scope":13,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC1271","contractDependencies":[],"contractKind":"interface","documentation":{"id":2,"nodeType":"StructuredDocumentation","src":"117:189:0","text":" @dev Interface of the ERC1271 standard signature validation method for\n contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271].\n _Available since v4.1._"},"fullyImplemented":false,"linearizedBaseContracts":[13],"name":"IERC1271","nameLocation":"317:8:0","scope":14,"usedErrors":[]}],"license":"MIT"},"id":0}
{"abi":[{"type":"function","name":"isValidSignature","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"magicValue","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided data\",\"params\":{\"hash\":\"Hash of the data to be signed\",\"signature\":\"Signature byte array associated with _data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":\"IERC1271\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":"IERC1271"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}}}},"id":0}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"More details at https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/introspection/IERC165.sol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/IERC165.sol":"IERC165"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb","urls":["bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89","dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"More details at https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/introspection/IERC165.sol"},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"ast":{"absolutePath":"lib/safe-contracts/contracts/interfaces/IERC165.sol","id":58274,"exportedSymbols":{"IERC165":[58273]},"nodeType":"SourceUnit","src":"42:617:88","nodes":[{"id":58263,"nodeType":"PragmaDirective","src":"42:31:88","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58273,"nodeType":"ContractDefinition","src":"212:446:88","nodes":[{"id":58272,"nodeType":"FunctionDefinition","src":"580:76:88","nodes":[],"documentation":{"id":58265,"nodeType":"StructuredDocumentation","src":"236:339:88","text":" @dev Returns true if this contract implements the interface defined by `interfaceId`.\n See the corresponding EIP section\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"589:17:88","parameters":{"id":58268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58267,"mutability":"mutable","name":"interfaceId","nameLocation":"614:11:88","nodeType":"VariableDeclaration","scope":58272,"src":"607:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":58266,"name":"bytes4","nodeType":"ElementaryTypeName","src":"607:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"606:20:88"},"returnParameters":{"id":58271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58270,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58272,"src":"650:4:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":58269,"name":"bool","nodeType":"ElementaryTypeName","src":"650:4:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"649:6:88"},"scope":58273,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":58264,"nodeType":"StructuredDocumentation","src":"75:137:88","text":"@notice More details at https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/introspection/IERC165.sol"},"fullyImplemented":false,"linearizedBaseContracts":[58273],"name":"IERC165","nameLocation":"222:7:88","scope":58274,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":88}
{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"More details at https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/introspection/IERC165.sol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/IERC165.sol":"IERC165"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb","urls":["bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89","dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"More details at https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/introspection/IERC165.sol"},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"id":88}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":\"IERC165Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":"IERC165Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol","id":47666,"exportedSymbols":{"IERC165Upgradeable":[47665]},"nodeType":"SourceUnit","src":"100:764:37","nodes":[{"id":47655,"nodeType":"PragmaDirective","src":"100:23:37","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47665,"nodeType":"ContractDefinition","src":"405:458:37","nodes":[{"id":47664,"nodeType":"FunctionDefinition","src":"785:76:37","nodes":[],"documentation":{"id":47657,"nodeType":"StructuredDocumentation","src":"440:340:37","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"794:17:37","parameters":{"id":47660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47659,"mutability":"mutable","name":"interfaceId","nameLocation":"819:11:37","nodeType":"VariableDeclaration","scope":47664,"src":"812:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":47658,"name":"bytes4","nodeType":"ElementaryTypeName","src":"812:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"811:20:37"},"returnParameters":{"id":47663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47662,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47664,"src":"855:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47661,"name":"bool","nodeType":"ElementaryTypeName","src":"855:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"854:6:37"},"scope":47665,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC165Upgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":47656,"nodeType":"StructuredDocumentation","src":"125:279:37","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"linearizedBaseContracts":[47665],"name":"IERC165Upgradeable","nameLocation":"415:18:37","scope":47666,"usedErrors":[]}],"license":"MIT"},"id":37}
{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":\"IERC165Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":"IERC165Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"id":37}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC20 standard as defined in the EIP.","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","id":48726,"exportedSymbols":{"IERC20":[48725]},"nodeType":"SourceUnit","src":"106:2661:44","nodes":[{"id":48649,"nodeType":"PragmaDirective","src":"106:23:44","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48725,"nodeType":"ContractDefinition","src":"202:2564:44","nodes":[{"id":48659,"nodeType":"EventDefinition","src":"388:72:44","nodes":[],"anonymous":false,"documentation":{"id":48651,"nodeType":"StructuredDocumentation","src":"225:158:44","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"394:8:44","parameters":{"id":48658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48653,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:44","nodeType":"VariableDeclaration","scope":48659,"src":"403:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48652,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48655,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:44","nodeType":"VariableDeclaration","scope":48659,"src":"425:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48654,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48657,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:44","nodeType":"VariableDeclaration","scope":48659,"src":"445:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48656,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:44"}},{"id":48668,"nodeType":"EventDefinition","src":"619:78:44","nodes":[],"anonymous":false,"documentation":{"id":48660,"nodeType":"StructuredDocumentation","src":"466:148:44","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"625:8:44","parameters":{"id":48667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48662,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:44","nodeType":"VariableDeclaration","scope":48668,"src":"634:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48661,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48664,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:44","nodeType":"VariableDeclaration","scope":48668,"src":"657:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48663,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48666,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:44","nodeType":"VariableDeclaration","scope":48668,"src":"682:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48665,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:44"}},{"id":48674,"nodeType":"FunctionDefinition","src":"774:55:44","nodes":[],"documentation":{"id":48669,"nodeType":"StructuredDocumentation","src":"703:66:44","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:44","parameters":{"id":48670,"nodeType":"ParameterList","parameters":[],"src":"794:2:44"},"returnParameters":{"id":48673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48674,"src":"820:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48671,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:44"},"scope":48725,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48682,"nodeType":"FunctionDefinition","src":"912:68:44","nodes":[],"documentation":{"id":48675,"nodeType":"StructuredDocumentation","src":"835:72:44","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:44","parameters":{"id":48678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48677,"mutability":"mutable","name":"account","nameLocation":"939:7:44","nodeType":"VariableDeclaration","scope":48682,"src":"931:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48676,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:44"},"returnParameters":{"id":48681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48682,"src":"971:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48679,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:44"},"scope":48725,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48692,"nodeType":"FunctionDefinition","src":"1193:70:44","nodes":[],"documentation":{"id":48683,"nodeType":"StructuredDocumentation","src":"986:202:44","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:44","parameters":{"id":48688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48685,"mutability":"mutable","name":"to","nameLocation":"1219:2:44","nodeType":"VariableDeclaration","scope":48692,"src":"1211:10:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48684,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48687,"mutability":"mutable","name":"amount","nameLocation":"1231:6:44","nodeType":"VariableDeclaration","scope":48692,"src":"1223:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48686,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:44"},"returnParameters":{"id":48691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48692,"src":"1257:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48689,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:44"},"scope":48725,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48702,"nodeType":"FunctionDefinition","src":"1538:83:44","nodes":[],"documentation":{"id":48693,"nodeType":"StructuredDocumentation","src":"1269:264:44","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:44","parameters":{"id":48698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48695,"mutability":"mutable","name":"owner","nameLocation":"1565:5:44","nodeType":"VariableDeclaration","scope":48702,"src":"1557:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48694,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48697,"mutability":"mutable","name":"spender","nameLocation":"1580:7:44","nodeType":"VariableDeclaration","scope":48702,"src":"1572:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48696,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:44"},"returnParameters":{"id":48701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48702,"src":"1612:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48699,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:44"},"scope":48725,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48712,"nodeType":"FunctionDefinition","src":"2274:74:44","nodes":[],"documentation":{"id":48703,"nodeType":"StructuredDocumentation","src":"1627:642:44","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:44","parameters":{"id":48708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48705,"mutability":"mutable","name":"spender","nameLocation":"2299:7:44","nodeType":"VariableDeclaration","scope":48712,"src":"2291:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48704,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48707,"mutability":"mutable","name":"amount","nameLocation":"2316:6:44","nodeType":"VariableDeclaration","scope":48712,"src":"2308:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48706,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:44"},"returnParameters":{"id":48711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48712,"src":"2342:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48709,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:44"},"scope":48725,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48724,"nodeType":"FunctionDefinition","src":"2646:118:44","nodes":[],"documentation":{"id":48713,"nodeType":"StructuredDocumentation","src":"2354:287:44","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:44","parameters":{"id":48720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48715,"mutability":"mutable","name":"from","nameLocation":"2685:4:44","nodeType":"VariableDeclaration","scope":48724,"src":"2677:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48714,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48717,"mutability":"mutable","name":"to","nameLocation":"2707:2:44","nodeType":"VariableDeclaration","scope":48724,"src":"2699:10:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48716,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48719,"mutability":"mutable","name":"amount","nameLocation":"2727:6:44","nodeType":"VariableDeclaration","scope":48724,"src":"2719:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48718,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:44"},"returnParameters":{"id":48723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48724,"src":"2758:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48721,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:44"},"scope":48725,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":48650,"nodeType":"StructuredDocumentation","src":"131:70:44","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"linearizedBaseContracts":[48725],"name":"IERC20","nameLocation":"212:6:44","scope":48726,"usedErrors":[]}],"license":"MIT"},"id":44}
{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC20 standard as defined in the EIP.","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}}},"id":44}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":49432,"exportedSymbols":{"IERC20":[48725],"IERC20Metadata":[49431]},"nodeType":"SourceUnit","src":"110:573:47","nodes":[{"id":49408,"nodeType":"PragmaDirective","src":"110:23:47","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49409,"nodeType":"ImportDirective","src":"135:23:47","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","nameLocation":"-1:-1:-1","scope":49432,"sourceUnit":48726,"symbolAliases":[],"unitAlias":""},{"id":49431,"nodeType":"ContractDefinition","src":"277:405:47","nodes":[{"id":49418,"nodeType":"FunctionDefinition","src":"377:54:47","nodes":[],"documentation":{"id":49413,"nodeType":"StructuredDocumentation","src":"318:54:47","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:47","parameters":{"id":49414,"nodeType":"ParameterList","parameters":[],"src":"390:2:47"},"returnParameters":{"id":49417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49418,"src":"416:13:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":49415,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:47"},"scope":49431,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49424,"nodeType":"FunctionDefinition","src":"498:56:47","nodes":[],"documentation":{"id":49419,"nodeType":"StructuredDocumentation","src":"437:56:47","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:47","parameters":{"id":49420,"nodeType":"ParameterList","parameters":[],"src":"513:2:47"},"returnParameters":{"id":49423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49424,"src":"539:13:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":49421,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:47"},"scope":49431,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49430,"nodeType":"FunctionDefinition","src":"630:50:47","nodes":[],"documentation":{"id":49425,"nodeType":"StructuredDocumentation","src":"560:65:47","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:47","parameters":{"id":49426,"nodeType":"ParameterList","parameters":[],"src":"647:2:47"},"returnParameters":{"id":49429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49428,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49430,"src":"673:5:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":49427,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:47"},"scope":49431,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":49411,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":48725,"src":"305:6:47"},"id":49412,"nodeType":"InheritanceSpecifier","src":"305:6:47"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":49410,"nodeType":"StructuredDocumentation","src":"160:116:47","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"linearizedBaseContracts":[49431,48725],"name":"IERC20Metadata","nameLocation":"287:14:47","scope":49432,"usedErrors":[]}],"license":"MIT"},"id":47}
{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}}},"id":47}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":"IERC721"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Required interface of an ERC721 compliant contract.","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"events":{"Approval(address,address,uint256)":{"details":"Emitted when `owner` enables `approved` to manage the `tokenId` token."},"ApprovalForAll(address,address,bool)":{"details":"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"Transfer(address,address,uint256)":{"details":"Emitted when `tokenId` token is transferred from `from` to `to`."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","id":50904,"exportedSymbols":{"IERC165":[52789],"IERC721":[50903]},"nodeType":"SourceUnit","src":"108:4640:52","nodes":[{"id":50789,"nodeType":"PragmaDirective","src":"108:23:52","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50790,"nodeType":"ImportDirective","src":"133:47:52","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","nameLocation":"-1:-1:-1","scope":50904,"sourceUnit":52790,"symbolAliases":[],"unitAlias":""},{"id":50903,"nodeType":"ContractDefinition","src":"250:4497:52","nodes":[{"id":50802,"nodeType":"EventDefinition","src":"378:82:52","nodes":[],"anonymous":false,"documentation":{"id":50794,"nodeType":"StructuredDocumentation","src":"285:88:52","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"384:8:52","parameters":{"id":50801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50796,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"409:4:52","nodeType":"VariableDeclaration","scope":50802,"src":"393:20:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50795,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50798,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"431:2:52","nodeType":"VariableDeclaration","scope":50802,"src":"415:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50797,"name":"address","nodeType":"ElementaryTypeName","src":"415:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50800,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"451:7:52","nodeType":"VariableDeclaration","scope":50802,"src":"435:23:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50799,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"392:67:52"}},{"id":50811,"nodeType":"EventDefinition","src":"565:89:52","nodes":[],"anonymous":false,"documentation":{"id":50803,"nodeType":"StructuredDocumentation","src":"466:94:52","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"571:8:52","parameters":{"id":50810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50805,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"596:5:52","nodeType":"VariableDeclaration","scope":50811,"src":"580:21:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50804,"name":"address","nodeType":"ElementaryTypeName","src":"580:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50807,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"619:8:52","nodeType":"VariableDeclaration","scope":50811,"src":"603:24:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50806,"name":"address","nodeType":"ElementaryTypeName","src":"603:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50809,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"645:7:52","nodeType":"VariableDeclaration","scope":50811,"src":"629:23:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50808,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"579:74:52"}},{"id":50820,"nodeType":"EventDefinition","src":"782:85:52","nodes":[],"anonymous":false,"documentation":{"id":50812,"nodeType":"StructuredDocumentation","src":"660:117:52","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","name":"ApprovalForAll","nameLocation":"788:14:52","parameters":{"id":50819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50814,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"819:5:52","nodeType":"VariableDeclaration","scope":50820,"src":"803:21:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50813,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50816,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"842:8:52","nodeType":"VariableDeclaration","scope":50820,"src":"826:24:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50815,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50818,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"857:8:52","nodeType":"VariableDeclaration","scope":50820,"src":"852:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50817,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"802:64:52"}},{"id":50828,"nodeType":"FunctionDefinition","src":"954:74:52","nodes":[],"documentation":{"id":50821,"nodeType":"StructuredDocumentation","src":"873:76:52","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"963:9:52","parameters":{"id":50824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50823,"mutability":"mutable","name":"owner","nameLocation":"981:5:52","nodeType":"VariableDeclaration","scope":50828,"src":"973:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50822,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"972:15:52"},"returnParameters":{"id":50827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50826,"mutability":"mutable","name":"balance","nameLocation":"1019:7:52","nodeType":"VariableDeclaration","scope":50828,"src":"1011:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50825,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:17:52"},"scope":50903,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50836,"nodeType":"FunctionDefinition","src":"1170:72:52","nodes":[],"documentation":{"id":50829,"nodeType":"StructuredDocumentation","src":"1034:131:52","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1179:7:52","parameters":{"id":50832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50831,"mutability":"mutable","name":"tokenId","nameLocation":"1195:7:52","nodeType":"VariableDeclaration","scope":50836,"src":"1187:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50830,"name":"uint256","nodeType":"ElementaryTypeName","src":"1187:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1186:17:52"},"returnParameters":{"id":50835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50834,"mutability":"mutable","name":"owner","nameLocation":"1235:5:52","nodeType":"VariableDeclaration","scope":50836,"src":"1227:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50833,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1226:15:52"},"scope":50903,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50848,"nodeType":"FunctionDefinition","src":"1809:137:52","nodes":[],"documentation":{"id":50837,"nodeType":"StructuredDocumentation","src":"1248:556:52","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1818:16:52","parameters":{"id":50846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50839,"mutability":"mutable","name":"from","nameLocation":"1852:4:52","nodeType":"VariableDeclaration","scope":50848,"src":"1844:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50838,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50841,"mutability":"mutable","name":"to","nameLocation":"1874:2:52","nodeType":"VariableDeclaration","scope":50848,"src":"1866:10:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50840,"name":"address","nodeType":"ElementaryTypeName","src":"1866:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50843,"mutability":"mutable","name":"tokenId","nameLocation":"1894:7:52","nodeType":"VariableDeclaration","scope":50848,"src":"1886:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50842,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50845,"mutability":"mutable","name":"data","nameLocation":"1926:4:52","nodeType":"VariableDeclaration","scope":50848,"src":"1911:19:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":50844,"name":"bytes","nodeType":"ElementaryTypeName","src":"1911:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1834:102:52"},"returnParameters":{"id":50847,"nodeType":"ParameterList","parameters":[],"src":"1945:0:52"},"scope":50903,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50858,"nodeType":"FunctionDefinition","src":"2644:108:52","nodes":[],"documentation":{"id":50849,"nodeType":"StructuredDocumentation","src":"1952:687:52","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2653:16:52","parameters":{"id":50856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50851,"mutability":"mutable","name":"from","nameLocation":"2687:4:52","nodeType":"VariableDeclaration","scope":50858,"src":"2679:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50850,"name":"address","nodeType":"ElementaryTypeName","src":"2679:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50853,"mutability":"mutable","name":"to","nameLocation":"2709:2:52","nodeType":"VariableDeclaration","scope":50858,"src":"2701:10:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50852,"name":"address","nodeType":"ElementaryTypeName","src":"2701:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50855,"mutability":"mutable","name":"tokenId","nameLocation":"2729:7:52","nodeType":"VariableDeclaration","scope":50858,"src":"2721:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50854,"name":"uint256","nodeType":"ElementaryTypeName","src":"2721:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2669:73:52"},"returnParameters":{"id":50857,"nodeType":"ParameterList","parameters":[],"src":"2751:0:52"},"scope":50903,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50868,"nodeType":"FunctionDefinition","src":"3267:104:52","nodes":[],"documentation":{"id":50859,"nodeType":"StructuredDocumentation","src":"2758:504:52","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3276:12:52","parameters":{"id":50866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50861,"mutability":"mutable","name":"from","nameLocation":"3306:4:52","nodeType":"VariableDeclaration","scope":50868,"src":"3298:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50860,"name":"address","nodeType":"ElementaryTypeName","src":"3298:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50863,"mutability":"mutable","name":"to","nameLocation":"3328:2:52","nodeType":"VariableDeclaration","scope":50868,"src":"3320:10:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50862,"name":"address","nodeType":"ElementaryTypeName","src":"3320:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50865,"mutability":"mutable","name":"tokenId","nameLocation":"3348:7:52","nodeType":"VariableDeclaration","scope":50868,"src":"3340:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50864,"name":"uint256","nodeType":"ElementaryTypeName","src":"3340:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3288:73:52"},"returnParameters":{"id":50867,"nodeType":"ParameterList","parameters":[],"src":"3370:0:52"},"scope":50903,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50876,"nodeType":"FunctionDefinition","src":"3834:55:52","nodes":[],"documentation":{"id":50869,"nodeType":"StructuredDocumentation","src":"3377:452:52","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3843:7:52","parameters":{"id":50874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50871,"mutability":"mutable","name":"to","nameLocation":"3859:2:52","nodeType":"VariableDeclaration","scope":50876,"src":"3851:10:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50870,"name":"address","nodeType":"ElementaryTypeName","src":"3851:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50873,"mutability":"mutable","name":"tokenId","nameLocation":"3871:7:52","nodeType":"VariableDeclaration","scope":50876,"src":"3863:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50872,"name":"uint256","nodeType":"ElementaryTypeName","src":"3863:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3850:29:52"},"returnParameters":{"id":50875,"nodeType":"ParameterList","parameters":[],"src":"3888:0:52"},"scope":50903,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50884,"nodeType":"FunctionDefinition","src":"4209:70:52","nodes":[],"documentation":{"id":50877,"nodeType":"StructuredDocumentation","src":"3895:309:52","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4218:17:52","parameters":{"id":50882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50879,"mutability":"mutable","name":"operator","nameLocation":"4244:8:52","nodeType":"VariableDeclaration","scope":50884,"src":"4236:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50878,"name":"address","nodeType":"ElementaryTypeName","src":"4236:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50881,"mutability":"mutable","name":"_approved","nameLocation":"4259:9:52","nodeType":"VariableDeclaration","scope":50884,"src":"4254:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50880,"name":"bool","nodeType":"ElementaryTypeName","src":"4254:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4235:34:52"},"returnParameters":{"id":50883,"nodeType":"ParameterList","parameters":[],"src":"4278:0:52"},"scope":50903,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50892,"nodeType":"FunctionDefinition","src":"4429:79:52","nodes":[],"documentation":{"id":50885,"nodeType":"StructuredDocumentation","src":"4285:139:52","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4438:11:52","parameters":{"id":50888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50887,"mutability":"mutable","name":"tokenId","nameLocation":"4458:7:52","nodeType":"VariableDeclaration","scope":50892,"src":"4450:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50886,"name":"uint256","nodeType":"ElementaryTypeName","src":"4450:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4449:17:52"},"returnParameters":{"id":50891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50890,"mutability":"mutable","name":"operator","nameLocation":"4498:8:52","nodeType":"VariableDeclaration","scope":50892,"src":"4490:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50889,"name":"address","nodeType":"ElementaryTypeName","src":"4490:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4489:18:52"},"scope":50903,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50902,"nodeType":"FunctionDefinition","src":"4657:88:52","nodes":[],"documentation":{"id":50893,"nodeType":"StructuredDocumentation","src":"4514:138:52","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4666:16:52","parameters":{"id":50898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50895,"mutability":"mutable","name":"owner","nameLocation":"4691:5:52","nodeType":"VariableDeclaration","scope":50902,"src":"4683:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50894,"name":"address","nodeType":"ElementaryTypeName","src":"4683:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50897,"mutability":"mutable","name":"operator","nameLocation":"4706:8:52","nodeType":"VariableDeclaration","scope":50902,"src":"4698:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50896,"name":"address","nodeType":"ElementaryTypeName","src":"4698:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4682:33:52"},"returnParameters":{"id":50901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50902,"src":"4739:4:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50899,"name":"bool","nodeType":"ElementaryTypeName","src":"4739:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4738:6:52"},"scope":50903,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":50792,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":52789,"src":"271:7:52"},"id":50793,"nodeType":"InheritanceSpecifier","src":"271:7:52"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":50791,"nodeType":"StructuredDocumentation","src":"182:67:52","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"linearizedBaseContracts":[50903,52789],"name":"IERC721","nameLocation":"260:7:52","scope":50904,"usedErrors":[]}],"license":"MIT"},"id":52}
{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":"IERC721"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Required interface of an ERC721 compliant contract.","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"events":{"Approval(address,address,uint256)":{"details":"Emitted when `owner` enables `approved` to manage the `tokenId` token."},"ApprovalForAll(address,address,bool)":{"details":"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"Transfer(address,address,uint256)":{"details":"Emitted when `tokenId` token is transferred from `from` to `to`."}}},"id":52}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"tokenByIndex","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenOfOwnerByIndex","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":\"IERC721Enumerable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"tokenByIndex(uint256)":{"details":"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens."},"tokenOfOwnerByIndex(address,uint256)":{"details":"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"totalSupply()":{"details":"Returns the total amount of tokens stored by the contract."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":"IERC721Enumerable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf","urls":["bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34","dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"See https://eips.ethereum.org/EIPS/eip-721","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"tokenByIndex(uint256)":{"details":"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens."},"tokenOfOwnerByIndex(address,uint256)":{"details":"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"totalSupply()":{"details":"Returns the total amount of tokens stored by the contract."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"title":"ERC-721 Non-Fungible Token Standard, optional enumeration extension"},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","id":51291,"exportedSymbols":{"IERC165":[52789],"IERC721":[50903],"IERC721Enumerable":[51290]},"nodeType":"SourceUnit","src":"129:895:55","nodes":[{"id":51261,"nodeType":"PragmaDirective","src":"129:23:55","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51262,"nodeType":"ImportDirective","src":"154:24:55","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","nameLocation":"-1:-1:-1","scope":51291,"sourceUnit":50904,"symbolAliases":[],"unitAlias":""},{"id":51290,"nodeType":"ContractDefinition","src":"317:706:55","nodes":[{"id":51271,"nodeType":"FunctionDefinition","src":"449:55:55","nodes":[],"documentation":{"id":51266,"nodeType":"StructuredDocumentation","src":"362:82:55","text":" @dev Returns the total amount of tokens stored by the contract."},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"458:11:55","parameters":{"id":51267,"nodeType":"ParameterList","parameters":[],"src":"469:2:55"},"returnParameters":{"id":51270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51271,"src":"495:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51268,"name":"uint256","nodeType":"ElementaryTypeName","src":"495:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"494:9:55"},"scope":51290,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51281,"nodeType":"FunctionDefinition","src":"686:91:55","nodes":[],"documentation":{"id":51272,"nodeType":"StructuredDocumentation","src":"510:171:55","text":" @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"functionSelector":"2f745c59","implemented":false,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"695:19:55","parameters":{"id":51277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51274,"mutability":"mutable","name":"owner","nameLocation":"723:5:55","nodeType":"VariableDeclaration","scope":51281,"src":"715:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51273,"name":"address","nodeType":"ElementaryTypeName","src":"715:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51276,"mutability":"mutable","name":"index","nameLocation":"738:5:55","nodeType":"VariableDeclaration","scope":51281,"src":"730:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51275,"name":"uint256","nodeType":"ElementaryTypeName","src":"730:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"714:30:55"},"returnParameters":{"id":51280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51281,"src":"768:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51278,"name":"uint256","nodeType":"ElementaryTypeName","src":"768:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"767:9:55"},"scope":51290,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51289,"nodeType":"FunctionDefinition","src":"952:69:55","nodes":[],"documentation":{"id":51282,"nodeType":"StructuredDocumentation","src":"783:164:55","text":" @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens."},"functionSelector":"4f6ccce7","implemented":false,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"961:12:55","parameters":{"id":51285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51284,"mutability":"mutable","name":"index","nameLocation":"982:5:55","nodeType":"VariableDeclaration","scope":51289,"src":"974:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51283,"name":"uint256","nodeType":"ElementaryTypeName","src":"974:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"973:15:55"},"returnParameters":{"id":51288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51289,"src":"1012:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51286,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1011:9:55"},"scope":51290,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":51264,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":50903,"src":"348:7:55"},"id":51265,"nodeType":"InheritanceSpecifier","src":"348:7:55"}],"canonicalName":"IERC721Enumerable","contractDependencies":[],"contractKind":"interface","documentation":{"id":51263,"nodeType":"StructuredDocumentation","src":"180:136:55","text":" @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"linearizedBaseContracts":[51290,50903,52789],"name":"IERC721Enumerable","nameLocation":"327:17:55","scope":51291,"usedErrors":[]}],"license":"MIT"},"id":55}
{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"tokenByIndex","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenOfOwnerByIndex","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":\"IERC721Enumerable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"tokenByIndex(uint256)":{"details":"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens."},"tokenOfOwnerByIndex(address,uint256)":{"details":"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"totalSupply()":{"details":"Returns the total amount of tokens stored by the contract."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":"IERC721Enumerable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf","urls":["bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34","dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"See https://eips.ethereum.org/EIPS/eip-721","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"tokenByIndex(uint256)":{"details":"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens."},"tokenOfOwnerByIndex(address,uint256)":{"details":"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"totalSupply()":{"details":"Returns the total amount of tokens stored by the contract."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"title":"ERC-721 Non-Fungible Token Standard, optional enumeration extension"},"id":55}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":"IERC721Metadata"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9","urls":["bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146","dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"See https://eips.ethereum.org/EIPS/eip-721","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"title":"ERC-721 Non-Fungible Token Standard, optional metadata extension"},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","id":51318,"exportedSymbols":{"IERC165":[52789],"IERC721":[50903],"IERC721Metadata":[51317]},"nodeType":"SourceUnit","src":"112:649:56","nodes":[{"id":51292,"nodeType":"PragmaDirective","src":"112:23:56","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51293,"nodeType":"ImportDirective","src":"137:24:56","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","nameLocation":"-1:-1:-1","scope":51318,"sourceUnit":50904,"symbolAliases":[],"unitAlias":""},{"id":51317,"nodeType":"ContractDefinition","src":"297:463:56","nodes":[{"id":51302,"nodeType":"FunctionDefinition","src":"403:54:56","nodes":[],"documentation":{"id":51297,"nodeType":"StructuredDocumentation","src":"340:58:56","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"412:4:56","parameters":{"id":51298,"nodeType":"ParameterList","parameters":[],"src":"416:2:56"},"returnParameters":{"id":51301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51302,"src":"442:13:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51299,"name":"string","nodeType":"ElementaryTypeName","src":"442:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"441:15:56"},"scope":51317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51308,"nodeType":"FunctionDefinition","src":"528:56:56","nodes":[],"documentation":{"id":51303,"nodeType":"StructuredDocumentation","src":"463:60:56","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"537:6:56","parameters":{"id":51304,"nodeType":"ParameterList","parameters":[],"src":"543:2:56"},"returnParameters":{"id":51307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51308,"src":"569:13:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51305,"name":"string","nodeType":"ElementaryTypeName","src":"569:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"568:15:56"},"scope":51317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51316,"nodeType":"FunctionDefinition","src":"685:73:56","nodes":[],"documentation":{"id":51309,"nodeType":"StructuredDocumentation","src":"590:90:56","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"694:8:56","parameters":{"id":51312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51311,"mutability":"mutable","name":"tokenId","nameLocation":"711:7:56","nodeType":"VariableDeclaration","scope":51316,"src":"703:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51310,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"702:17:56"},"returnParameters":{"id":51315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51316,"src":"743:13:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51313,"name":"string","nodeType":"ElementaryTypeName","src":"743:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"742:15:56"},"scope":51317,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":51295,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":50903,"src":"326:7:56"},"id":51296,"nodeType":"InheritanceSpecifier","src":"326:7:56"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":51294,"nodeType":"StructuredDocumentation","src":"163:133:56","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"linearizedBaseContracts":[51317,50903,52789],"name":"IERC721Metadata","nameLocation":"307:15:56","scope":51318,"usedErrors":[]}],"license":"MIT"},"id":56}
{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":"IERC721Metadata"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9","urls":["bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146","dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"See https://eips.ethereum.org/EIPS/eip-721","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"title":"ERC-721 Non-Fungible Token Standard, optional metadata extension"},"id":56}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":\"IERC721MetadataUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":"IERC721MetadataUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"keccak256":"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70","urls":["bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3","dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"See https://eips.ethereum.org/EIPS/eip-721","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"title":"ERC-721 Non-Fungible Token Standard, optional metadata extension"},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol","id":46561,"exportedSymbols":{"IERC165Upgradeable":[47665],"IERC721MetadataUpgradeable":[46560],"IERC721Upgradeable":[46483]},"nodeType":"SourceUnit","src":"112:682:30","nodes":[{"id":46535,"nodeType":"PragmaDirective","src":"112:23:30","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":46536,"nodeType":"ImportDirective","src":"137:35:30","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol","file":"../IERC721Upgradeable.sol","nameLocation":"-1:-1:-1","scope":46561,"sourceUnit":46484,"symbolAliases":[],"unitAlias":""},{"id":46560,"nodeType":"ContractDefinition","src":"308:485:30","nodes":[{"id":46545,"nodeType":"FunctionDefinition","src":"436:54:30","nodes":[],"documentation":{"id":46540,"nodeType":"StructuredDocumentation","src":"373:58:30","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"445:4:30","parameters":{"id":46541,"nodeType":"ParameterList","parameters":[],"src":"449:2:30"},"returnParameters":{"id":46544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46545,"src":"475:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46542,"name":"string","nodeType":"ElementaryTypeName","src":"475:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"474:15:30"},"scope":46560,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":46551,"nodeType":"FunctionDefinition","src":"561:56:30","nodes":[],"documentation":{"id":46546,"nodeType":"StructuredDocumentation","src":"496:60:30","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"570:6:30","parameters":{"id":46547,"nodeType":"ParameterList","parameters":[],"src":"576:2:30"},"returnParameters":{"id":46550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46551,"src":"602:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46548,"name":"string","nodeType":"ElementaryTypeName","src":"602:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"601:15:30"},"scope":46560,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":46559,"nodeType":"FunctionDefinition","src":"718:73:30","nodes":[],"documentation":{"id":46552,"nodeType":"StructuredDocumentation","src":"623:90:30","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"727:8:30","parameters":{"id":46555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46554,"mutability":"mutable","name":"tokenId","nameLocation":"744:7:30","nodeType":"VariableDeclaration","scope":46559,"src":"736:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46553,"name":"uint256","nodeType":"ElementaryTypeName","src":"736:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"735:17:30"},"returnParameters":{"id":46558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46557,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46559,"src":"776:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46556,"name":"string","nodeType":"ElementaryTypeName","src":"776:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"775:15:30"},"scope":46560,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":46538,"name":"IERC721Upgradeable","nodeType":"IdentifierPath","referencedDeclaration":46483,"src":"348:18:30"},"id":46539,"nodeType":"InheritanceSpecifier","src":"348:18:30"}],"canonicalName":"IERC721MetadataUpgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":46537,"nodeType":"StructuredDocumentation","src":"174:133:30","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"linearizedBaseContracts":[46560,46483,47665],"name":"IERC721MetadataUpgradeable","nameLocation":"318:26:30","scope":46561,"usedErrors":[]}],"license":"MIT"},"id":30}
{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":\"IERC721MetadataUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":"IERC721MetadataUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"keccak256":"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70","urls":["bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3","dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"See https://eips.ethereum.org/EIPS/eip-721","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"title":"ERC-721 Non-Fungible Token Standard, optional metadata extension"},"id":30}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":"IERC721Receiver"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"title":"ERC721 token receiver interface"},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol","id":50922,"exportedSymbols":{"IERC721Receiver":[50921]},"nodeType":"SourceUnit","src":"116:871:53","nodes":[{"id":50905,"nodeType":"PragmaDirective","src":"116:23:53","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50921,"nodeType":"ContractDefinition","src":"294:692:53","nodes":[{"id":50920,"nodeType":"FunctionDefinition","src":"824:160:53","nodes":[],"documentation":{"id":50907,"nodeType":"StructuredDocumentation","src":"326:493:53","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"833:16:53","parameters":{"id":50916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50909,"mutability":"mutable","name":"operator","nameLocation":"867:8:53","nodeType":"VariableDeclaration","scope":50920,"src":"859:16:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50908,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50911,"mutability":"mutable","name":"from","nameLocation":"893:4:53","nodeType":"VariableDeclaration","scope":50920,"src":"885:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50910,"name":"address","nodeType":"ElementaryTypeName","src":"885:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50913,"mutability":"mutable","name":"tokenId","nameLocation":"915:7:53","nodeType":"VariableDeclaration","scope":50920,"src":"907:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50912,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50915,"mutability":"mutable","name":"data","nameLocation":"947:4:53","nodeType":"VariableDeclaration","scope":50920,"src":"932:19:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":50914,"name":"bytes","nodeType":"ElementaryTypeName","src":"932:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"849:108:53"},"returnParameters":{"id":50919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50920,"src":"976:6:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":50917,"name":"bytes4","nodeType":"ElementaryTypeName","src":"976:6:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"975:8:53"},"scope":50921,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":50906,"nodeType":"StructuredDocumentation","src":"141:152:53","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"linearizedBaseContracts":[50921],"name":"IERC721Receiver","nameLocation":"304:15:53","scope":50922,"usedErrors":[]}],"license":"MIT"},"id":53}
{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":"IERC721Receiver"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"title":"ERC721 token receiver interface"},"id":53}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":\"IERC721ReceiverUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":"IERC721ReceiverUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":{"keccak256":"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5","urls":["bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a","dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"title":"ERC721 token receiver interface"},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol","id":46368,"exportedSymbols":{"IERC721ReceiverUpgradeable":[46367]},"nodeType":"SourceUnit","src":"116:882:27","nodes":[{"id":46351,"nodeType":"PragmaDirective","src":"116:23:27","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":46367,"nodeType":"ContractDefinition","src":"294:703:27","nodes":[{"id":46366,"nodeType":"FunctionDefinition","src":"835:160:27","nodes":[],"documentation":{"id":46353,"nodeType":"StructuredDocumentation","src":"337:493:27","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"844:16:27","parameters":{"id":46362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46355,"mutability":"mutable","name":"operator","nameLocation":"878:8:27","nodeType":"VariableDeclaration","scope":46366,"src":"870:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46354,"name":"address","nodeType":"ElementaryTypeName","src":"870:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46357,"mutability":"mutable","name":"from","nameLocation":"904:4:27","nodeType":"VariableDeclaration","scope":46366,"src":"896:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46356,"name":"address","nodeType":"ElementaryTypeName","src":"896:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46359,"mutability":"mutable","name":"tokenId","nameLocation":"926:7:27","nodeType":"VariableDeclaration","scope":46366,"src":"918:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46358,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46361,"mutability":"mutable","name":"data","nameLocation":"958:4:27","nodeType":"VariableDeclaration","scope":46366,"src":"943:19:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46360,"name":"bytes","nodeType":"ElementaryTypeName","src":"943:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"860:108:27"},"returnParameters":{"id":46365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46366,"src":"987:6:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":46363,"name":"bytes4","nodeType":"ElementaryTypeName","src":"987:6:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"986:8:27"},"scope":46367,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721ReceiverUpgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":46352,"nodeType":"StructuredDocumentation","src":"141:152:27","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"linearizedBaseContracts":[46367],"name":"IERC721ReceiverUpgradeable","nameLocation":"304:26:27","scope":46368,"usedErrors":[]}],"license":"MIT"},"id":27}
{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":\"IERC721ReceiverUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":"IERC721ReceiverUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":{"keccak256":"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5","urls":["bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a","dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"title":"ERC721 token receiver interface"},"id":27}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":\"IERC721Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":"IERC721Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Required interface of an ERC721 compliant contract.","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"events":{"Approval(address,address,uint256)":{"details":"Emitted when `owner` enables `approved` to manage the `tokenId` token."},"ApprovalForAll(address,address,bool)":{"details":"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"Transfer(address,address,uint256)":{"details":"Emitted when `tokenId` token is transferred from `from` to `to`."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol","id":46484,"exportedSymbols":{"IERC165Upgradeable":[47665],"IERC721Upgradeable":[46483]},"nodeType":"SourceUnit","src":"108:4673:28","nodes":[{"id":46369,"nodeType":"PragmaDirective","src":"108:23:28","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":46370,"nodeType":"ImportDirective","src":"133:58:28","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol","file":"../../utils/introspection/IERC165Upgradeable.sol","nameLocation":"-1:-1:-1","scope":46484,"sourceUnit":47666,"symbolAliases":[],"unitAlias":""},{"id":46483,"nodeType":"ContractDefinition","src":"261:4519:28","nodes":[{"id":46382,"nodeType":"EventDefinition","src":"411:82:28","nodes":[],"anonymous":false,"documentation":{"id":46374,"nodeType":"StructuredDocumentation","src":"318:88:28","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"417:8:28","parameters":{"id":46381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46376,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"442:4:28","nodeType":"VariableDeclaration","scope":46382,"src":"426:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46375,"name":"address","nodeType":"ElementaryTypeName","src":"426:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46378,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"464:2:28","nodeType":"VariableDeclaration","scope":46382,"src":"448:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46377,"name":"address","nodeType":"ElementaryTypeName","src":"448:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46380,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"484:7:28","nodeType":"VariableDeclaration","scope":46382,"src":"468:23:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46379,"name":"uint256","nodeType":"ElementaryTypeName","src":"468:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:67:28"}},{"id":46391,"nodeType":"EventDefinition","src":"598:89:28","nodes":[],"anonymous":false,"documentation":{"id":46383,"nodeType":"StructuredDocumentation","src":"499:94:28","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"604:8:28","parameters":{"id":46390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46385,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"629:5:28","nodeType":"VariableDeclaration","scope":46391,"src":"613:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46384,"name":"address","nodeType":"ElementaryTypeName","src":"613:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46387,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"652:8:28","nodeType":"VariableDeclaration","scope":46391,"src":"636:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46386,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46389,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"678:7:28","nodeType":"VariableDeclaration","scope":46391,"src":"662:23:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46388,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"612:74:28"}},{"id":46400,"nodeType":"EventDefinition","src":"815:85:28","nodes":[],"anonymous":false,"documentation":{"id":46392,"nodeType":"StructuredDocumentation","src":"693:117:28","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","name":"ApprovalForAll","nameLocation":"821:14:28","parameters":{"id":46399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46394,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"852:5:28","nodeType":"VariableDeclaration","scope":46400,"src":"836:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46393,"name":"address","nodeType":"ElementaryTypeName","src":"836:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46396,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"875:8:28","nodeType":"VariableDeclaration","scope":46400,"src":"859:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46395,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46398,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"890:8:28","nodeType":"VariableDeclaration","scope":46400,"src":"885:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46397,"name":"bool","nodeType":"ElementaryTypeName","src":"885:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"835:64:28"}},{"id":46408,"nodeType":"FunctionDefinition","src":"987:74:28","nodes":[],"documentation":{"id":46401,"nodeType":"StructuredDocumentation","src":"906:76:28","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"996:9:28","parameters":{"id":46404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46403,"mutability":"mutable","name":"owner","nameLocation":"1014:5:28","nodeType":"VariableDeclaration","scope":46408,"src":"1006:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46402,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1005:15:28"},"returnParameters":{"id":46407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46406,"mutability":"mutable","name":"balance","nameLocation":"1052:7:28","nodeType":"VariableDeclaration","scope":46408,"src":"1044:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46405,"name":"uint256","nodeType":"ElementaryTypeName","src":"1044:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1043:17:28"},"scope":46483,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":46416,"nodeType":"FunctionDefinition","src":"1203:72:28","nodes":[],"documentation":{"id":46409,"nodeType":"StructuredDocumentation","src":"1067:131:28","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1212:7:28","parameters":{"id":46412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46411,"mutability":"mutable","name":"tokenId","nameLocation":"1228:7:28","nodeType":"VariableDeclaration","scope":46416,"src":"1220:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46410,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1219:17:28"},"returnParameters":{"id":46415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46414,"mutability":"mutable","name":"owner","nameLocation":"1268:5:28","nodeType":"VariableDeclaration","scope":46416,"src":"1260:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46413,"name":"address","nodeType":"ElementaryTypeName","src":"1260:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1259:15:28"},"scope":46483,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":46428,"nodeType":"FunctionDefinition","src":"1842:137:28","nodes":[],"documentation":{"id":46417,"nodeType":"StructuredDocumentation","src":"1281:556:28","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1851:16:28","parameters":{"id":46426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46419,"mutability":"mutable","name":"from","nameLocation":"1885:4:28","nodeType":"VariableDeclaration","scope":46428,"src":"1877:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46418,"name":"address","nodeType":"ElementaryTypeName","src":"1877:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46421,"mutability":"mutable","name":"to","nameLocation":"1907:2:28","nodeType":"VariableDeclaration","scope":46428,"src":"1899:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46420,"name":"address","nodeType":"ElementaryTypeName","src":"1899:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46423,"mutability":"mutable","name":"tokenId","nameLocation":"1927:7:28","nodeType":"VariableDeclaration","scope":46428,"src":"1919:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46422,"name":"uint256","nodeType":"ElementaryTypeName","src":"1919:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46425,"mutability":"mutable","name":"data","nameLocation":"1959:4:28","nodeType":"VariableDeclaration","scope":46428,"src":"1944:19:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46424,"name":"bytes","nodeType":"ElementaryTypeName","src":"1944:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1867:102:28"},"returnParameters":{"id":46427,"nodeType":"ParameterList","parameters":[],"src":"1978:0:28"},"scope":46483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46438,"nodeType":"FunctionDefinition","src":"2677:108:28","nodes":[],"documentation":{"id":46429,"nodeType":"StructuredDocumentation","src":"1985:687:28","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2686:16:28","parameters":{"id":46436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46431,"mutability":"mutable","name":"from","nameLocation":"2720:4:28","nodeType":"VariableDeclaration","scope":46438,"src":"2712:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46430,"name":"address","nodeType":"ElementaryTypeName","src":"2712:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46433,"mutability":"mutable","name":"to","nameLocation":"2742:2:28","nodeType":"VariableDeclaration","scope":46438,"src":"2734:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46432,"name":"address","nodeType":"ElementaryTypeName","src":"2734:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46435,"mutability":"mutable","name":"tokenId","nameLocation":"2762:7:28","nodeType":"VariableDeclaration","scope":46438,"src":"2754:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46434,"name":"uint256","nodeType":"ElementaryTypeName","src":"2754:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2702:73:28"},"returnParameters":{"id":46437,"nodeType":"ParameterList","parameters":[],"src":"2784:0:28"},"scope":46483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46448,"nodeType":"FunctionDefinition","src":"3300:104:28","nodes":[],"documentation":{"id":46439,"nodeType":"StructuredDocumentation","src":"2791:504:28","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3309:12:28","parameters":{"id":46446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46441,"mutability":"mutable","name":"from","nameLocation":"3339:4:28","nodeType":"VariableDeclaration","scope":46448,"src":"3331:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46440,"name":"address","nodeType":"ElementaryTypeName","src":"3331:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46443,"mutability":"mutable","name":"to","nameLocation":"3361:2:28","nodeType":"VariableDeclaration","scope":46448,"src":"3353:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46442,"name":"address","nodeType":"ElementaryTypeName","src":"3353:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46445,"mutability":"mutable","name":"tokenId","nameLocation":"3381:7:28","nodeType":"VariableDeclaration","scope":46448,"src":"3373:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46444,"name":"uint256","nodeType":"ElementaryTypeName","src":"3373:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3321:73:28"},"returnParameters":{"id":46447,"nodeType":"ParameterList","parameters":[],"src":"3403:0:28"},"scope":46483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46456,"nodeType":"FunctionDefinition","src":"3867:55:28","nodes":[],"documentation":{"id":46449,"nodeType":"StructuredDocumentation","src":"3410:452:28","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3876:7:28","parameters":{"id":46454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46451,"mutability":"mutable","name":"to","nameLocation":"3892:2:28","nodeType":"VariableDeclaration","scope":46456,"src":"3884:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46450,"name":"address","nodeType":"ElementaryTypeName","src":"3884:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46453,"mutability":"mutable","name":"tokenId","nameLocation":"3904:7:28","nodeType":"VariableDeclaration","scope":46456,"src":"3896:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46452,"name":"uint256","nodeType":"ElementaryTypeName","src":"3896:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3883:29:28"},"returnParameters":{"id":46455,"nodeType":"ParameterList","parameters":[],"src":"3921:0:28"},"scope":46483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46464,"nodeType":"FunctionDefinition","src":"4242:70:28","nodes":[],"documentation":{"id":46457,"nodeType":"StructuredDocumentation","src":"3928:309:28","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4251:17:28","parameters":{"id":46462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46459,"mutability":"mutable","name":"operator","nameLocation":"4277:8:28","nodeType":"VariableDeclaration","scope":46464,"src":"4269:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46458,"name":"address","nodeType":"ElementaryTypeName","src":"4269:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46461,"mutability":"mutable","name":"_approved","nameLocation":"4292:9:28","nodeType":"VariableDeclaration","scope":46464,"src":"4287:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46460,"name":"bool","nodeType":"ElementaryTypeName","src":"4287:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4268:34:28"},"returnParameters":{"id":46463,"nodeType":"ParameterList","parameters":[],"src":"4311:0:28"},"scope":46483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":46472,"nodeType":"FunctionDefinition","src":"4462:79:28","nodes":[],"documentation":{"id":46465,"nodeType":"StructuredDocumentation","src":"4318:139:28","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4471:11:28","parameters":{"id":46468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46467,"mutability":"mutable","name":"tokenId","nameLocation":"4491:7:28","nodeType":"VariableDeclaration","scope":46472,"src":"4483:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46466,"name":"uint256","nodeType":"ElementaryTypeName","src":"4483:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4482:17:28"},"returnParameters":{"id":46471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46470,"mutability":"mutable","name":"operator","nameLocation":"4531:8:28","nodeType":"VariableDeclaration","scope":46472,"src":"4523:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46469,"name":"address","nodeType":"ElementaryTypeName","src":"4523:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4522:18:28"},"scope":46483,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":46482,"nodeType":"FunctionDefinition","src":"4690:88:28","nodes":[],"documentation":{"id":46473,"nodeType":"StructuredDocumentation","src":"4547:138:28","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4699:16:28","parameters":{"id":46478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46475,"mutability":"mutable","name":"owner","nameLocation":"4724:5:28","nodeType":"VariableDeclaration","scope":46482,"src":"4716:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46474,"name":"address","nodeType":"ElementaryTypeName","src":"4716:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46477,"mutability":"mutable","name":"operator","nameLocation":"4739:8:28","nodeType":"VariableDeclaration","scope":46482,"src":"4731:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46476,"name":"address","nodeType":"ElementaryTypeName","src":"4731:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4715:33:28"},"returnParameters":{"id":46481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46482,"src":"4772:4:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46479,"name":"bool","nodeType":"ElementaryTypeName","src":"4772:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4771:6:28"},"scope":46483,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":46372,"name":"IERC165Upgradeable","nodeType":"IdentifierPath","referencedDeclaration":47665,"src":"293:18:28"},"id":46373,"nodeType":"InheritanceSpecifier","src":"293:18:28"}],"canonicalName":"IERC721Upgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":46371,"nodeType":"StructuredDocumentation","src":"193:67:28","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"linearizedBaseContracts":[46483,47665],"name":"IERC721Upgradeable","nameLocation":"271:18:28","scope":46484,"usedErrors":[]}],"license":"MIT"},"id":28}
{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":\"IERC721Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":"IERC721Upgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Required interface of an ERC721 compliant contract.","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"events":{"Approval(address,address,uint256)":{"details":"Emitted when `owner` enables `approved` to manage the `tokenId` token."},"ApprovalForAll(address,address,bool)":{"details":"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"Transfer(address,address,uint256)":{"details":"Emitted when `tokenId` token is transferred from `from` to `to`."}}},"id":28}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"verify","inputs":[{"name":"_params","type":"tuple","internalType":"struct Faucet.DripParameters","components":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"nonce","type":"bytes32","internalType":"bytes32"}]},{"name":"_id","type":"bytes32","internalType":"bytes32"},{"name":"_proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"verify((address,bytes32),bytes32,bytes)":"f5431ffa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"internalType\":\"struct Faucet.DripParameters\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"verify((address,bytes32),bytes32,bytes)\":{\"params\":{\"_id\":\"Authentication ID to verify.\",\"_params\":\"Drip parameters to verify.\",\"_proof\":\"Authentication proof to verify.\"},\"returns\":{\"_0\":\"valid_ True if the drip parameters are valid.\"}}},\"title\":\"IFaucetAuthModule\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify((address,bytes32),bytes32,bytes)\":{\"notice\":\"Verifies that the given drip parameters are valid.\"}},\"notice\":\"Interface for faucet authentication modules.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":\"IFaucetAuthModule\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/faucet/Faucet.sol\":{\"keccak256\":\"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727\",\"dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS\"]},\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":{\"keccak256\":\"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850\",\"dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Faucet.DripParameters","name":"_params","type":"tuple","components":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"}]},{"internalType":"bytes32","name":"_id","type":"bytes32"},{"internalType":"bytes","name":"_proof","type":"bytes"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"verify((address,bytes32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"_0":"valid_ True if the drip parameters are valid."}}},"version":1},"userdoc":{"kind":"user","methods":{"verify((address,bytes32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":"IFaucetAuthModule"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/faucet/Faucet.sol":{"keccak256":"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb","urls":["bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727","dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS"],"license":"MIT"},"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":{"keccak256":"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d","urls":["bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850","dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"verify((address,bytes32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"notice":"Interface for faucet authentication modules."},"devdoc":{"version":1,"kind":"dev","methods":{"verify((address,bytes32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"_0":"valid_ True if the drip parameters are valid."}}},"title":"IFaucetAuthModule"},"ast":{"absolutePath":"src/periphery/faucet/authmodules/IFaucetAuthModule.sol","id":97147,"exportedSymbols":{"Faucet":[97041],"IFaucetAuthModule":[97146]},"nodeType":"SourceUnit","src":"32:647:201","nodes":[{"id":97129,"nodeType":"PragmaDirective","src":"32:23:201","nodes":[],"literals":["solidity","0.8",".15"]},{"id":97131,"nodeType":"ImportDirective","src":"57:39:201","nodes":[],"absolutePath":"src/periphery/faucet/Faucet.sol","file":"../Faucet.sol","nameLocation":"-1:-1:-1","scope":97147,"sourceUnit":97042,"symbolAliases":[{"foreign":{"id":97130,"name":"Faucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97041,"src":"66:6:201","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97146,"nodeType":"ContractDefinition","src":"185:493:201","nodes":[{"id":97145,"nodeType":"FunctionDefinition","src":"505:171:201","nodes":[],"documentation":{"id":97133,"nodeType":"StructuredDocumentation","src":"219:281:201","text":"@notice Verifies that the given drip parameters are valid.\n @param _params Drip parameters to verify.\n @param _id Authentication ID to verify.\n @param _proof Authentication proof to verify.\n @return valid_ True if the drip parameters are valid."},"functionSelector":"f5431ffa","implemented":false,"kind":"function","modifiers":[],"name":"verify","nameLocation":"514:6:201","parameters":{"id":97141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97136,"mutability":"mutable","name":"_params","nameLocation":"559:7:201","nodeType":"VariableDeclaration","scope":97145,"src":"530:36:201","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DripParameters_$96806_memory_ptr","typeString":"struct Faucet.DripParameters"},"typeName":{"id":97135,"nodeType":"UserDefinedTypeName","pathNode":{"id":97134,"name":"Faucet.DripParameters","nodeType":"IdentifierPath","referencedDeclaration":96806,"src":"530:21:201"},"referencedDeclaration":96806,"src":"530:21:201","typeDescriptions":{"typeIdentifier":"t_struct$_DripParameters_$96806_storage_ptr","typeString":"struct Faucet.DripParameters"}},"visibility":"internal"},{"constant":false,"id":97138,"mutability":"mutable","name":"_id","nameLocation":"584:3:201","nodeType":"VariableDeclaration","scope":97145,"src":"576:11:201","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"576:7:201","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":97140,"mutability":"mutable","name":"_proof","nameLocation":"610:6:201","nodeType":"VariableDeclaration","scope":97145,"src":"597:19:201","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":97139,"name":"bytes","nodeType":"ElementaryTypeName","src":"597:5:201","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"520:102:201"},"returnParameters":{"id":97144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":97145,"src":"670:4:201","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":97142,"name":"bool","nodeType":"ElementaryTypeName","src":"670:4:201","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"669:6:201"},"scope":97146,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IFaucetAuthModule","contractDependencies":[],"contractKind":"interface","documentation":{"id":97132,"nodeType":"StructuredDocumentation","src":"98:87:201","text":"@title IFaucetAuthModule\n @notice Interface for faucet authentication modules."},"fullyImplemented":false,"linearizedBaseContracts":[97146],"name":"IFaucetAuthModule","nameLocation":"195:17:201","scope":97147,"usedErrors":[]}],"license":"MIT"},"id":201}
{"abi":[{"type":"function","name":"verify","inputs":[{"name":"_params","type":"tuple","internalType":"struct Faucet.DripParameters","components":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"nonce","type":"bytes32","internalType":"bytes32"}]},{"name":"_id","type":"bytes32","internalType":"bytes32"},{"name":"_proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"verify((address,bytes32),bytes32,bytes)":"f5431ffa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"internalType\":\"struct Faucet.DripParameters\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"verify((address,bytes32),bytes32,bytes)\":{\"params\":{\"_id\":\"Authentication ID to verify.\",\"_params\":\"Drip parameters to verify.\",\"_proof\":\"Authentication proof to verify.\"},\"returns\":{\"_0\":\"valid_ True if the drip parameters are valid.\"}}},\"title\":\"IFaucetAuthModule\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify((address,bytes32),bytes32,bytes)\":{\"notice\":\"Verifies that the given drip parameters are valid.\"}},\"notice\":\"Interface for faucet authentication modules.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":\"IFaucetAuthModule\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/faucet/Faucet.sol\":{\"keccak256\":\"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727\",\"dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS\"]},\"src/periphery/faucet/authmodules/IFaucetAuthModule.sol\":{\"keccak256\":\"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850\",\"dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Faucet.DripParameters","name":"_params","type":"tuple","components":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"}]},{"internalType":"bytes32","name":"_id","type":"bytes32"},{"internalType":"bytes","name":"_proof","type":"bytes"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"verify((address,bytes32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"_0":"valid_ True if the drip parameters are valid."}}},"version":1},"userdoc":{"kind":"user","methods":{"verify((address,bytes32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":"IFaucetAuthModule"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/faucet/Faucet.sol":{"keccak256":"0x82331800d9a28e4e9ea46939fded26e5d76371c9eddfffacd630313a6f8ff5bb","urls":["bzz-raw://04490faba2d3b9a68c678536e12717339adb5c4d6947c3a2d0e881a98026f727","dweb:/ipfs/Qmbi8x84Lo2Y3CE1Azjif1GifVqFYvuhEzEDc6jXrRMnrS"],"license":"MIT"},"src/periphery/faucet/authmodules/IFaucetAuthModule.sol":{"keccak256":"0x1ae04232fda8aa0ae4fced4af75032bed7020576126cf04bd53ecb329673276d","urls":["bzz-raw://8a74059bfdfb5d091d7e3966e1e4157c20f97b4dc29b62a4a66e82d433fac850","dweb:/ipfs/QmetdNihkTcus9YupsexJU7U3LSDM1EUAuVoNTH1Bebsjf"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"verify((address,bytes32),bytes32,bytes)":{"notice":"Verifies that the given drip parameters are valid."}},"notice":"Interface for faucet authentication modules."},"devdoc":{"version":1,"kind":"dev","methods":{"verify((address,bytes32),bytes32,bytes)":{"params":{"_id":"Authentication ID to verify.","_params":"Drip parameters to verify.","_proof":"Authentication proof to verify."},"returns":{"_0":"valid_ True if the drip parameters are valid."}}},"title":"IFaucetAuthModule"},"id":212}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"addLocalData","inputs":[{"name":"_ident","type":"uint256","internalType":"uint256"},{"name":"_execLeafIdx","type":"uint256","internalType":"uint256"},{"name":"_partOffset","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attack","inputs":[{"name":"_parentIndex","type":"uint256","internalType":"uint256"},{"name":"_claim","type":"bytes32","internalType":"Claim"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"createdAt","inputs":[],"outputs":[{"name":"createdAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"defend","inputs":[{"name":"_parentIndex","type":"uint256","internalType":"uint256"},{"name":"_claim","type":"bytes32","internalType":"Claim"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"extraData","inputs":[],"outputs":[{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"gameData","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"},{"name":"rootClaim_","type":"bytes32","internalType":"Claim"},{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"gameType","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"l1Head","inputs":[],"outputs":[{"name":"l1Head_","type":"bytes32","internalType":"Hash"}],"stateMutability":"view"},{"type":"function","name":"l2BlockNumber","inputs":[],"outputs":[{"name":"l2BlockNumber_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"resolve","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"nonpayable"},{"type":"function","name":"resolveClaim","inputs":[{"name":"_claimIndex","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"resolvedAt","inputs":[],"outputs":[{"name":"resolvedAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"rootClaim","inputs":[],"outputs":[{"name":"rootClaim_","type":"bytes32","internalType":"Claim"}],"stateMutability":"pure"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"view"},{"type":"function","name":"step","inputs":[{"name":"_claimIndex","type":"uint256","internalType":"uint256"},{"name":"_isAttack","type":"bool","internalType":"bool"},{"name":"_stateData","type":"bytes","internalType":"bytes"},{"name":"_proof","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Move","inputs":[{"name":"parentIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"claim","type":"bytes32","indexed":true,"internalType":"Claim"},{"name":"claimant","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Resolved","inputs":[{"name":"status","type":"uint8","indexed":true,"internalType":"enum GameStatus"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addLocalData(uint256,uint256,uint256)":"f8f43ff6","attack(uint256,bytes32)":"c55cd0c7","createdAt()":"cf09e0d0","defend(uint256,bytes32)":"35fef567","extraData()":"609d3334","gameData()":"fa24f743","gameType()":"bbdc02db","initialize()":"8129fc1c","l1Head()":"6361506d","l2BlockNumber()":"8b85902b","resolve()":"2810e1d6","resolveClaim(uint256)":"fdffbb28","resolvedAt()":"19effeb4","rootClaim()":"bcef3b55","status()":"200d2ed2","step(uint256,bool,bytes,bytes)":"d8cc1a3c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"parentIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"name\":\"Move\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum GameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ident\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_execLeafIdx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"addLocalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"createdAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"defend\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Head\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"l1Head_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2BlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"}],\"name\":\"resolveClaim\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"resolvedAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"step\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Move(uint256,bytes32,address)\":{\"params\":{\"claim\":\"The claim being added\",\"claimant\":\"The address of the claimant\",\"parentIndex\":\"The index within the `claimData` array of the parent claim\"}}},\"kind\":\"dev\",\"methods\":{\"addLocalData(uint256,uint256,uint256)\":{\"params\":{\"_execLeafIdx\":\"The index of the leaf claim in an execution subgame that requires the local data for a step.\",\"_ident\":\"The local identifier of the data to post.\",\"_partOffset\":\"The offset of the data to post.\"}},\"attack(uint256,bytes32)\":{\"params\":{\"_claim\":\"The `Claim` at the relative attack position.\",\"_parentIndex\":\"Index of the `Claim` to attack in the `claimData` array.\"}},\"createdAt()\":{\"returns\":{\"createdAt_\":\"The timestamp that the DisputeGame contract was created at.\"}},\"defend(uint256,bytes32)\":{\"params\":{\"_claim\":\"The `Claim` at the relative defense position.\",\"_parentIndex\":\"Index of the claim to defend in the `claimData` array.\"}},\"extraData()\":{\"details\":\"`clones-with-immutable-args` argument #2\",\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\"}},\"gameData()\":{\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\",\"gameType_\":\"The type of proof system being used.\",\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"gameType()\":{\"details\":\"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.\",\"returns\":{\"gameType_\":\"The type of proof system being used.\"}},\"initialize()\":{\"details\":\"This function may only be called once.\"},\"resolve()\":{\"details\":\"May only be called if the `status` is `IN_PROGRESS`.\",\"returns\":{\"status_\":\"The status of the game after resolution.\"}},\"resolveClaim(uint256)\":{\"details\":\"This function must be called bottom-up in the DAG A subgame is a tree of claims that has a maximum depth of 1. A subgame root claims is valid if, and only if, all of its child claims are invalid. At the deepest level in the DAG, a claim is invalid if there's a successful step against it.\",\"params\":{\"_claimIndex\":\"The index of the subgame root claim to resolve.\"}},\"resolvedAt()\":{\"returns\":{\"resolvedAt_\":\"The timestamp that the DisputeGame contract was resolved at.\"}},\"rootClaim()\":{\"details\":\"`clones-with-immutable-args` argument #1\",\"returns\":{\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"status()\":{\"returns\":{\"status_\":\"The current status of the game.\"}},\"step(uint256,bool,bytes,bytes)\":{\"details\":\"This function should point to a fault proof processor in order to execute a step in the fault proof program on-chain. The interface of the fault proof processor contract should adhere to the `IBigStepper` interface.\",\"params\":{\"_claimIndex\":\"The index of the challenged claim within `claimData`.\",\"_isAttack\":\"Whether or not the step is an attack or a defense.\",\"_proof\":\"Proof to access memory nodes in the VM's merkle state tree.\",\"_stateData\":\"The stateData of the step is the preimage of the claim at the given prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if the move is a defense. If the step is an attack on the first instruction, it is the absolute prestate of the fault proof VM.\"}}},\"title\":\"IFaultDisputeGame\",\"version\":1},\"userdoc\":{\"events\":{\"Move(uint256,bytes32,address)\":{\"notice\":\"Emitted when a new claim is added to the DAG by `claimant`\"},\"Resolved(uint8)\":{\"notice\":\"Emitted when the game is resolved.\"}},\"kind\":\"user\",\"methods\":{\"addLocalData(uint256,uint256,uint256)\":{\"notice\":\"Posts the requested local data to the VM's `PreimageOralce`.\"},\"attack(uint256,bytes32)\":{\"notice\":\"Attack a disagreed upon `Claim`.\"},\"createdAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was created at.\"},\"defend(uint256,bytes32)\":{\"notice\":\"Defend an agreed upon `Claim`.\"},\"extraData()\":{\"notice\":\"Getter for the extra data.\"},\"gameData()\":{\"notice\":\"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation.\"},\"gameType()\":{\"notice\":\"Getter for the game type.\"},\"initialize()\":{\"notice\":\"Initializes the contract.\"},\"l1Head()\":{\"notice\":\"A block hash on the L1 that contains the disputed output root.\"},\"l2BlockNumber()\":{\"notice\":\"The l2BlockNumber of the disputed output root in the `L2OutputOracle`.\"},\"resolve()\":{\"notice\":\"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties.\"},\"resolveClaim(uint256)\":{\"notice\":\"Resolves the subgame rooted at the given claim index.\"},\"resolvedAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was resolved at.\"},\"rootClaim()\":{\"notice\":\"Getter for the root claim.\"},\"status()\":{\"notice\":\"Returns the current status of the game.\"},\"step(uint256,bool,bytes,bytes)\":{\"notice\":\"Perform an instruction step via an on-chain fault proof processor.\"}},\"notice\":\"The interface for a fault proof backed dispute game.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IFaultDisputeGame.sol\":\"IFaultDisputeGame\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IFaultDisputeGame.sol\":{\"keccak256\":\"0x30f33b7764d82a5903f6569b8a2d316da10bf007a173dcebd9838af118b3dcca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77b8948bff0028693ca48f1848060cc724ea58df584efd5326c38e3d2e38aaf4\",\"dweb:/ipfs/QmPtcF1ExNYgdVmLoy3raEWQNks5FRdBvwt9y39qew6HXN\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"parentIndex","type":"uint256","indexed":true},{"internalType":"Claim","name":"claim","type":"bytes32","indexed":true},{"internalType":"address","name":"claimant","type":"address","indexed":true}],"type":"event","name":"Move","anonymous":false},{"inputs":[{"internalType":"enum GameStatus","name":"status","type":"uint8","indexed":true}],"type":"event","name":"Resolved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_ident","type":"uint256"},{"internalType":"uint256","name":"_execLeafIdx","type":"uint256"},{"internalType":"uint256","name":"_partOffset","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addLocalData"},{"inputs":[{"internalType":"uint256","name":"_parentIndex","type":"uint256"},{"internalType":"Claim","name":"_claim","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"attack"},{"inputs":[],"stateMutability":"view","type":"function","name":"createdAt","outputs":[{"internalType":"Timestamp","name":"createdAt_","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"_parentIndex","type":"uint256"},{"internalType":"Claim","name":"_claim","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"defend"},{"inputs":[],"stateMutability":"pure","type":"function","name":"extraData","outputs":[{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameData","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"},{"internalType":"Claim","name":"rootClaim_","type":"bytes32"},{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameType","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"l1Head","outputs":[{"internalType":"Hash","name":"l1Head_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l2BlockNumber","outputs":[{"internalType":"uint256","name":"l2BlockNumber_","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resolve","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"_claimIndex","type":"uint256"}],"stateMutability":"payable","type":"function","name":"resolveClaim"},{"inputs":[],"stateMutability":"view","type":"function","name":"resolvedAt","outputs":[{"internalType":"Timestamp","name":"resolvedAt_","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"rootClaim","outputs":[{"internalType":"Claim","name":"rootClaim_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"_claimIndex","type":"uint256"},{"internalType":"bool","name":"_isAttack","type":"bool"},{"internalType":"bytes","name":"_stateData","type":"bytes"},{"internalType":"bytes","name":"_proof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"step"}],"devdoc":{"kind":"dev","methods":{"addLocalData(uint256,uint256,uint256)":{"params":{"_execLeafIdx":"The index of the leaf claim in an execution subgame that requires the local data for a step.","_ident":"The local identifier of the data to post.","_partOffset":"The offset of the data to post."}},"attack(uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative attack position.","_parentIndex":"Index of the `Claim` to attack in the `claimData` array."}},"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"defend(uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative defense position.","_parentIndex":"Index of the claim to defend in the `claimData` array."}},"extraData()":{"details":"`clones-with-immutable-args` argument #2","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolveClaim(uint256)":{"details":"This function must be called bottom-up in the DAG A subgame is a tree of claims that has a maximum depth of 1. A subgame root claims is valid if, and only if, all of its child claims are invalid. At the deepest level in the DAG, a claim is invalid if there's a successful step against it.","params":{"_claimIndex":"The index of the subgame root claim to resolve."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #1","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}},"step(uint256,bool,bytes,bytes)":{"details":"This function should point to a fault proof processor in order to execute a step in the fault proof program on-chain. The interface of the fault proof processor contract should adhere to the `IBigStepper` interface.","params":{"_claimIndex":"The index of the challenged claim within `claimData`.","_isAttack":"Whether or not the step is an attack or a defense.","_proof":"Proof to access memory nodes in the VM's merkle state tree.","_stateData":"The stateData of the step is the preimage of the claim at the given prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if the move is a defense. If the step is an attack on the first instruction, it is the absolute prestate of the fault proof VM."}}},"version":1},"userdoc":{"kind":"user","methods":{"addLocalData(uint256,uint256,uint256)":{"notice":"Posts the requested local data to the VM's `PreimageOralce`."},"attack(uint256,bytes32)":{"notice":"Attack a disagreed upon `Claim`."},"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"defend(uint256,bytes32)":{"notice":"Defend an agreed upon `Claim`."},"extraData()":{"notice":"Getter for the extra data."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"l1Head()":{"notice":"A block hash on the L1 that contains the disputed output root."},"l2BlockNumber()":{"notice":"The l2BlockNumber of the disputed output root in the `L2OutputOracle`."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolveClaim(uint256)":{"notice":"Resolves the subgame rooted at the given claim index."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"status()":{"notice":"Returns the current status of the game."},"step(uint256,bool,bytes,bytes)":{"notice":"Perform an instruction step via an on-chain fault proof processor."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IFaultDisputeGame.sol":"IFaultDisputeGame"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IFaultDisputeGame.sol":{"keccak256":"0x30f33b7764d82a5903f6569b8a2d316da10bf007a173dcebd9838af118b3dcca","urls":["bzz-raw://77b8948bff0028693ca48f1848060cc724ea58df584efd5326c38e3d2e38aaf4","dweb:/ipfs/QmPtcF1ExNYgdVmLoy3raEWQNks5FRdBvwt9y39qew6HXN"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"addLocalData(uint256,uint256,uint256)":{"notice":"Posts the requested local data to the VM's `PreimageOralce`."},"attack(uint256,bytes32)":{"notice":"Attack a disagreed upon `Claim`."},"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"defend(uint256,bytes32)":{"notice":"Defend an agreed upon `Claim`."},"extraData()":{"notice":"Getter for the extra data."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"l1Head()":{"notice":"A block hash on the L1 that contains the disputed output root."},"l2BlockNumber()":{"notice":"The l2BlockNumber of the disputed output root in the `L2OutputOracle`."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolveClaim(uint256)":{"notice":"Resolves the subgame rooted at the given claim index."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"status()":{"notice":"Returns the current status of the game."},"step(uint256,bool,bytes,bytes)":{"notice":"Perform an instruction step via an on-chain fault proof processor."}},"events":{"Move(uint256,bytes32,address)":{"notice":"Emitted when a new claim is added to the DAG by `claimant`"},"Resolved(uint8)":{"notice":"Emitted when the game is resolved."}},"notice":"The interface for a fault proof backed dispute game."},"devdoc":{"version":1,"kind":"dev","methods":{"addLocalData(uint256,uint256,uint256)":{"params":{"_execLeafIdx":"The index of the leaf claim in an execution subgame that requires the local data for a step.","_ident":"The local identifier of the data to post.","_partOffset":"The offset of the data to post."}},"attack(uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative attack position.","_parentIndex":"Index of the `Claim` to attack in the `claimData` array."}},"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"defend(uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative defense position.","_parentIndex":"Index of the claim to defend in the `claimData` array."}},"extraData()":{"details":"`clones-with-immutable-args` argument #2","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolveClaim(uint256)":{"details":"This function must be called bottom-up in the DAG A subgame is a tree of claims that has a maximum depth of 1. A subgame root claims is valid if, and only if, all of its child claims are invalid. At the deepest level in the DAG, a claim is invalid if there's a successful step against it.","params":{"_claimIndex":"The index of the subgame root claim to resolve."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #1","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}},"step(uint256,bool,bytes,bytes)":{"details":"This function should point to a fault proof processor in order to execute a step in the fault proof program on-chain. The interface of the fault proof processor contract should adhere to the `IBigStepper` interface.","params":{"_claimIndex":"The index of the challenged claim within `claimData`.","_isAttack":"Whether or not the step is an attack or a defense.","_proof":"Proof to access memory nodes in the VM's merkle state tree.","_stateData":"The stateData of the step is the preimage of the claim at the given prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if the move is a defense. If the step is an attack on the first instruction, it is the absolute prestate of the fault proof VM."}}},"events":{"Move(uint256,bytes32,address)":{"params":{"claim":"The claim being added","claimant":"The address of the claimant","parentIndex":"The index within the `claimData` array of the parent claim"}}},"title":"IFaultDisputeGame"},"ast":{"absolutePath":"src/dispute/interfaces/IFaultDisputeGame.sol","id":90782,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"IDisputeGame":[90515],"IFaultDisputeGame":[90781],"LibClaim":[91135],"LibClock":[91122],"LibDuration":[91148],"LibGameId":[90831],"LibGameType":[91200],"LibHash":[91161],"LibHashing":[90853],"LibPosition":[91067],"LibTimestamp":[91174],"LibVMStatus":[91187],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:3760:157","nodes":[{"id":90687,"nodeType":"PragmaDirective","src":"32:24:157","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":90689,"nodeType":"ImportDirective","src":"58:50:157","nodes":[],"absolutePath":"src/dispute/interfaces/IDisputeGame.sol","file":"./IDisputeGame.sol","nameLocation":"-1:-1:-1","scope":90782,"sourceUnit":90516,"symbolAliases":[{"foreign":{"id":90688,"name":"IDisputeGame","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90515,"src":"67:12:157","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90690,"nodeType":"ImportDirective","src":"110:40:157","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":90782,"sourceUnit":93135,"symbolAliases":[],"unitAlias":""},{"id":90781,"nodeType":"ContractDefinition","src":"246:3545:157","nodes":[{"id":90711,"nodeType":"StructDefinition","src":"380:198:157","nodes":[],"canonicalName":"IFaultDisputeGame.ClaimData","members":[{"constant":false,"id":90695,"mutability":"mutable","name":"parentIndex","nameLocation":"414:11:157","nodeType":"VariableDeclaration","scope":90711,"src":"407:18:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90694,"name":"uint32","nodeType":"ElementaryTypeName","src":"407:6:157","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":90697,"mutability":"mutable","name":"counteredBy","nameLocation":"443:11:157","nodeType":"VariableDeclaration","scope":90711,"src":"435:19:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90696,"name":"address","nodeType":"ElementaryTypeName","src":"435:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90699,"mutability":"mutable","name":"claimant","nameLocation":"472:8:157","nodeType":"VariableDeclaration","scope":90711,"src":"464:16:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90698,"name":"address","nodeType":"ElementaryTypeName","src":"464:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90701,"mutability":"mutable","name":"bond","nameLocation":"498:4:157","nodeType":"VariableDeclaration","scope":90711,"src":"490:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":90700,"name":"uint128","nodeType":"ElementaryTypeName","src":"490:7:157","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":90704,"mutability":"mutable","name":"claim","nameLocation":"518:5:157","nodeType":"VariableDeclaration","scope":90711,"src":"512:11:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":90703,"nodeType":"UserDefinedTypeName","pathNode":{"id":90702,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"512:5:157"},"referencedDeclaration":93038,"src":"512:5:157","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":90707,"mutability":"mutable","name":"position","nameLocation":"542:8:157","nodeType":"VariableDeclaration","scope":90711,"src":"533:17:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$93052","typeString":"Position"},"typeName":{"id":90706,"nodeType":"UserDefinedTypeName","pathNode":{"id":90705,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":93052,"src":"533:8:157"},"referencedDeclaration":93052,"src":"533:8:157","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$93052","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":90710,"mutability":"mutable","name":"clock","nameLocation":"566:5:157","nodeType":"VariableDeclaration","scope":90711,"src":"560:11:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":90709,"nodeType":"UserDefinedTypeName","pathNode":{"id":90708,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"560:5:157"},"referencedDeclaration":93050,"src":"560:5:157","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"name":"ClaimData","nameLocation":"387:9:157","scope":90781,"visibility":"public"},{"id":90721,"nodeType":"EventDefinition","src":"840:87:157","nodes":[],"anonymous":false,"documentation":{"id":90712,"nodeType":"StructuredDocumentation","src":"584:251:157","text":"@notice Emitted when a new claim is added to the DAG by `claimant`\n @param parentIndex The index within the `claimData` array of the parent claim\n @param claim The claim being added\n @param claimant The address of the claimant"},"eventSelector":"9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be","name":"Move","nameLocation":"846:4:157","parameters":{"id":90720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90714,"indexed":true,"mutability":"mutable","name":"parentIndex","nameLocation":"867:11:157","nodeType":"VariableDeclaration","scope":90721,"src":"851:27:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90713,"name":"uint256","nodeType":"ElementaryTypeName","src":"851:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90717,"indexed":true,"mutability":"mutable","name":"claim","nameLocation":"894:5:157","nodeType":"VariableDeclaration","scope":90721,"src":"880:19:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":90716,"nodeType":"UserDefinedTypeName","pathNode":{"id":90715,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"880:5:157"},"referencedDeclaration":93038,"src":"880:5:157","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":90719,"indexed":true,"mutability":"mutable","name":"claimant","nameLocation":"917:8:157","nodeType":"VariableDeclaration","scope":90721,"src":"901:24:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90718,"name":"address","nodeType":"ElementaryTypeName","src":"901:7:157","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"850:76:157"}},{"id":90730,"nodeType":"FunctionDefinition","src":"1134:69:157","nodes":[],"documentation":{"id":90722,"nodeType":"StructuredDocumentation","src":"933:196:157","text":"@notice Attack a disagreed upon `Claim`.\n @param _parentIndex Index of the `Claim` to attack in the `claimData` array.\n @param _claim The `Claim` at the relative attack position."},"functionSelector":"c55cd0c7","implemented":false,"kind":"function","modifiers":[],"name":"attack","nameLocation":"1143:6:157","parameters":{"id":90728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90724,"mutability":"mutable","name":"_parentIndex","nameLocation":"1158:12:157","nodeType":"VariableDeclaration","scope":90730,"src":"1150:20:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90723,"name":"uint256","nodeType":"ElementaryTypeName","src":"1150:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90727,"mutability":"mutable","name":"_claim","nameLocation":"1178:6:157","nodeType":"VariableDeclaration","scope":90730,"src":"1172:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":90726,"nodeType":"UserDefinedTypeName","pathNode":{"id":90725,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"1172:5:157"},"referencedDeclaration":93038,"src":"1172:5:157","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"}],"src":"1149:36:157"},"returnParameters":{"id":90729,"nodeType":"ParameterList","parameters":[],"src":"1202:0:157"},"scope":90781,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":90739,"nodeType":"FunctionDefinition","src":"1407:69:157","nodes":[],"documentation":{"id":90731,"nodeType":"StructuredDocumentation","src":"1209:193:157","text":"@notice Defend an agreed upon `Claim`.\n @param _parentIndex Index of the claim to defend in the `claimData` array.\n @param _claim The `Claim` at the relative defense position."},"functionSelector":"35fef567","implemented":false,"kind":"function","modifiers":[],"name":"defend","nameLocation":"1416:6:157","parameters":{"id":90737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90733,"mutability":"mutable","name":"_parentIndex","nameLocation":"1431:12:157","nodeType":"VariableDeclaration","scope":90739,"src":"1423:20:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90732,"name":"uint256","nodeType":"ElementaryTypeName","src":"1423:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90736,"mutability":"mutable","name":"_claim","nameLocation":"1451:6:157","nodeType":"VariableDeclaration","scope":90739,"src":"1445:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":90735,"nodeType":"UserDefinedTypeName","pathNode":{"id":90734,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"1445:5:157"},"referencedDeclaration":93038,"src":"1445:5:157","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"}],"src":"1422:36:157"},"returnParameters":{"id":90738,"nodeType":"ParameterList","parameters":[],"src":"1475:0:157"},"scope":90781,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":90751,"nodeType":"FunctionDefinition","src":"2405:110:157","nodes":[],"documentation":{"id":90740,"nodeType":"StructuredDocumentation","src":"1482:918:157","text":"@notice Perform an instruction step via an on-chain fault proof processor.\n @dev This function should point to a fault proof processor in order to execute\n a step in the fault proof program on-chain. The interface of the fault proof\n processor contract should adhere to the `IBigStepper` interface.\n @param _claimIndex The index of the challenged claim within `claimData`.\n @param _isAttack Whether or not the step is an attack or a defense.\n @param _stateData The stateData of the step is the preimage of the claim at the given\n prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if\n the move is a defense. If the step is an attack on the first instruction, it is\n the absolute prestate of the fault proof VM.\n @param _proof Proof to access memory nodes in the VM's merkle state tree."},"functionSelector":"d8cc1a3c","implemented":false,"kind":"function","modifiers":[],"name":"step","nameLocation":"2414:4:157","parameters":{"id":90749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90742,"mutability":"mutable","name":"_claimIndex","nameLocation":"2427:11:157","nodeType":"VariableDeclaration","scope":90751,"src":"2419:19:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90741,"name":"uint256","nodeType":"ElementaryTypeName","src":"2419:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90744,"mutability":"mutable","name":"_isAttack","nameLocation":"2445:9:157","nodeType":"VariableDeclaration","scope":90751,"src":"2440:14:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":90743,"name":"bool","nodeType":"ElementaryTypeName","src":"2440:4:157","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":90746,"mutability":"mutable","name":"_stateData","nameLocation":"2471:10:157","nodeType":"VariableDeclaration","scope":90751,"src":"2456:25:157","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":90745,"name":"bytes","nodeType":"ElementaryTypeName","src":"2456:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":90748,"mutability":"mutable","name":"_proof","nameLocation":"2498:6:157","nodeType":"VariableDeclaration","scope":90751,"src":"2483:21:157","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":90747,"name":"bytes","nodeType":"ElementaryTypeName","src":"2483:5:157","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2418:87:157"},"returnParameters":{"id":90750,"nodeType":"ParameterList","parameters":[],"src":"2514:0:157"},"scope":90781,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":90761,"nodeType":"FunctionDefinition","src":"2842:90:157","nodes":[],"documentation":{"id":90752,"nodeType":"StructuredDocumentation","src":"2521:316:157","text":"@notice Posts the requested local data to the VM's `PreimageOralce`.\n @param _ident The local identifier of the data to post.\n @param _execLeafIdx The index of the leaf claim in an execution subgame that requires the local data for a step.\n @param _partOffset The offset of the data to post."},"functionSelector":"f8f43ff6","implemented":false,"kind":"function","modifiers":[],"name":"addLocalData","nameLocation":"2851:12:157","parameters":{"id":90759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90754,"mutability":"mutable","name":"_ident","nameLocation":"2872:6:157","nodeType":"VariableDeclaration","scope":90761,"src":"2864:14:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90753,"name":"uint256","nodeType":"ElementaryTypeName","src":"2864:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90756,"mutability":"mutable","name":"_execLeafIdx","nameLocation":"2888:12:157","nodeType":"VariableDeclaration","scope":90761,"src":"2880:20:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90755,"name":"uint256","nodeType":"ElementaryTypeName","src":"2880:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90758,"mutability":"mutable","name":"_partOffset","nameLocation":"2910:11:157","nodeType":"VariableDeclaration","scope":90761,"src":"2902:19:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90757,"name":"uint256","nodeType":"ElementaryTypeName","src":"2902:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2863:59:157"},"returnParameters":{"id":90760,"nodeType":"ParameterList","parameters":[],"src":"2931:0:157"},"scope":90781,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":90767,"nodeType":"FunctionDefinition","src":"3424:60:157","nodes":[],"documentation":{"id":90762,"nodeType":"StructuredDocumentation","src":"2938:481:157","text":"@notice Resolves the subgame rooted at the given claim index.\n @dev This function must be called bottom-up in the DAG\n A subgame is a tree of claims that has a maximum depth of 1.\n A subgame root claims is valid if, and only if, all of its child claims are invalid.\n At the deepest level in the DAG, a claim is invalid if there's a successful step against it.\n @param _claimIndex The index of the subgame root claim to resolve."},"functionSelector":"fdffbb28","implemented":false,"kind":"function","modifiers":[],"name":"resolveClaim","nameLocation":"3433:12:157","parameters":{"id":90765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90764,"mutability":"mutable","name":"_claimIndex","nameLocation":"3454:11:157","nodeType":"VariableDeclaration","scope":90767,"src":"3446:19:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90763,"name":"uint256","nodeType":"ElementaryTypeName","src":"3446:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3445:21:157"},"returnParameters":{"id":90766,"nodeType":"ParameterList","parameters":[],"src":"3483:0:157"},"scope":90781,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":90774,"nodeType":"FunctionDefinition","src":"3569:55:157","nodes":[],"documentation":{"id":90768,"nodeType":"StructuredDocumentation","src":"3490:74:157","text":"@notice A block hash on the L1 that contains the disputed output root."},"functionSelector":"6361506d","implemented":false,"kind":"function","modifiers":[],"name":"l1Head","nameLocation":"3578:6:157","parameters":{"id":90769,"nodeType":"ParameterList","parameters":[],"src":"3584:2:157"},"returnParameters":{"id":90773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90772,"mutability":"mutable","name":"l1Head_","nameLocation":"3615:7:157","nodeType":"VariableDeclaration","scope":90774,"src":"3610:12:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"},"typeName":{"id":90771,"nodeType":"UserDefinedTypeName","pathNode":{"id":90770,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":93036,"src":"3610:4:157"},"referencedDeclaration":93036,"src":"3610:4:157","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"}},"visibility":"internal"}],"src":"3609:14:157"},"scope":90781,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":90780,"nodeType":"FunctionDefinition","src":"3717:72:157","nodes":[],"documentation":{"id":90775,"nodeType":"StructuredDocumentation","src":"3630:82:157","text":"@notice The l2BlockNumber of the disputed output root in the `L2OutputOracle`."},"functionSelector":"8b85902b","implemented":false,"kind":"function","modifiers":[],"name":"l2BlockNumber","nameLocation":"3726:13:157","parameters":{"id":90776,"nodeType":"ParameterList","parameters":[],"src":"3739:2:157"},"returnParameters":{"id":90779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90778,"mutability":"mutable","name":"l2BlockNumber_","nameLocation":"3773:14:157","nodeType":"VariableDeclaration","scope":90780,"src":"3765:22:157","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90777,"name":"uint256","nodeType":"ElementaryTypeName","src":"3765:7:157","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3764:24:157"},"scope":90781,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":90692,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":90515,"src":"277:12:157"},"id":90693,"nodeType":"InheritanceSpecifier","src":"277:12:157"}],"canonicalName":"IFaultDisputeGame","contractDependencies":[],"contractKind":"interface","documentation":{"id":90691,"nodeType":"StructuredDocumentation","src":"152:94:157","text":"@title IFaultDisputeGame\n @notice The interface for a fault proof backed dispute game."},"fullyImplemented":false,"linearizedBaseContracts":[90781,90515,90789],"name":"IFaultDisputeGame","nameLocation":"256:17:157","scope":90782,"usedErrors":[]}],"license":"MIT"},"id":157}
{"abi":[{"type":"function","name":"addLocalData","inputs":[{"name":"_ident","type":"uint256","internalType":"uint256"},{"name":"_execLeafIdx","type":"uint256","internalType":"uint256"},{"name":"_partOffset","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attack","inputs":[{"name":"_parentIndex","type":"uint256","internalType":"uint256"},{"name":"_claim","type":"bytes32","internalType":"Claim"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"createdAt","inputs":[],"outputs":[{"name":"createdAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"defend","inputs":[{"name":"_parentIndex","type":"uint256","internalType":"uint256"},{"name":"_claim","type":"bytes32","internalType":"Claim"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"extraData","inputs":[],"outputs":[{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"gameData","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"},{"name":"rootClaim_","type":"bytes32","internalType":"Claim"},{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"gameType","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"l1Head","inputs":[],"outputs":[{"name":"l1Head_","type":"bytes32","internalType":"Hash"}],"stateMutability":"view"},{"type":"function","name":"l2BlockNumber","inputs":[],"outputs":[{"name":"l2BlockNumber_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"resolve","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"nonpayable"},{"type":"function","name":"resolveClaim","inputs":[{"name":"_claimIndex","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"resolvedAt","inputs":[],"outputs":[{"name":"resolvedAt_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"rootClaim","inputs":[],"outputs":[{"name":"rootClaim_","type":"bytes32","internalType":"Claim"}],"stateMutability":"pure"},{"type":"function","name":"startingBlockNumber","inputs":[],"outputs":[{"name":"startingBlockNumber_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"startingOutputRoot","inputs":[],"outputs":[{"name":"startingRoot_","type":"bytes32","internalType":"Hash"},{"name":"l2BlockNumber_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"startingRootHash","inputs":[],"outputs":[{"name":"startingRootHash_","type":"bytes32","internalType":"Hash"}],"stateMutability":"view"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"view"},{"type":"function","name":"step","inputs":[{"name":"_claimIndex","type":"uint256","internalType":"uint256"},{"name":"_isAttack","type":"bool","internalType":"bool"},{"name":"_stateData","type":"bytes","internalType":"bytes"},{"name":"_proof","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Move","inputs":[{"name":"parentIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"claim","type":"bytes32","indexed":true,"internalType":"Claim"},{"name":"claimant","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Resolved","inputs":[{"name":"status","type":"uint8","indexed":true,"internalType":"enum GameStatus"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addLocalData(uint256,uint256,uint256)":"f8f43ff6","attack(uint256,bytes32)":"c55cd0c7","createdAt()":"cf09e0d0","defend(uint256,bytes32)":"35fef567","extraData()":"609d3334","gameData()":"fa24f743","gameType()":"bbdc02db","initialize()":"8129fc1c","l1Head()":"6361506d","l2BlockNumber()":"8b85902b","resolve()":"2810e1d6","resolveClaim(uint256)":"fdffbb28","resolvedAt()":"19effeb4","rootClaim()":"bcef3b55","startingBlockNumber()":"70872aa5","startingOutputRoot()":"57da950e","startingRootHash()":"25fc2ace","status()":"200d2ed2","step(uint256,bool,bytes,bytes)":"d8cc1a3c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"parentIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"name\":\"Move\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum GameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ident\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_execLeafIdx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"addLocalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"createdAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"defend\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Head\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"l1Head_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2BlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"}],\"name\":\"resolveClaim\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"resolvedAt_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"startingBlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingOutputRoot\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"startingRoot_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"l2BlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingRootHash\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"startingRootHash_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"step\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Move(uint256,bytes32,address)\":{\"params\":{\"claim\":\"The claim being added\",\"claimant\":\"The address of the claimant\",\"parentIndex\":\"The index within the `claimData` array of the parent claim\"}}},\"kind\":\"dev\",\"methods\":{\"addLocalData(uint256,uint256,uint256)\":{\"params\":{\"_execLeafIdx\":\"The index of the leaf claim in an execution subgame that requires the local data for a step.\",\"_ident\":\"The local identifier of the data to post.\",\"_partOffset\":\"The offset of the data to post.\"}},\"attack(uint256,bytes32)\":{\"params\":{\"_claim\":\"The `Claim` at the relative attack position.\",\"_parentIndex\":\"Index of the `Claim` to attack in the `claimData` array.\"}},\"createdAt()\":{\"returns\":{\"createdAt_\":\"The timestamp that the DisputeGame contract was created at.\"}},\"defend(uint256,bytes32)\":{\"params\":{\"_claim\":\"The `Claim` at the relative defense position.\",\"_parentIndex\":\"Index of the claim to defend in the `claimData` array.\"}},\"extraData()\":{\"details\":\"`clones-with-immutable-args` argument #2\",\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\"}},\"gameData()\":{\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\",\"gameType_\":\"The type of proof system being used.\",\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"gameType()\":{\"details\":\"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.\",\"returns\":{\"gameType_\":\"The type of proof system being used.\"}},\"initialize()\":{\"details\":\"This function may only be called once.\"},\"resolve()\":{\"details\":\"May only be called if the `status` is `IN_PROGRESS`.\",\"returns\":{\"status_\":\"The status of the game after resolution.\"}},\"resolveClaim(uint256)\":{\"details\":\"This function must be called bottom-up in the DAG A subgame is a tree of claims that has a maximum depth of 1. A subgame root claims is valid if, and only if, all of its child claims are invalid. At the deepest level in the DAG, a claim is invalid if there's a successful step against it.\",\"params\":{\"_claimIndex\":\"The index of the subgame root claim to resolve.\"}},\"resolvedAt()\":{\"returns\":{\"resolvedAt_\":\"The timestamp that the DisputeGame contract was resolved at.\"}},\"rootClaim()\":{\"details\":\"`clones-with-immutable-args` argument #1\",\"returns\":{\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"status()\":{\"returns\":{\"status_\":\"The current status of the game.\"}},\"step(uint256,bool,bytes,bytes)\":{\"details\":\"This function should point to a fault proof processor in order to execute a step in the fault proof program on-chain. The interface of the fault proof processor contract should adhere to the `IBigStepper` interface.\",\"params\":{\"_claimIndex\":\"The index of the challenged claim within `claimData`.\",\"_isAttack\":\"Whether or not the step is an attack or a defense.\",\"_proof\":\"Proof to access memory nodes in the VM's merkle state tree.\",\"_stateData\":\"The stateData of the step is the preimage of the claim at the given prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if the move is a defense. If the step is an attack on the first instruction, it is the absolute prestate of the fault proof VM.\"}}},\"title\":\"IFaultDisputeGame\",\"version\":1},\"userdoc\":{\"events\":{\"Move(uint256,bytes32,address)\":{\"notice\":\"Emitted when a new claim is added to the DAG by `claimant`\"},\"Resolved(uint8)\":{\"notice\":\"Emitted when the game is resolved.\"}},\"kind\":\"user\",\"methods\":{\"addLocalData(uint256,uint256,uint256)\":{\"notice\":\"Posts the requested local data to the VM's `PreimageOralce`.\"},\"attack(uint256,bytes32)\":{\"notice\":\"Attack a disagreed upon `Claim`.\"},\"createdAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was created at.\"},\"defend(uint256,bytes32)\":{\"notice\":\"Defend an agreed upon `Claim`.\"},\"extraData()\":{\"notice\":\"Getter for the extra data.\"},\"gameData()\":{\"notice\":\"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation.\"},\"gameType()\":{\"notice\":\"Getter for the game type.\"},\"initialize()\":{\"notice\":\"Initializes the contract.\"},\"l1Head()\":{\"notice\":\"A block hash on the L1 that contains the disputed output root.\"},\"l2BlockNumber()\":{\"notice\":\"The l2BlockNumber of the disputed output root in the `L2OutputOracle`.\"},\"resolve()\":{\"notice\":\"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties.\"},\"resolveClaim(uint256)\":{\"notice\":\"Resolves the subgame rooted at the given claim index.\"},\"resolvedAt()\":{\"notice\":\"Returns the timestamp that the DisputeGame contract was resolved at.\"},\"rootClaim()\":{\"notice\":\"Getter for the root claim.\"},\"startingBlockNumber()\":{\"notice\":\"Only the starting block number of the game.\"},\"startingOutputRoot()\":{\"notice\":\"Starting output root and block number of the game.\"},\"startingRootHash()\":{\"notice\":\"Only the starting output root of the game.\"},\"status()\":{\"notice\":\"Returns the current status of the game.\"},\"step(uint256,bool,bytes,bytes)\":{\"notice\":\"Perform an instruction step via an on-chain fault proof processor.\"}},\"notice\":\"The interface for a fault proof backed dispute game.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IFaultDisputeGame.sol\":\"IFaultDisputeGame\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IFaultDisputeGame.sol\":{\"keccak256\":\"0x57257f3fcdf56a3ec906fc7dba4b4c914330bd7f0d5cabea77a99692c410dad7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9308a4d42e0556e0f48985b1fee7ab71b1ece11bb347c220cd787012e4a6aff3\",\"dweb:/ipfs/QmUYrMcwTpqMtVqFhfebkAJ3dSJNBXix5fFn2KNZRQBfK7\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"parentIndex","type":"uint256","indexed":true},{"internalType":"Claim","name":"claim","type":"bytes32","indexed":true},{"internalType":"address","name":"claimant","type":"address","indexed":true}],"type":"event","name":"Move","anonymous":false},{"inputs":[{"internalType":"enum GameStatus","name":"status","type":"uint8","indexed":true}],"type":"event","name":"Resolved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_ident","type":"uint256"},{"internalType":"uint256","name":"_execLeafIdx","type":"uint256"},{"internalType":"uint256","name":"_partOffset","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addLocalData"},{"inputs":[{"internalType":"uint256","name":"_parentIndex","type":"uint256"},{"internalType":"Claim","name":"_claim","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"attack"},{"inputs":[],"stateMutability":"view","type":"function","name":"createdAt","outputs":[{"internalType":"Timestamp","name":"createdAt_","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"_parentIndex","type":"uint256"},{"internalType":"Claim","name":"_claim","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"defend"},{"inputs":[],"stateMutability":"pure","type":"function","name":"extraData","outputs":[{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameData","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"},{"internalType":"Claim","name":"rootClaim_","type":"bytes32"},{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameType","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"l1Head","outputs":[{"internalType":"Hash","name":"l1Head_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l2BlockNumber","outputs":[{"internalType":"uint256","name":"l2BlockNumber_","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resolve","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"_claimIndex","type":"uint256"}],"stateMutability":"payable","type":"function","name":"resolveClaim"},{"inputs":[],"stateMutability":"view","type":"function","name":"resolvedAt","outputs":[{"internalType":"Timestamp","name":"resolvedAt_","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"rootClaim","outputs":[{"internalType":"Claim","name":"rootClaim_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"startingBlockNumber","outputs":[{"internalType":"uint256","name":"startingBlockNumber_","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"startingOutputRoot","outputs":[{"internalType":"Hash","name":"startingRoot_","type":"bytes32"},{"internalType":"uint256","name":"l2BlockNumber_","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"startingRootHash","outputs":[{"internalType":"Hash","name":"startingRootHash_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"_claimIndex","type":"uint256"},{"internalType":"bool","name":"_isAttack","type":"bool"},{"internalType":"bytes","name":"_stateData","type":"bytes"},{"internalType":"bytes","name":"_proof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"step"}],"devdoc":{"kind":"dev","methods":{"addLocalData(uint256,uint256,uint256)":{"params":{"_execLeafIdx":"The index of the leaf claim in an execution subgame that requires the local data for a step.","_ident":"The local identifier of the data to post.","_partOffset":"The offset of the data to post."}},"attack(uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative attack position.","_parentIndex":"Index of the `Claim` to attack in the `claimData` array."}},"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"defend(uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative defense position.","_parentIndex":"Index of the claim to defend in the `claimData` array."}},"extraData()":{"details":"`clones-with-immutable-args` argument #2","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolveClaim(uint256)":{"details":"This function must be called bottom-up in the DAG A subgame is a tree of claims that has a maximum depth of 1. A subgame root claims is valid if, and only if, all of its child claims are invalid. At the deepest level in the DAG, a claim is invalid if there's a successful step against it.","params":{"_claimIndex":"The index of the subgame root claim to resolve."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #1","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}},"step(uint256,bool,bytes,bytes)":{"details":"This function should point to a fault proof processor in order to execute a step in the fault proof program on-chain. The interface of the fault proof processor contract should adhere to the `IBigStepper` interface.","params":{"_claimIndex":"The index of the challenged claim within `claimData`.","_isAttack":"Whether or not the step is an attack or a defense.","_proof":"Proof to access memory nodes in the VM's merkle state tree.","_stateData":"The stateData of the step is the preimage of the claim at the given prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if the move is a defense. If the step is an attack on the first instruction, it is the absolute prestate of the fault proof VM."}}},"version":1},"userdoc":{"kind":"user","methods":{"addLocalData(uint256,uint256,uint256)":{"notice":"Posts the requested local data to the VM's `PreimageOralce`."},"attack(uint256,bytes32)":{"notice":"Attack a disagreed upon `Claim`."},"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"defend(uint256,bytes32)":{"notice":"Defend an agreed upon `Claim`."},"extraData()":{"notice":"Getter for the extra data."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"l1Head()":{"notice":"A block hash on the L1 that contains the disputed output root."},"l2BlockNumber()":{"notice":"The l2BlockNumber of the disputed output root in the `L2OutputOracle`."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolveClaim(uint256)":{"notice":"Resolves the subgame rooted at the given claim index."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"startingBlockNumber()":{"notice":"Only the starting block number of the game."},"startingOutputRoot()":{"notice":"Starting output root and block number of the game."},"startingRootHash()":{"notice":"Only the starting output root of the game."},"status()":{"notice":"Returns the current status of the game."},"step(uint256,bool,bytes,bytes)":{"notice":"Perform an instruction step via an on-chain fault proof processor."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IFaultDisputeGame.sol":"IFaultDisputeGame"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IFaultDisputeGame.sol":{"keccak256":"0x57257f3fcdf56a3ec906fc7dba4b4c914330bd7f0d5cabea77a99692c410dad7","urls":["bzz-raw://9308a4d42e0556e0f48985b1fee7ab71b1ece11bb347c220cd787012e4a6aff3","dweb:/ipfs/QmUYrMcwTpqMtVqFhfebkAJ3dSJNBXix5fFn2KNZRQBfK7"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"addLocalData(uint256,uint256,uint256)":{"notice":"Posts the requested local data to the VM's `PreimageOralce`."},"attack(uint256,bytes32)":{"notice":"Attack a disagreed upon `Claim`."},"createdAt()":{"notice":"Returns the timestamp that the DisputeGame contract was created at."},"defend(uint256,bytes32)":{"notice":"Defend an agreed upon `Claim`."},"extraData()":{"notice":"Getter for the extra data."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the game UUID's preimage provided in the cwia payload. The preimage of the UUID is constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes concatenation."},"gameType()":{"notice":"Getter for the game type."},"initialize()":{"notice":"Initializes the contract."},"l1Head()":{"notice":"A block hash on the L1 that contains the disputed output root."},"l2BlockNumber()":{"notice":"The l2BlockNumber of the disputed output root in the `L2OutputOracle`."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of the resolved game. It is at this stage that the bonds should be awarded to the necessary parties."},"resolveClaim(uint256)":{"notice":"Resolves the subgame rooted at the given claim index."},"resolvedAt()":{"notice":"Returns the timestamp that the DisputeGame contract was resolved at."},"rootClaim()":{"notice":"Getter for the root claim."},"startingBlockNumber()":{"notice":"Only the starting block number of the game."},"startingOutputRoot()":{"notice":"Starting output root and block number of the game."},"startingRootHash()":{"notice":"Only the starting output root of the game."},"status()":{"notice":"Returns the current status of the game."},"step(uint256,bool,bytes,bytes)":{"notice":"Perform an instruction step via an on-chain fault proof processor."}},"events":{"Move(uint256,bytes32,address)":{"notice":"Emitted when a new claim is added to the DAG by `claimant`"},"Resolved(uint8)":{"notice":"Emitted when the game is resolved."}},"notice":"The interface for a fault proof backed dispute game."},"devdoc":{"version":1,"kind":"dev","methods":{"addLocalData(uint256,uint256,uint256)":{"params":{"_execLeafIdx":"The index of the leaf claim in an execution subgame that requires the local data for a step.","_ident":"The local identifier of the data to post.","_partOffset":"The offset of the data to post."}},"attack(uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative attack position.","_parentIndex":"Index of the `Claim` to attack in the `claimData` array."}},"createdAt()":{"returns":{"createdAt_":"The timestamp that the DisputeGame contract was created at."}},"defend(uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative defense position.","_parentIndex":"Index of the claim to defend in the `claimData` array."}},"extraData()":{"details":"`clones-with-immutable-args` argument #2","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity) i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"initialize()":{"details":"This function may only be called once."},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolveClaim(uint256)":{"details":"This function must be called bottom-up in the DAG A subgame is a tree of claims that has a maximum depth of 1. A subgame root claims is valid if, and only if, all of its child claims are invalid. At the deepest level in the DAG, a claim is invalid if there's a successful step against it.","params":{"_claimIndex":"The index of the subgame root claim to resolve."}},"resolvedAt()":{"returns":{"resolvedAt_":"The timestamp that the DisputeGame contract was resolved at."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #1","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"status()":{"returns":{"status_":"The current status of the game."}},"step(uint256,bool,bytes,bytes)":{"details":"This function should point to a fault proof processor in order to execute a step in the fault proof program on-chain. The interface of the fault proof processor contract should adhere to the `IBigStepper` interface.","params":{"_claimIndex":"The index of the challenged claim within `claimData`.","_isAttack":"Whether or not the step is an attack or a defense.","_proof":"Proof to access memory nodes in the VM's merkle state tree.","_stateData":"The stateData of the step is the preimage of the claim at the given prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if the move is a defense. If the step is an attack on the first instruction, it is the absolute prestate of the fault proof VM."}}},"events":{"Move(uint256,bytes32,address)":{"params":{"claim":"The claim being added","claimant":"The address of the claimant","parentIndex":"The index within the `claimData` array of the parent claim"}}},"title":"IFaultDisputeGame"},"id":166}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"initialize()":"8129fc1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"initialize()\":{\"details\":\"This function may only be called once.\"}},\"title\":\"IInitializable\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize()\":{\"notice\":\"Initializes the contract.\"}},\"notice\":\"An interface for initializable contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IInitializable.sol\":\"IInitializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"function","name":"initialize"}],"devdoc":{"kind":"dev","methods":{"initialize()":{"details":"This function may only be called once."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize()":{"notice":"Initializes the contract."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IInitializable.sol":"IInitializable"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"initialize()":{"notice":"Initializes the contract."}},"notice":"An interface for initializable contracts."},"devdoc":{"version":1,"kind":"dev","methods":{"initialize()":{"details":"This function may only be called once."}},"title":"IInitializable"},"ast":{"absolutePath":"src/dispute/interfaces/IInitializable.sol","id":90790,"exportedSymbols":{"IInitializable":[90789]},"nodeType":"SourceUnit","src":"32:273:158","nodes":[{"id":90783,"nodeType":"PragmaDirective","src":"32:24:158","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":90789,"nodeType":"ContractDefinition","src":"138:166:158","nodes":[{"id":90788,"nodeType":"FunctionDefinition","src":"263:39:158","nodes":[],"documentation":{"id":90785,"nodeType":"StructuredDocumentation","src":"169:89:158","text":"@notice Initializes the contract.\n @dev This function may only be called once."},"functionSelector":"8129fc1c","implemented":false,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"272:10:158","parameters":{"id":90786,"nodeType":"ParameterList","parameters":[],"src":"282:2:158"},"returnParameters":{"id":90787,"nodeType":"ParameterList","parameters":[],"src":"301:0:158"},"scope":90789,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IInitializable","contractDependencies":[],"contractKind":"interface","documentation":{"id":90784,"nodeType":"StructuredDocumentation","src":"58:80:158","text":"@title IInitializable\n @notice An interface for initializable contracts."},"fullyImplemented":false,"linearizedBaseContracts":[90789],"name":"IInitializable","nameLocation":"148:14:158","scope":90790,"usedErrors":[]}],"license":"MIT"},"id":158}
{"abi":[{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"initialize()":"8129fc1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"initialize()\":{\"details\":\"This function may only be called once.\"}},\"title\":\"IInitializable\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize()\":{\"notice\":\"Initializes the contract.\"}},\"notice\":\"An interface for initializable contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/interfaces/IInitializable.sol\":\"IInitializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"function","name":"initialize"}],"devdoc":{"kind":"dev","methods":{"initialize()":{"details":"This function may only be called once."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize()":{"notice":"Initializes the contract."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/interfaces/IInitializable.sol":"IInitializable"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"initialize()":{"notice":"Initializes the contract."}},"notice":"An interface for initializable contracts."},"devdoc":{"version":1,"kind":"dev","methods":{"initialize()":{"details":"This function may only be called once."}},"title":"IInitializable"},"id":167}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"basefee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"chainid","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"coinbase","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockDifficulty","inputs":[],"outputs":[{"name":"difficulty","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"gaslimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"tryAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"difficulty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gaslimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryAggregate\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":\"IMulticall3\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct IMulticall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryAggregate","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/interfaces/IMulticall3.sol":"IMulticall3"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/interfaces/IMulticall3.sol","id":30781,"exportedSymbols":{"IMulticall3":[30780]},"nodeType":"SourceUnit","src":"32:2153:18","nodes":[{"id":30619,"nodeType":"PragmaDirective","src":"32:31:18","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":30620,"nodeType":"PragmaDirective","src":"65:33:18","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":30780,"nodeType":"ContractDefinition","src":"100:2084:18","nodes":[{"id":30625,"nodeType":"StructDefinition","src":"128:67:18","nodes":[],"canonicalName":"IMulticall3.Call","members":[{"constant":false,"id":30622,"mutability":"mutable","name":"target","nameLocation":"158:6:18","nodeType":"VariableDeclaration","scope":30625,"src":"150:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30621,"name":"address","nodeType":"ElementaryTypeName","src":"150:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30624,"mutability":"mutable","name":"callData","nameLocation":"180:8:18","nodeType":"VariableDeclaration","scope":30625,"src":"174:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":30623,"name":"bytes","nodeType":"ElementaryTypeName","src":"174:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Call","nameLocation":"135:4:18","scope":30780,"visibility":"public"},{"id":30632,"nodeType":"StructDefinition","src":"201:95:18","nodes":[],"canonicalName":"IMulticall3.Call3","members":[{"constant":false,"id":30627,"mutability":"mutable","name":"target","nameLocation":"232:6:18","nodeType":"VariableDeclaration","scope":30632,"src":"224:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30626,"name":"address","nodeType":"ElementaryTypeName","src":"224:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30629,"mutability":"mutable","name":"allowFailure","nameLocation":"253:12:18","nodeType":"VariableDeclaration","scope":30632,"src":"248:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30628,"name":"bool","nodeType":"ElementaryTypeName","src":"248:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30631,"mutability":"mutable","name":"callData","nameLocation":"281:8:18","nodeType":"VariableDeclaration","scope":30632,"src":"275:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":30630,"name":"bytes","nodeType":"ElementaryTypeName","src":"275:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Call3","nameLocation":"208:5:18","scope":30780,"visibility":"public"},{"id":30641,"nodeType":"StructDefinition","src":"302:123:18","nodes":[],"canonicalName":"IMulticall3.Call3Value","members":[{"constant":false,"id":30634,"mutability":"mutable","name":"target","nameLocation":"338:6:18","nodeType":"VariableDeclaration","scope":30641,"src":"330:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30633,"name":"address","nodeType":"ElementaryTypeName","src":"330:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30636,"mutability":"mutable","name":"allowFailure","nameLocation":"359:12:18","nodeType":"VariableDeclaration","scope":30641,"src":"354:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30635,"name":"bool","nodeType":"ElementaryTypeName","src":"354:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30638,"mutability":"mutable","name":"value","nameLocation":"389:5:18","nodeType":"VariableDeclaration","scope":30641,"src":"381:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30637,"name":"uint256","nodeType":"ElementaryTypeName","src":"381:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30640,"mutability":"mutable","name":"callData","nameLocation":"410:8:18","nodeType":"VariableDeclaration","scope":30641,"src":"404:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":30639,"name":"bytes","nodeType":"ElementaryTypeName","src":"404:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Call3Value","nameLocation":"309:10:18","scope":30780,"visibility":"public"},{"id":30646,"nodeType":"StructDefinition","src":"431:69:18","nodes":[],"canonicalName":"IMulticall3.Result","members":[{"constant":false,"id":30643,"mutability":"mutable","name":"success","nameLocation":"460:7:18","nodeType":"VariableDeclaration","scope":30646,"src":"455:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30642,"name":"bool","nodeType":"ElementaryTypeName","src":"455:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30645,"mutability":"mutable","name":"returnData","nameLocation":"483:10:18","nodeType":"VariableDeclaration","scope":30646,"src":"477:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":30644,"name":"bytes","nodeType":"ElementaryTypeName","src":"477:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Result","nameLocation":"438:6:18","scope":30780,"visibility":"public"},{"id":30658,"nodeType":"FunctionDefinition","src":"506:140:18","nodes":[],"functionSelector":"252dba42","implemented":false,"kind":"function","modifiers":[],"name":"aggregate","nameLocation":"515:9:18","parameters":{"id":30651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30650,"mutability":"mutable","name":"calls","nameLocation":"541:5:18","nodeType":"VariableDeclaration","scope":30658,"src":"525:21:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$30625_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":30648,"nodeType":"UserDefinedTypeName","pathNode":{"id":30647,"name":"Call","nodeType":"IdentifierPath","referencedDeclaration":30625,"src":"525:4:18"},"referencedDeclaration":30625,"src":"525:4:18","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$30625_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":30649,"nodeType":"ArrayTypeName","src":"525:6:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$30625_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"524:23:18"},"returnParameters":{"id":30657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30653,"mutability":"mutable","name":"blockNumber","nameLocation":"606:11:18","nodeType":"VariableDeclaration","scope":30658,"src":"598:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30652,"name":"uint256","nodeType":"ElementaryTypeName","src":"598:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30656,"mutability":"mutable","name":"returnData","nameLocation":"634:10:18","nodeType":"VariableDeclaration","scope":30658,"src":"619:25:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":30654,"name":"bytes","nodeType":"ElementaryTypeName","src":"619:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":30655,"nodeType":"ArrayTypeName","src":"619:7:18","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"597:48:18"},"scope":30780,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":30669,"nodeType":"FunctionDefinition","src":"652:98:18","nodes":[],"functionSelector":"82ad56cb","implemented":false,"kind":"function","modifiers":[],"name":"aggregate3","nameLocation":"661:10:18","parameters":{"id":30663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30662,"mutability":"mutable","name":"calls","nameLocation":"689:5:18","nodeType":"VariableDeclaration","scope":30669,"src":"672:22:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3_$30632_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call3[]"},"typeName":{"baseType":{"id":30660,"nodeType":"UserDefinedTypeName","pathNode":{"id":30659,"name":"Call3","nodeType":"IdentifierPath","referencedDeclaration":30632,"src":"672:5:18"},"referencedDeclaration":30632,"src":"672:5:18","typeDescriptions":{"typeIdentifier":"t_struct$_Call3_$30632_storage_ptr","typeString":"struct IMulticall3.Call3"}},"id":30661,"nodeType":"ArrayTypeName","src":"672:7:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3_$30632_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call3[]"}},"visibility":"internal"}],"src":"671:24:18"},"returnParameters":{"id":30668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30667,"mutability":"mutable","name":"returnData","nameLocation":"738:10:18","nodeType":"VariableDeclaration","scope":30669,"src":"722:26:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$30646_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":30665,"nodeType":"UserDefinedTypeName","pathNode":{"id":30664,"name":"Result","nodeType":"IdentifierPath","referencedDeclaration":30646,"src":"722:6:18"},"referencedDeclaration":30646,"src":"722:6:18","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$30646_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":30666,"nodeType":"ArrayTypeName","src":"722:8:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$30646_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"721:28:18"},"scope":30780,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":30680,"nodeType":"FunctionDefinition","src":"756:108:18","nodes":[],"functionSelector":"174dea71","implemented":false,"kind":"function","modifiers":[],"name":"aggregate3Value","nameLocation":"765:15:18","parameters":{"id":30674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30673,"mutability":"mutable","name":"calls","nameLocation":"803:5:18","nodeType":"VariableDeclaration","scope":30680,"src":"781:27:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3Value_$30641_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call3Value[]"},"typeName":{"baseType":{"id":30671,"nodeType":"UserDefinedTypeName","pathNode":{"id":30670,"name":"Call3Value","nodeType":"IdentifierPath","referencedDeclaration":30641,"src":"781:10:18"},"referencedDeclaration":30641,"src":"781:10:18","typeDescriptions":{"typeIdentifier":"t_struct$_Call3Value_$30641_storage_ptr","typeString":"struct IMulticall3.Call3Value"}},"id":30672,"nodeType":"ArrayTypeName","src":"781:12:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3Value_$30641_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call3Value[]"}},"visibility":"internal"}],"src":"780:29:18"},"returnParameters":{"id":30679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30678,"mutability":"mutable","name":"returnData","nameLocation":"852:10:18","nodeType":"VariableDeclaration","scope":30680,"src":"836:26:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$30646_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":30676,"nodeType":"UserDefinedTypeName","pathNode":{"id":30675,"name":"Result","nodeType":"IdentifierPath","referencedDeclaration":30646,"src":"836:6:18"},"referencedDeclaration":30646,"src":"836:6:18","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$30646_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":30677,"nodeType":"ArrayTypeName","src":"836:8:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$30646_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"835:28:18"},"scope":30780,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":30695,"nodeType":"FunctionDefinition","src":"870:168:18","nodes":[],"functionSelector":"c3077fa9","implemented":false,"kind":"function","modifiers":[],"name":"blockAndAggregate","nameLocation":"879:17:18","parameters":{"id":30685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30684,"mutability":"mutable","name":"calls","nameLocation":"913:5:18","nodeType":"VariableDeclaration","scope":30695,"src":"897:21:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$30625_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":30682,"nodeType":"UserDefinedTypeName","pathNode":{"id":30681,"name":"Call","nodeType":"IdentifierPath","referencedDeclaration":30625,"src":"897:4:18"},"referencedDeclaration":30625,"src":"897:4:18","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$30625_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":30683,"nodeType":"ArrayTypeName","src":"897:6:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$30625_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"896:23:18"},"returnParameters":{"id":30694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30687,"mutability":"mutable","name":"blockNumber","nameLocation":"978:11:18","nodeType":"VariableDeclaration","scope":30695,"src":"970:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30686,"name":"uint256","nodeType":"ElementaryTypeName","src":"970:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30689,"mutability":"mutable","name":"blockHash","nameLocation":"999:9:18","nodeType":"VariableDeclaration","scope":30695,"src":"991:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":30688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"991:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":30693,"mutability":"mutable","name":"returnData","nameLocation":"1026:10:18","nodeType":"VariableDeclaration","scope":30695,"src":"1010:26:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$30646_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":30691,"nodeType":"UserDefinedTypeName","pathNode":{"id":30690,"name":"Result","nodeType":"IdentifierPath","referencedDeclaration":30646,"src":"1010:6:18"},"referencedDeclaration":30646,"src":"1010:6:18","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$30646_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":30692,"nodeType":"ArrayTypeName","src":"1010:8:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$30646_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"969:68:18"},"scope":30780,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":30700,"nodeType":"FunctionDefinition","src":"1044:62:18","nodes":[],"functionSelector":"3e64a696","implemented":false,"kind":"function","modifiers":[],"name":"getBasefee","nameLocation":"1053:10:18","parameters":{"id":30696,"nodeType":"ParameterList","parameters":[],"src":"1063:2:18"},"returnParameters":{"id":30699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30698,"mutability":"mutable","name":"basefee","nameLocation":"1097:7:18","nodeType":"VariableDeclaration","scope":30700,"src":"1089:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30697,"name":"uint256","nodeType":"ElementaryTypeName","src":"1089:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1088:17:18"},"scope":30780,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":30707,"nodeType":"FunctionDefinition","src":"1112:85:18","nodes":[],"functionSelector":"ee82ac5e","implemented":false,"kind":"function","modifiers":[],"name":"getBlockHash","nameLocation":"1121:12:18","parameters":{"id":30703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30702,"mutability":"mutable","name":"blockNumber","nameLocation":"1142:11:18","nodeType":"VariableDeclaration","scope":30707,"src":"1134:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30701,"name":"uint256","nodeType":"ElementaryTypeName","src":"1134:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1133:21:18"},"returnParameters":{"id":30706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30705,"mutability":"mutable","name":"blockHash","nameLocation":"1186:9:18","nodeType":"VariableDeclaration","scope":30707,"src":"1178:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":30704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1178:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1177:19:18"},"scope":30780,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":30712,"nodeType":"FunctionDefinition","src":"1203:70:18","nodes":[],"functionSelector":"42cbb15c","implemented":false,"kind":"function","modifiers":[],"name":"getBlockNumber","nameLocation":"1212:14:18","parameters":{"id":30708,"nodeType":"ParameterList","parameters":[],"src":"1226:2:18"},"returnParameters":{"id":30711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30710,"mutability":"mutable","name":"blockNumber","nameLocation":"1260:11:18","nodeType":"VariableDeclaration","scope":30712,"src":"1252:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30709,"name":"uint256","nodeType":"ElementaryTypeName","src":"1252:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1251:21:18"},"scope":30780,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":30717,"nodeType":"FunctionDefinition","src":"1279:62:18","nodes":[],"functionSelector":"3408e470","implemented":false,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"1288:10:18","parameters":{"id":30713,"nodeType":"ParameterList","parameters":[],"src":"1298:2:18"},"returnParameters":{"id":30716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30715,"mutability":"mutable","name":"chainid","nameLocation":"1332:7:18","nodeType":"VariableDeclaration","scope":30717,"src":"1324:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30714,"name":"uint256","nodeType":"ElementaryTypeName","src":"1324:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1323:17:18"},"scope":30780,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":30722,"nodeType":"FunctionDefinition","src":"1347:76:18","nodes":[],"functionSelector":"a8b0574e","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockCoinbase","nameLocation":"1356:23:18","parameters":{"id":30718,"nodeType":"ParameterList","parameters":[],"src":"1379:2:18"},"returnParameters":{"id":30721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30720,"mutability":"mutable","name":"coinbase","nameLocation":"1413:8:18","nodeType":"VariableDeclaration","scope":30722,"src":"1405:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30719,"name":"address","nodeType":"ElementaryTypeName","src":"1405:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1404:18:18"},"scope":30780,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":30727,"nodeType":"FunctionDefinition","src":"1429:80:18","nodes":[],"functionSelector":"72425d9d","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockDifficulty","nameLocation":"1438:25:18","parameters":{"id":30723,"nodeType":"ParameterList","parameters":[],"src":"1463:2:18"},"returnParameters":{"id":30726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30725,"mutability":"mutable","name":"difficulty","nameLocation":"1497:10:18","nodeType":"VariableDeclaration","scope":30727,"src":"1489:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30724,"name":"uint256","nodeType":"ElementaryTypeName","src":"1489:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1488:20:18"},"scope":30780,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":30732,"nodeType":"FunctionDefinition","src":"1515:76:18","nodes":[],"functionSelector":"86d516e8","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockGasLimit","nameLocation":"1524:23:18","parameters":{"id":30728,"nodeType":"ParameterList","parameters":[],"src":"1547:2:18"},"returnParameters":{"id":30731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30730,"mutability":"mutable","name":"gaslimit","nameLocation":"1581:8:18","nodeType":"VariableDeclaration","scope":30732,"src":"1573:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30729,"name":"uint256","nodeType":"ElementaryTypeName","src":"1573:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1572:18:18"},"scope":30780,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":30737,"nodeType":"FunctionDefinition","src":"1597:78:18","nodes":[],"functionSelector":"0f28c97d","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockTimestamp","nameLocation":"1606:24:18","parameters":{"id":30733,"nodeType":"ParameterList","parameters":[],"src":"1630:2:18"},"returnParameters":{"id":30736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30735,"mutability":"mutable","name":"timestamp","nameLocation":"1664:9:18","nodeType":"VariableDeclaration","scope":30737,"src":"1656:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30734,"name":"uint256","nodeType":"ElementaryTypeName","src":"1656:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1655:19:18"},"scope":30780,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":30744,"nodeType":"FunctionDefinition","src":"1681:77:18","nodes":[],"functionSelector":"4d2301cc","implemented":false,"kind":"function","modifiers":[],"name":"getEthBalance","nameLocation":"1690:13:18","parameters":{"id":30740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30739,"mutability":"mutable","name":"addr","nameLocation":"1712:4:18","nodeType":"VariableDeclaration","scope":30744,"src":"1704:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30738,"name":"address","nodeType":"ElementaryTypeName","src":"1704:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1703:14:18"},"returnParameters":{"id":30743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30742,"mutability":"mutable","name":"balance","nameLocation":"1749:7:18","nodeType":"VariableDeclaration","scope":30744,"src":"1741:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30741,"name":"uint256","nodeType":"ElementaryTypeName","src":"1741:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1740:17:18"},"scope":30780,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":30749,"nodeType":"FunctionDefinition","src":"1764:70:18","nodes":[],"functionSelector":"27e86d6e","implemented":false,"kind":"function","modifiers":[],"name":"getLastBlockHash","nameLocation":"1773:16:18","parameters":{"id":30745,"nodeType":"ParameterList","parameters":[],"src":"1789:2:18"},"returnParameters":{"id":30748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30747,"mutability":"mutable","name":"blockHash","nameLocation":"1823:9:18","nodeType":"VariableDeclaration","scope":30749,"src":"1815:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":30746,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1815:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1814:19:18"},"scope":30780,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":30762,"nodeType":"FunctionDefinition","src":"1840:144:18","nodes":[],"functionSelector":"bce38bd7","implemented":false,"kind":"function","modifiers":[],"name":"tryAggregate","nameLocation":"1849:12:18","parameters":{"id":30756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30751,"mutability":"mutable","name":"requireSuccess","nameLocation":"1867:14:18","nodeType":"VariableDeclaration","scope":30762,"src":"1862:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30750,"name":"bool","nodeType":"ElementaryTypeName","src":"1862:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30755,"mutability":"mutable","name":"calls","nameLocation":"1899:5:18","nodeType":"VariableDeclaration","scope":30762,"src":"1883:21:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$30625_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":30753,"nodeType":"UserDefinedTypeName","pathNode":{"id":30752,"name":"Call","nodeType":"IdentifierPath","referencedDeclaration":30625,"src":"1883:4:18"},"referencedDeclaration":30625,"src":"1883:4:18","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$30625_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":30754,"nodeType":"ArrayTypeName","src":"1883:6:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$30625_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"1861:44:18"},"returnParameters":{"id":30761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30760,"mutability":"mutable","name":"returnData","nameLocation":"1972:10:18","nodeType":"VariableDeclaration","scope":30762,"src":"1956:26:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$30646_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":30758,"nodeType":"UserDefinedTypeName","pathNode":{"id":30757,"name":"Result","nodeType":"IdentifierPath","referencedDeclaration":30646,"src":"1956:6:18"},"referencedDeclaration":30646,"src":"1956:6:18","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$30646_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":30759,"nodeType":"ArrayTypeName","src":"1956:8:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$30646_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"1955:28:18"},"scope":30780,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":30779,"nodeType":"FunctionDefinition","src":"1990:192:18","nodes":[],"functionSelector":"399542e9","implemented":false,"kind":"function","modifiers":[],"name":"tryBlockAndAggregate","nameLocation":"1999:20:18","parameters":{"id":30769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30764,"mutability":"mutable","name":"requireSuccess","nameLocation":"2025:14:18","nodeType":"VariableDeclaration","scope":30779,"src":"2020:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30763,"name":"bool","nodeType":"ElementaryTypeName","src":"2020:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30768,"mutability":"mutable","name":"calls","nameLocation":"2057:5:18","nodeType":"VariableDeclaration","scope":30779,"src":"2041:21:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$30625_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":30766,"nodeType":"UserDefinedTypeName","pathNode":{"id":30765,"name":"Call","nodeType":"IdentifierPath","referencedDeclaration":30625,"src":"2041:4:18"},"referencedDeclaration":30625,"src":"2041:4:18","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$30625_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":30767,"nodeType":"ArrayTypeName","src":"2041:6:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$30625_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"2019:44:18"},"returnParameters":{"id":30778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30771,"mutability":"mutable","name":"blockNumber","nameLocation":"2122:11:18","nodeType":"VariableDeclaration","scope":30779,"src":"2114:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30770,"name":"uint256","nodeType":"ElementaryTypeName","src":"2114:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30773,"mutability":"mutable","name":"blockHash","nameLocation":"2143:9:18","nodeType":"VariableDeclaration","scope":30779,"src":"2135:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":30772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2135:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":30777,"mutability":"mutable","name":"returnData","nameLocation":"2170:10:18","nodeType":"VariableDeclaration","scope":30779,"src":"2154:26:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$30646_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":30775,"nodeType":"UserDefinedTypeName","pathNode":{"id":30774,"name":"Result","nodeType":"IdentifierPath","referencedDeclaration":30646,"src":"2154:6:18"},"referencedDeclaration":30646,"src":"2154:6:18","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$30646_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":30776,"nodeType":"ArrayTypeName","src":"2154:8:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$30646_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"2113:68:18"},"scope":30780,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IMulticall3","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[30780],"name":"IMulticall3","nameLocation":"110:11:18","scope":30781,"usedErrors":[]}],"license":"MIT"},"id":18}
{"abi":[{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"basefee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"chainid","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"coinbase","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockDifficulty","inputs":[],"outputs":[{"name":"difficulty","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"gaslimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"tryAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"difficulty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gaslimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryAggregate\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":\"IMulticall3\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct IMulticall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryAggregate","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/interfaces/IMulticall3.sol":"IMulticall3"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":18}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":"IERC165"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","id":52790,"exportedSymbols":{"IERC165":[52789]},"nodeType":"SourceUnit","src":"100:753:66","nodes":[{"id":52779,"nodeType":"PragmaDirective","src":"100:23:66","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52789,"nodeType":"ContractDefinition","src":"405:447:66","nodes":[{"id":52788,"nodeType":"FunctionDefinition","src":"774:76:66","nodes":[],"documentation":{"id":52781,"nodeType":"StructuredDocumentation","src":"429:340:66","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:66","parameters":{"id":52784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52783,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:66","nodeType":"VariableDeclaration","scope":52788,"src":"801:18:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":52782,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:66","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:66"},"returnParameters":{"id":52787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52786,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52788,"src":"844:4:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52785,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:66"},"scope":52789,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":52780,"nodeType":"StructuredDocumentation","src":"125:279:66","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"linearizedBaseContracts":[52789],"name":"IERC165","nameLocation":"415:7:66","scope":52790,"usedErrors":[]}],"license":"MIT"},"id":66}
{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":"IERC165"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"id":66}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"burn","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l1Token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"burn(address,uint256)":"9dc29fac","l1Token()":"c01e1bd6","mint(address,uint256)":"40c10f19","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@title ILegacyMintableERC20\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This interface was available on the legacy L2StandardERC20 contract. It remains available on the OptimismMintableERC20 contract for backwards compatibility.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/IOptimismMintableERC20.sol\":\"ILegacyMintableERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"l1Token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/IOptimismMintableERC20.sol":"ILegacyMintableERC20"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This interface was available on the legacy L2StandardERC20 contract. It remains available on the OptimismMintableERC20 contract for backwards compatibility."},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"ast":{"absolutePath":"src/universal/IOptimismMintableERC20.sol","id":99066,"exportedSymbols":{"IERC165":[52789],"ILegacyMintableERC20":[99065],"IOptimismMintableERC20":[99042]},"nodeType":"SourceUnit","src":"32:1105:210","nodes":[{"id":99012,"nodeType":"PragmaDirective","src":"32:23:210","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":99014,"nodeType":"ImportDirective","src":"57:82:210","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","nameLocation":"-1:-1:-1","scope":99066,"sourceUnit":52790,"symbolAliases":[{"foreign":{"id":99013,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52789,"src":"66:7:210","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":99042,"nodeType":"ContractDefinition","src":"391:278:210","nodes":[{"id":99022,"nodeType":"FunctionDefinition","src":"441:55:210","nodes":[],"functionSelector":"d6c0b2c4","implemented":false,"kind":"function","modifiers":[],"name":"remoteToken","nameLocation":"450:11:210","parameters":{"id":99018,"nodeType":"ParameterList","parameters":[],"src":"461:2:210"},"returnParameters":{"id":99021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99022,"src":"487:7:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99019,"name":"address","nodeType":"ElementaryTypeName","src":"487:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"486:9:210"},"scope":99042,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99027,"nodeType":"FunctionDefinition","src":"502:45:210","nodes":[],"functionSelector":"e78cea92","implemented":false,"kind":"function","modifiers":[],"name":"bridge","nameLocation":"511:6:210","parameters":{"id":99023,"nodeType":"ParameterList","parameters":[],"src":"517:2:210"},"returnParameters":{"id":99026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99025,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99027,"src":"538:7:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99024,"name":"address","nodeType":"ElementaryTypeName","src":"538:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"537:9:210"},"scope":99042,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":99034,"nodeType":"FunctionDefinition","src":"553:53:210","nodes":[],"functionSelector":"40c10f19","implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"562:4:210","parameters":{"id":99032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99029,"mutability":"mutable","name":"_to","nameLocation":"575:3:210","nodeType":"VariableDeclaration","scope":99034,"src":"567:11:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99028,"name":"address","nodeType":"ElementaryTypeName","src":"567:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99031,"mutability":"mutable","name":"_amount","nameLocation":"588:7:210","nodeType":"VariableDeclaration","scope":99034,"src":"580:15:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99030,"name":"uint256","nodeType":"ElementaryTypeName","src":"580:7:210","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"566:30:210"},"returnParameters":{"id":99033,"nodeType":"ParameterList","parameters":[],"src":"605:0:210"},"scope":99042,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":99041,"nodeType":"FunctionDefinition","src":"612:55:210","nodes":[],"functionSelector":"9dc29fac","implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"621:4:210","parameters":{"id":99039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99036,"mutability":"mutable","name":"_from","nameLocation":"634:5:210","nodeType":"VariableDeclaration","scope":99041,"src":"626:13:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99035,"name":"address","nodeType":"ElementaryTypeName","src":"626:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99038,"mutability":"mutable","name":"_amount","nameLocation":"649:7:210","nodeType":"VariableDeclaration","scope":99041,"src":"641:15:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99037,"name":"uint256","nodeType":"ElementaryTypeName","src":"641:7:210","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"625:32:210"},"returnParameters":{"id":99040,"nodeType":"ParameterList","parameters":[],"src":"666:0:210"},"scope":99042,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":99016,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":52789,"src":"427:7:210"},"id":99017,"nodeType":"InheritanceSpecifier","src":"427:7:210"}],"canonicalName":"IOptimismMintableERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":99015,"nodeType":"StructuredDocumentation","src":"141:250:210","text":"@title IOptimismMintableERC20\n @notice This interface is available on the OptimismMintableERC20 contract.\n We declare it as a separate interface so that it can be used in\n custom implementations of OptimismMintableERC20."},"fullyImplemented":false,"linearizedBaseContracts":[99042,52789],"name":"IOptimismMintableERC20","nameLocation":"401:22:210","scope":99066,"usedErrors":[]},{"id":99065,"nodeType":"ContractDefinition","src":"915:221:210","nodes":[{"id":99050,"nodeType":"FunctionDefinition","src":"963:51:210","nodes":[],"functionSelector":"c01e1bd6","implemented":false,"kind":"function","modifiers":[],"name":"l1Token","nameLocation":"972:7:210","parameters":{"id":99046,"nodeType":"ParameterList","parameters":[],"src":"979:2:210"},"returnParameters":{"id":99049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99048,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99050,"src":"1005:7:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99047,"name":"address","nodeType":"ElementaryTypeName","src":"1005:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1004:9:210"},"scope":99065,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99057,"nodeType":"FunctionDefinition","src":"1020:53:210","nodes":[],"functionSelector":"40c10f19","implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"1029:4:210","parameters":{"id":99055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99052,"mutability":"mutable","name":"_to","nameLocation":"1042:3:210","nodeType":"VariableDeclaration","scope":99057,"src":"1034:11:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99051,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99054,"mutability":"mutable","name":"_amount","nameLocation":"1055:7:210","nodeType":"VariableDeclaration","scope":99057,"src":"1047:15:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99053,"name":"uint256","nodeType":"ElementaryTypeName","src":"1047:7:210","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1033:30:210"},"returnParameters":{"id":99056,"nodeType":"ParameterList","parameters":[],"src":"1072:0:210"},"scope":99065,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":99064,"nodeType":"FunctionDefinition","src":"1079:55:210","nodes":[],"functionSelector":"9dc29fac","implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1088:4:210","parameters":{"id":99062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99059,"mutability":"mutable","name":"_from","nameLocation":"1101:5:210","nodeType":"VariableDeclaration","scope":99064,"src":"1093:13:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99058,"name":"address","nodeType":"ElementaryTypeName","src":"1093:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99061,"mutability":"mutable","name":"_amount","nameLocation":"1116:7:210","nodeType":"VariableDeclaration","scope":99064,"src":"1108:15:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99060,"name":"uint256","nodeType":"ElementaryTypeName","src":"1108:7:210","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1092:32:210"},"returnParameters":{"id":99063,"nodeType":"ParameterList","parameters":[],"src":"1133:0:210"},"scope":99065,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":99044,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":52789,"src":"949:7:210"},"id":99045,"nodeType":"InheritanceSpecifier","src":"949:7:210"}],"canonicalName":"ILegacyMintableERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":99043,"nodeType":"StructuredDocumentation","src":"671:244:210","text":"@custom:legacy\n @title ILegacyMintableERC20\n @notice This interface was available on the legacy L2StandardERC20 contract.\n It remains available on the OptimismMintableERC20 contract for\n backwards compatibility."},"fullyImplemented":false,"linearizedBaseContracts":[99065,52789],"name":"ILegacyMintableERC20","nameLocation":"925:20:210","scope":99066,"usedErrors":[]}],"license":"MIT"},"id":210}
{"abi":[{"type":"function","name":"burn","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l1Token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"burn(address,uint256)":"9dc29fac","l1Token()":"c01e1bd6","mint(address,uint256)":"40c10f19","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@title ILegacyMintableERC20\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This interface was available on the legacy L2StandardERC20 contract. It remains available on the OptimismMintableERC20 contract for backwards compatibility.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/IOptimismMintableERC20.sol\":\"ILegacyMintableERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"l1Token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/IOptimismMintableERC20.sol":"ILegacyMintableERC20"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This interface was available on the legacy L2StandardERC20 contract. It remains available on the OptimismMintableERC20 contract for backwards compatibility."},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}}},"id":221}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"bridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"burn","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"remoteToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"bridge()":"e78cea92","burn(address,uint256)":"9dc29fac","mint(address,uint256)":"40c10f19","remoteToken()":"d6c0b2c4","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"remoteToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"title\":\"IOptimismMintableERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This interface is available on the OptimismMintableERC20 contract. We declare it as a separate interface so that it can be used in custom implementations of OptimismMintableERC20.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/IOptimismMintableERC20.sol\":\"IOptimismMintableERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"bridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"remoteToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/IOptimismMintableERC20.sol":"IOptimismMintableERC20"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This interface is available on the OptimismMintableERC20 contract. We declare it as a separate interface so that it can be used in custom implementations of OptimismMintableERC20."},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"title":"IOptimismMintableERC20"},"ast":{"absolutePath":"src/universal/IOptimismMintableERC20.sol","id":99066,"exportedSymbols":{"IERC165":[52789],"ILegacyMintableERC20":[99065],"IOptimismMintableERC20":[99042]},"nodeType":"SourceUnit","src":"32:1105:210","nodes":[{"id":99012,"nodeType":"PragmaDirective","src":"32:23:210","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":99014,"nodeType":"ImportDirective","src":"57:82:210","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","nameLocation":"-1:-1:-1","scope":99066,"sourceUnit":52790,"symbolAliases":[{"foreign":{"id":99013,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52789,"src":"66:7:210","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":99042,"nodeType":"ContractDefinition","src":"391:278:210","nodes":[{"id":99022,"nodeType":"FunctionDefinition","src":"441:55:210","nodes":[],"functionSelector":"d6c0b2c4","implemented":false,"kind":"function","modifiers":[],"name":"remoteToken","nameLocation":"450:11:210","parameters":{"id":99018,"nodeType":"ParameterList","parameters":[],"src":"461:2:210"},"returnParameters":{"id":99021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99022,"src":"487:7:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99019,"name":"address","nodeType":"ElementaryTypeName","src":"487:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"486:9:210"},"scope":99042,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99027,"nodeType":"FunctionDefinition","src":"502:45:210","nodes":[],"functionSelector":"e78cea92","implemented":false,"kind":"function","modifiers":[],"name":"bridge","nameLocation":"511:6:210","parameters":{"id":99023,"nodeType":"ParameterList","parameters":[],"src":"517:2:210"},"returnParameters":{"id":99026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99025,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99027,"src":"538:7:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99024,"name":"address","nodeType":"ElementaryTypeName","src":"538:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"537:9:210"},"scope":99042,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":99034,"nodeType":"FunctionDefinition","src":"553:53:210","nodes":[],"functionSelector":"40c10f19","implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"562:4:210","parameters":{"id":99032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99029,"mutability":"mutable","name":"_to","nameLocation":"575:3:210","nodeType":"VariableDeclaration","scope":99034,"src":"567:11:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99028,"name":"address","nodeType":"ElementaryTypeName","src":"567:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99031,"mutability":"mutable","name":"_amount","nameLocation":"588:7:210","nodeType":"VariableDeclaration","scope":99034,"src":"580:15:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99030,"name":"uint256","nodeType":"ElementaryTypeName","src":"580:7:210","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"566:30:210"},"returnParameters":{"id":99033,"nodeType":"ParameterList","parameters":[],"src":"605:0:210"},"scope":99042,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":99041,"nodeType":"FunctionDefinition","src":"612:55:210","nodes":[],"functionSelector":"9dc29fac","implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"621:4:210","parameters":{"id":99039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99036,"mutability":"mutable","name":"_from","nameLocation":"634:5:210","nodeType":"VariableDeclaration","scope":99041,"src":"626:13:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99035,"name":"address","nodeType":"ElementaryTypeName","src":"626:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99038,"mutability":"mutable","name":"_amount","nameLocation":"649:7:210","nodeType":"VariableDeclaration","scope":99041,"src":"641:15:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99037,"name":"uint256","nodeType":"ElementaryTypeName","src":"641:7:210","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"625:32:210"},"returnParameters":{"id":99040,"nodeType":"ParameterList","parameters":[],"src":"666:0:210"},"scope":99042,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":99016,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":52789,"src":"427:7:210"},"id":99017,"nodeType":"InheritanceSpecifier","src":"427:7:210"}],"canonicalName":"IOptimismMintableERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":99015,"nodeType":"StructuredDocumentation","src":"141:250:210","text":"@title IOptimismMintableERC20\n @notice This interface is available on the OptimismMintableERC20 contract.\n We declare it as a separate interface so that it can be used in\n custom implementations of OptimismMintableERC20."},"fullyImplemented":false,"linearizedBaseContracts":[99042,52789],"name":"IOptimismMintableERC20","nameLocation":"401:22:210","scope":99066,"usedErrors":[]},{"id":99065,"nodeType":"ContractDefinition","src":"915:221:210","nodes":[{"id":99050,"nodeType":"FunctionDefinition","src":"963:51:210","nodes":[],"functionSelector":"c01e1bd6","implemented":false,"kind":"function","modifiers":[],"name":"l1Token","nameLocation":"972:7:210","parameters":{"id":99046,"nodeType":"ParameterList","parameters":[],"src":"979:2:210"},"returnParameters":{"id":99049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99048,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99050,"src":"1005:7:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99047,"name":"address","nodeType":"ElementaryTypeName","src":"1005:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1004:9:210"},"scope":99065,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99057,"nodeType":"FunctionDefinition","src":"1020:53:210","nodes":[],"functionSelector":"40c10f19","implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"1029:4:210","parameters":{"id":99055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99052,"mutability":"mutable","name":"_to","nameLocation":"1042:3:210","nodeType":"VariableDeclaration","scope":99057,"src":"1034:11:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99051,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99054,"mutability":"mutable","name":"_amount","nameLocation":"1055:7:210","nodeType":"VariableDeclaration","scope":99057,"src":"1047:15:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99053,"name":"uint256","nodeType":"ElementaryTypeName","src":"1047:7:210","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1033:30:210"},"returnParameters":{"id":99056,"nodeType":"ParameterList","parameters":[],"src":"1072:0:210"},"scope":99065,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":99064,"nodeType":"FunctionDefinition","src":"1079:55:210","nodes":[],"functionSelector":"9dc29fac","implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1088:4:210","parameters":{"id":99062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99059,"mutability":"mutable","name":"_from","nameLocation":"1101:5:210","nodeType":"VariableDeclaration","scope":99064,"src":"1093:13:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99058,"name":"address","nodeType":"ElementaryTypeName","src":"1093:7:210","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99061,"mutability":"mutable","name":"_amount","nameLocation":"1116:7:210","nodeType":"VariableDeclaration","scope":99064,"src":"1108:15:210","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99060,"name":"uint256","nodeType":"ElementaryTypeName","src":"1108:7:210","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1092:32:210"},"returnParameters":{"id":99063,"nodeType":"ParameterList","parameters":[],"src":"1133:0:210"},"scope":99065,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":99044,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":52789,"src":"949:7:210"},"id":99045,"nodeType":"InheritanceSpecifier","src":"949:7:210"}],"canonicalName":"ILegacyMintableERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":99043,"nodeType":"StructuredDocumentation","src":"671:244:210","text":"@custom:legacy\n @title ILegacyMintableERC20\n @notice This interface was available on the legacy L2StandardERC20 contract.\n It remains available on the OptimismMintableERC20 contract for\n backwards compatibility."},"fullyImplemented":false,"linearizedBaseContracts":[99065,52789],"name":"ILegacyMintableERC20","nameLocation":"925:20:210","scope":99066,"usedErrors":[]}],"license":"MIT"},"id":210}
{"abi":[{"type":"function","name":"bridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"burn","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"remoteToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"bridge()":"e78cea92","burn(address,uint256)":"9dc29fac","mint(address,uint256)":"40c10f19","remoteToken()":"d6c0b2c4","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"remoteToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"title\":\"IOptimismMintableERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This interface is available on the OptimismMintableERC20 contract. We declare it as a separate interface so that it can be used in custom implementations of OptimismMintableERC20.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/IOptimismMintableERC20.sol\":\"IOptimismMintableERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"bridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"remoteToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/IOptimismMintableERC20.sol":"IOptimismMintableERC20"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This interface is available on the OptimismMintableERC20 contract. We declare it as a separate interface so that it can be used in custom implementations of OptimismMintableERC20."},"devdoc":{"version":1,"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"title":"IOptimismMintableERC20"},"id":221}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"REMOTE_CHAIN_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"REMOTE_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"remoteChainId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"remoteToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeMint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"tokenByIndex","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenOfOwnerByIndex","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"BRIDGE()":"ee9a31a2","REMOTE_CHAIN_ID()":"7d1d0c5b","REMOTE_TOKEN()":"033964be","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","bridge()":"e78cea92","burn(address,uint256)":"9dc29fac","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","remoteChainId()":"e9518196","remoteToken()":"d6c0b2c4","safeMint(address,uint256)":"a1448194","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BRIDGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REMOTE_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REMOTE_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"remoteChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"remoteToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Burn(address,uint256)\":{\"params\":{\"account\":\"Address of the account the token was burned from.\",\"tokenId\":\"Token ID of the burned token.\"}},\"Mint(address,uint256)\":{\"params\":{\"account\":\"Address of the account the token was minted to.\",\"tokenId\":\"Token ID of the minted token.\"}}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"burn(address,uint256)\":{\"params\":{\"_from\":\"Address of the user to burn the token from.\",\"_tokenId\":\"Token ID to burn.\"}},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeMint(address,uint256)\":{\"params\":{\"_to\":\"Address of the user to mint the token for.\",\"_tokenId\":\"Token ID to mint.\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"IOptimismMintableERC721\",\"version\":1},\"userdoc\":{\"events\":{\"Burn(address,uint256)\":{\"notice\":\"Emitted when a token is burned.\"},\"Mint(address,uint256)\":{\"notice\":\"Emitted when a token is minted.\"}},\"kind\":\"user\",\"methods\":{\"BRIDGE()\":{\"notice\":\"Address of the ERC721 bridge on this network.\"},\"REMOTE_CHAIN_ID()\":{\"notice\":\"Chain ID of the chain where the remote token is deployed.\"},\"REMOTE_TOKEN()\":{\"notice\":\"Address of the token on the remote domain.\"},\"bridge()\":{\"notice\":\"Address of the ERC721 bridge on this network.\"},\"burn(address,uint256)\":{\"notice\":\"Burns a token ID from a user.\"},\"remoteChainId()\":{\"notice\":\"Chain ID of the chain where the remote token is deployed.\"},\"remoteToken()\":{\"notice\":\"Address of the token on the remote domain.\"},\"safeMint(address,uint256)\":{\"notice\":\"Mints some token ID for a user, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked.\"}},\"notice\":\"Interface for contracts that are compatible with the OptimismMintableERC721 standard. Tokens that follow this standard can be easily transferred across the ERC721 bridge.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/IOptimismMintableERC721.sol\":\"IOptimismMintableERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"src/universal/IOptimismMintableERC721.sol\":{\"keccak256\":\"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b\",\"dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"REMOTE_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"REMOTE_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"remoteChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"remoteToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeMint"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"burn(address,uint256)":{"params":{"_from":"Address of the user to burn the token from.","_tokenId":"Token ID to burn."}},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeMint(address,uint256)":{"params":{"_to":"Address of the user to mint the token for.","_tokenId":"Token ID to mint."}},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"tokenByIndex(uint256)":{"details":"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens."},"tokenOfOwnerByIndex(address,uint256)":{"details":"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"totalSupply()":{"details":"Returns the total amount of tokens stored by the contract."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE()":{"notice":"Address of the ERC721 bridge on this network."},"REMOTE_CHAIN_ID()":{"notice":"Chain ID of the chain where the remote token is deployed."},"REMOTE_TOKEN()":{"notice":"Address of the token on the remote domain."},"bridge()":{"notice":"Address of the ERC721 bridge on this network."},"burn(address,uint256)":{"notice":"Burns a token ID from a user."},"remoteChainId()":{"notice":"Chain ID of the chain where the remote token is deployed."},"remoteToken()":{"notice":"Address of the token on the remote domain."},"safeMint(address,uint256)":{"notice":"Mints some token ID for a user, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/IOptimismMintableERC721.sol":"IOptimismMintableERC721"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf","urls":["bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34","dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"src/universal/IOptimismMintableERC721.sol":{"keccak256":"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52","urls":["bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b","dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"BRIDGE()":{"notice":"Address of the ERC721 bridge on this network."},"REMOTE_CHAIN_ID()":{"notice":"Chain ID of the chain where the remote token is deployed."},"REMOTE_TOKEN()":{"notice":"Address of the token on the remote domain."},"bridge()":{"notice":"Address of the ERC721 bridge on this network."},"burn(address,uint256)":{"notice":"Burns a token ID from a user."},"remoteChainId()":{"notice":"Chain ID of the chain where the remote token is deployed."},"remoteToken()":{"notice":"Address of the token on the remote domain."},"safeMint(address,uint256)":{"notice":"Mints some token ID for a user, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked."}},"events":{"Burn(address,uint256)":{"notice":"Emitted when a token is burned."},"Mint(address,uint256)":{"notice":"Emitted when a token is minted."}},"notice":"Interface for contracts that are compatible with the OptimismMintableERC721 standard. Tokens that follow this standard can be easily transferred across the ERC721 bridge."},"devdoc":{"version":1,"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"burn(address,uint256)":{"params":{"_from":"Address of the user to burn the token from.","_tokenId":"Token ID to burn."}},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeMint(address,uint256)":{"params":{"_to":"Address of the user to mint the token for.","_tokenId":"Token ID to mint."}},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"tokenByIndex(uint256)":{"details":"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens."},"tokenOfOwnerByIndex(address,uint256)":{"details":"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"totalSupply()":{"details":"Returns the total amount of tokens stored by the contract."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"events":{"Burn(address,uint256)":{"params":{"account":"Address of the account the token was burned from.","tokenId":"Token ID of the burned token."}},"Mint(address,uint256)":{"params":{"account":"Address of the account the token was minted to.","tokenId":"Token ID of the minted token."}}},"title":"IOptimismMintableERC721"},"ast":{"absolutePath":"src/universal/IOptimismMintableERC721.sol","id":99140,"exportedSymbols":{"IERC721Enumerable":[51290],"IOptimismMintableERC721":[99139]},"nodeType":"SourceUnit","src":"32:2211:211","nodes":[{"id":99067,"nodeType":"PragmaDirective","src":"32:23:211","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":99069,"nodeType":"ImportDirective","src":"57:106:211","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol","nameLocation":"-1:-1:-1","scope":99140,"sourceUnit":51291,"symbolAliases":[{"foreign":{"id":99068,"name":"IERC721Enumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51290,"src":"66:17:211","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":99139,"nodeType":"ContractDefinition","src":"395:1847:211","nodes":[{"id":99079,"nodeType":"EventDefinition","src":"628:53:211","nodes":[],"anonymous":false,"documentation":{"id":99073,"nodeType":"StructuredDocumentation","src":"456:167:211","text":"@notice Emitted when a token is minted.\n @param account Address of the account the token was minted to.\n @param tokenId Token ID of the minted token."},"eventSelector":"0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","name":"Mint","nameLocation":"634:4:211","parameters":{"id":99078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99075,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"655:7:211","nodeType":"VariableDeclaration","scope":99079,"src":"639:23:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99074,"name":"address","nodeType":"ElementaryTypeName","src":"639:7:211","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99077,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"672:7:211","nodeType":"VariableDeclaration","scope":99079,"src":"664:15:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99076,"name":"uint256","nodeType":"ElementaryTypeName","src":"664:7:211","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"638:42:211"}},{"id":99086,"nodeType":"EventDefinition","src":"861:53:211","nodes":[],"anonymous":false,"documentation":{"id":99080,"nodeType":"StructuredDocumentation","src":"687:169:211","text":"@notice Emitted when a token is burned.\n @param account Address of the account the token was burned from.\n @param tokenId Token ID of the burned token."},"eventSelector":"cc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5","name":"Burn","nameLocation":"867:4:211","parameters":{"id":99085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99082,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"888:7:211","nodeType":"VariableDeclaration","scope":99086,"src":"872:23:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99081,"name":"address","nodeType":"ElementaryTypeName","src":"872:7:211","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99084,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"905:7:211","nodeType":"VariableDeclaration","scope":99086,"src":"897:15:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99083,"name":"uint256","nodeType":"ElementaryTypeName","src":"897:7:211","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"871:42:211"}},{"id":99094,"nodeType":"FunctionDefinition","src":"1211:58:211","nodes":[],"documentation":{"id":99087,"nodeType":"StructuredDocumentation","src":"920:286:211","text":"@notice Mints some token ID for a user, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n @param _to Address of the user to mint the token for.\n @param _tokenId Token ID to mint."},"functionSelector":"a1448194","implemented":false,"kind":"function","modifiers":[],"name":"safeMint","nameLocation":"1220:8:211","parameters":{"id":99092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99089,"mutability":"mutable","name":"_to","nameLocation":"1237:3:211","nodeType":"VariableDeclaration","scope":99094,"src":"1229:11:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99088,"name":"address","nodeType":"ElementaryTypeName","src":"1229:7:211","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99091,"mutability":"mutable","name":"_tokenId","nameLocation":"1250:8:211","nodeType":"VariableDeclaration","scope":99094,"src":"1242:16:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99090,"name":"uint256","nodeType":"ElementaryTypeName","src":"1242:7:211","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1228:31:211"},"returnParameters":{"id":99093,"nodeType":"ParameterList","parameters":[],"src":"1268:0:211"},"scope":99139,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":99102,"nodeType":"FunctionDefinition","src":"1431:56:211","nodes":[],"documentation":{"id":99095,"nodeType":"StructuredDocumentation","src":"1275:151:211","text":"@notice Burns a token ID from a user.\n @param _from Address of the user to burn the token from.\n @param _tokenId Token ID to burn."},"functionSelector":"9dc29fac","implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1440:4:211","parameters":{"id":99100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99097,"mutability":"mutable","name":"_from","nameLocation":"1453:5:211","nodeType":"VariableDeclaration","scope":99102,"src":"1445:13:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99096,"name":"address","nodeType":"ElementaryTypeName","src":"1445:7:211","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":99099,"mutability":"mutable","name":"_tokenId","nameLocation":"1468:8:211","nodeType":"VariableDeclaration","scope":99102,"src":"1460:16:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99098,"name":"uint256","nodeType":"ElementaryTypeName","src":"1460:7:211","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1444:33:211"},"returnParameters":{"id":99101,"nodeType":"ParameterList","parameters":[],"src":"1486:0:211"},"scope":99139,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":99108,"nodeType":"FunctionDefinition","src":"1567:59:211","nodes":[],"documentation":{"id":99103,"nodeType":"StructuredDocumentation","src":"1493:69:211","text":"@notice Chain ID of the chain where the remote token is deployed."},"functionSelector":"7d1d0c5b","implemented":false,"kind":"function","modifiers":[],"name":"REMOTE_CHAIN_ID","nameLocation":"1576:15:211","parameters":{"id":99104,"nodeType":"ParameterList","parameters":[],"src":"1591:2:211"},"returnParameters":{"id":99107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99108,"src":"1617:7:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99105,"name":"uint256","nodeType":"ElementaryTypeName","src":"1617:7:211","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1616:9:211"},"scope":99139,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99114,"nodeType":"FunctionDefinition","src":"1691:56:211","nodes":[],"documentation":{"id":99109,"nodeType":"StructuredDocumentation","src":"1632:54:211","text":"@notice Address of the token on the remote domain."},"functionSelector":"033964be","implemented":false,"kind":"function","modifiers":[],"name":"REMOTE_TOKEN","nameLocation":"1700:12:211","parameters":{"id":99110,"nodeType":"ParameterList","parameters":[],"src":"1712:2:211"},"returnParameters":{"id":99113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99114,"src":"1738:7:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99111,"name":"address","nodeType":"ElementaryTypeName","src":"1738:7:211","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1737:9:211"},"scope":99139,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99120,"nodeType":"FunctionDefinition","src":"1815:50:211","nodes":[],"documentation":{"id":99115,"nodeType":"StructuredDocumentation","src":"1753:57:211","text":"@notice Address of the ERC721 bridge on this network."},"functionSelector":"ee9a31a2","implemented":false,"kind":"function","modifiers":[],"name":"BRIDGE","nameLocation":"1824:6:211","parameters":{"id":99116,"nodeType":"ParameterList","parameters":[],"src":"1830:2:211"},"returnParameters":{"id":99119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99118,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99120,"src":"1856:7:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99117,"name":"address","nodeType":"ElementaryTypeName","src":"1856:7:211","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1855:9:211"},"scope":99139,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99126,"nodeType":"FunctionDefinition","src":"1945:57:211","nodes":[],"documentation":{"id":99121,"nodeType":"StructuredDocumentation","src":"1871:69:211","text":"@notice Chain ID of the chain where the remote token is deployed."},"functionSelector":"e9518196","implemented":false,"kind":"function","modifiers":[],"name":"remoteChainId","nameLocation":"1954:13:211","parameters":{"id":99122,"nodeType":"ParameterList","parameters":[],"src":"1967:2:211"},"returnParameters":{"id":99125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99126,"src":"1993:7:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1993:7:211","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1992:9:211"},"scope":99139,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99132,"nodeType":"FunctionDefinition","src":"2067:55:211","nodes":[],"documentation":{"id":99127,"nodeType":"StructuredDocumentation","src":"2008:54:211","text":"@notice Address of the token on the remote domain."},"functionSelector":"d6c0b2c4","implemented":false,"kind":"function","modifiers":[],"name":"remoteToken","nameLocation":"2076:11:211","parameters":{"id":99128,"nodeType":"ParameterList","parameters":[],"src":"2087:2:211"},"returnParameters":{"id":99131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99130,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99132,"src":"2113:7:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99129,"name":"address","nodeType":"ElementaryTypeName","src":"2113:7:211","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2112:9:211"},"scope":99139,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":99138,"nodeType":"FunctionDefinition","src":"2190:50:211","nodes":[],"documentation":{"id":99133,"nodeType":"StructuredDocumentation","src":"2128:57:211","text":"@notice Address of the ERC721 bridge on this network."},"functionSelector":"e78cea92","implemented":false,"kind":"function","modifiers":[],"name":"bridge","nameLocation":"2199:6:211","parameters":{"id":99134,"nodeType":"ParameterList","parameters":[],"src":"2205:2:211"},"returnParameters":{"id":99137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99138,"src":"2231:7:211","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":99135,"name":"address","nodeType":"ElementaryTypeName","src":"2231:7:211","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2230:9:211"},"scope":99139,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":99071,"name":"IERC721Enumerable","nodeType":"IdentifierPath","referencedDeclaration":51290,"src":"432:17:211"},"id":99072,"nodeType":"InheritanceSpecifier","src":"432:17:211"}],"canonicalName":"IOptimismMintableERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":99070,"nodeType":"StructuredDocumentation","src":"165:230:211","text":"@title IOptimismMintableERC721\n @notice Interface for contracts that are compatible with the OptimismMintableERC721 standard.\n Tokens that follow this standard can be easily transferred across the ERC721 bridge."},"fullyImplemented":false,"linearizedBaseContracts":[99139,51290,50903,52789],"name":"IOptimismMintableERC721","nameLocation":"405:23:211","scope":99140,"usedErrors":[]}],"license":"MIT"},"id":211}
{"abi":[{"type":"function","name":"BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"REMOTE_CHAIN_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"REMOTE_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"remoteChainId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"remoteToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeMint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"tokenByIndex","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenOfOwnerByIndex","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"BRIDGE()":"ee9a31a2","REMOTE_CHAIN_ID()":"7d1d0c5b","REMOTE_TOKEN()":"033964be","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","bridge()":"e78cea92","burn(address,uint256)":"9dc29fac","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","remoteChainId()":"e9518196","remoteToken()":"d6c0b2c4","safeMint(address,uint256)":"a1448194","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BRIDGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REMOTE_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REMOTE_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"remoteChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"remoteToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Burn(address,uint256)\":{\"params\":{\"account\":\"Address of the account the token was burned from.\",\"tokenId\":\"Token ID of the burned token.\"}},\"Mint(address,uint256)\":{\"params\":{\"account\":\"Address of the account the token was minted to.\",\"tokenId\":\"Token ID of the minted token.\"}}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"burn(address,uint256)\":{\"params\":{\"_from\":\"Address of the user to burn the token from.\",\"_tokenId\":\"Token ID to burn.\"}},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeMint(address,uint256)\":{\"params\":{\"_to\":\"Address of the user to mint the token for.\",\"_tokenId\":\"Token ID to mint.\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"IOptimismMintableERC721\",\"version\":1},\"userdoc\":{\"events\":{\"Burn(address,uint256)\":{\"notice\":\"Emitted when a token is burned.\"},\"Mint(address,uint256)\":{\"notice\":\"Emitted when a token is minted.\"}},\"kind\":\"user\",\"methods\":{\"BRIDGE()\":{\"notice\":\"Address of the ERC721 bridge on this network.\"},\"REMOTE_CHAIN_ID()\":{\"notice\":\"Chain ID of the chain where the remote token is deployed.\"},\"REMOTE_TOKEN()\":{\"notice\":\"Address of the token on the remote domain.\"},\"bridge()\":{\"notice\":\"Address of the ERC721 bridge on this network.\"},\"burn(address,uint256)\":{\"notice\":\"Burns a token ID from a user.\"},\"remoteChainId()\":{\"notice\":\"Chain ID of the chain where the remote token is deployed.\"},\"remoteToken()\":{\"notice\":\"Address of the token on the remote domain.\"},\"safeMint(address,uint256)\":{\"notice\":\"Mints some token ID for a user, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked.\"}},\"notice\":\"Interface for contracts that are compatible with the OptimismMintableERC721 standard. Tokens that follow this standard can be easily transferred across the ERC721 bridge.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/IOptimismMintableERC721.sol\":\"IOptimismMintableERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"src/universal/IOptimismMintableERC721.sol\":{\"keccak256\":\"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b\",\"dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"REMOTE_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"REMOTE_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"remoteChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"remoteToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeMint"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"burn(address,uint256)":{"params":{"_from":"Address of the user to burn the token from.","_tokenId":"Token ID to burn."}},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeMint(address,uint256)":{"params":{"_to":"Address of the user to mint the token for.","_tokenId":"Token ID to mint."}},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"tokenByIndex(uint256)":{"details":"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens."},"tokenOfOwnerByIndex(address,uint256)":{"details":"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"totalSupply()":{"details":"Returns the total amount of tokens stored by the contract."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE()":{"notice":"Address of the ERC721 bridge on this network."},"REMOTE_CHAIN_ID()":{"notice":"Chain ID of the chain where the remote token is deployed."},"REMOTE_TOKEN()":{"notice":"Address of the token on the remote domain."},"bridge()":{"notice":"Address of the ERC721 bridge on this network."},"burn(address,uint256)":{"notice":"Burns a token ID from a user."},"remoteChainId()":{"notice":"Chain ID of the chain where the remote token is deployed."},"remoteToken()":{"notice":"Address of the token on the remote domain."},"safeMint(address,uint256)":{"notice":"Mints some token ID for a user, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/IOptimismMintableERC721.sol":"IOptimismMintableERC721"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf","urls":["bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34","dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"src/universal/IOptimismMintableERC721.sol":{"keccak256":"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52","urls":["bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b","dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"BRIDGE()":{"notice":"Address of the ERC721 bridge on this network."},"REMOTE_CHAIN_ID()":{"notice":"Chain ID of the chain where the remote token is deployed."},"REMOTE_TOKEN()":{"notice":"Address of the token on the remote domain."},"bridge()":{"notice":"Address of the ERC721 bridge on this network."},"burn(address,uint256)":{"notice":"Burns a token ID from a user."},"remoteChainId()":{"notice":"Chain ID of the chain where the remote token is deployed."},"remoteToken()":{"notice":"Address of the token on the remote domain."},"safeMint(address,uint256)":{"notice":"Mints some token ID for a user, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked."}},"events":{"Burn(address,uint256)":{"notice":"Emitted when a token is burned."},"Mint(address,uint256)":{"notice":"Emitted when a token is minted."}},"notice":"Interface for contracts that are compatible with the OptimismMintableERC721 standard. Tokens that follow this standard can be easily transferred across the ERC721 bridge."},"devdoc":{"version":1,"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"burn(address,uint256)":{"params":{"_from":"Address of the user to burn the token from.","_tokenId":"Token ID to burn."}},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeMint(address,uint256)":{"params":{"_to":"Address of the user to mint the token for.","_tokenId":"Token ID to mint."}},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"tokenByIndex(uint256)":{"details":"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens."},"tokenOfOwnerByIndex(address,uint256)":{"details":"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"totalSupply()":{"details":"Returns the total amount of tokens stored by the contract."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"events":{"Burn(address,uint256)":{"params":{"account":"Address of the account the token was burned from.","tokenId":"Token ID of the burned token."}},"Mint(address,uint256)":{"params":{"account":"Address of the account the token was minted to.","tokenId":"Token ID of the minted token."}}},"title":"IOptimismMintableERC721"},"id":222}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"loadBlobPreimagePart","inputs":[{"name":"_z","type":"uint256","internalType":"uint256"},{"name":"_y","type":"uint256","internalType":"uint256"},{"name":"_commitment","type":"bytes","internalType":"bytes"},{"name":"_proof","type":"bytes","internalType":"bytes"},{"name":"_partOffset","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"loadKeccak256PreimagePart","inputs":[{"name":"_partOffset","type":"uint256","internalType":"uint256"},{"name":"_preimage","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"loadLocalData","inputs":[{"name":"_ident","type":"uint256","internalType":"uint256"},{"name":"_localContext","type":"bytes32","internalType":"bytes32"},{"name":"_word","type":"bytes32","internalType":"bytes32"},{"name":"_size","type":"uint256","internalType":"uint256"},{"name":"_partOffset","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"key_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"loadSha256PreimagePart","inputs":[{"name":"_partOffset","type":"uint256","internalType":"uint256"},{"name":"_preimage","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"readPreimage","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_offset","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"dat_","type":"bytes32","internalType":"bytes32"},{"name":"datLen_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)":"9d7e8769","loadKeccak256PreimagePart(uint256,bytes)":"e1592611","loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":"52f0f3ad","loadSha256PreimagePart(uint256,bytes)":"8dc4be11","readPreimage(bytes32,uint256)":"e03110e1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_z\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_y\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_commitment\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"loadBlobPreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_preimage\",\"type\":\"bytes\"}],\"name\":\"loadKeccak256PreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ident\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_localContext\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_word\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"loadLocalData\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"key_\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_preimage\",\"type\":\"bytes\"}],\"name\":\"loadSha256PreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_offset\",\"type\":\"uint256\"}],\"name\":\"readPreimage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"dat_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"datLen_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)\":{\"params\":{\"_commitment\":\"The commitment to the polynomial. 48 bytes, part of the preimage key.\",\"_partOffset\":\"The offset of the preimage to store.\",\"_proof\":\"The KZG proof, part of the preimage key.\",\"_y\":\"Big endian point value. The preimage for the key.\",\"_z\":\"Big endian point value. Part of the preimage key.\"}},\"loadKeccak256PreimagePart(uint256,bytes)\":{\"params\":{\"_partOffset\":\"The offset of the preimage to read.\",\"_preimage\":\"The preimage data.\"}},\"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)\":{\"details\":\"The local data parts are loaded into the preimage oracle under the context of the caller - no other account can write to the caller's context specific data. There are 5 local data identifiers: \\u250c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u252c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2510 \\u2502 Identifier \\u2502 Data \\u2502 \\u251c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u253c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2524 \\u2502 1 \\u2502 L1 Head Hash (bytes32) \\u2502 \\u2502 2 \\u2502 Output Root (bytes32) \\u2502 \\u2502 3 \\u2502 Root Claim (bytes32) \\u2502 \\u2502 4 \\u2502 L2 Block Number (u64) \\u2502 \\u2502 5 \\u2502 Chain ID (u64) \\u2502 \\u2514\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2534\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2518\",\"params\":{\"_ident\":\"The identifier of the local data.\",\"_localContext\":\"The local key context for the preimage oracle. Optionally, can be set as a constant if the caller only requires one set of local keys.\",\"_partOffset\":\"The offset of the local data part to write to the oracle.\",\"_size\":\"The number of bytes in `_word` to load.\",\"_word\":\"The local data word.\"}},\"loadSha256PreimagePart(uint256,bytes)\":{\"params\":{\"_partOffset\":\"The offset of the preimage to read.\",\"_preimage\":\"The preimage data.\"}},\"readPreimage(bytes32,uint256)\":{\"params\":{\"_key\":\"The key of the preimage to read.\",\"_offset\":\"The offset of the preimage to read.\"},\"returns\":{\"datLen_\":\"The length of the preimage data.\",\"dat_\":\"The preimage data.\"}}},\"title\":\"IPreimageOracle\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"loadKeccak256PreimagePart(uint256,bytes)\":{\"notice\":\"Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data).\"},\"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)\":{\"notice\":\"Loads of local data part into the preimage oracle.\"},\"loadSha256PreimagePart(uint256,bytes)\":{\"notice\":\"Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data).\"},\"readPreimage(bytes32,uint256)\":{\"notice\":\"Reads a preimage from the oracle.\"}},\"notice\":\"Interface for a preimage oracle.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/cannon/interfaces/IPreimageOracle.sol\":\"IPreimageOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x66c1a22ff6d8a9ab9f5d12791c15c5273cb7f4421b1b5c6d1a76a166d3af418f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f893baa1ac7eba3e24b80844dd16181dc9824277f896ab1c2eb7af22a096cb99\",\"dweb:/ipfs/QmVtK36UpWdozR7UHEjANi6BVPCDTm5BF2HRhjRZg9MS3e\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_z","type":"uint256"},{"internalType":"uint256","name":"_y","type":"uint256"},{"internalType":"bytes","name":"_commitment","type":"bytes"},{"internalType":"bytes","name":"_proof","type":"bytes"},{"internalType":"uint256","name":"_partOffset","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"loadBlobPreimagePart"},{"inputs":[{"internalType":"uint256","name":"_partOffset","type":"uint256"},{"internalType":"bytes","name":"_preimage","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"loadKeccak256PreimagePart"},{"inputs":[{"internalType":"uint256","name":"_ident","type":"uint256"},{"internalType":"bytes32","name":"_localContext","type":"bytes32"},{"internalType":"bytes32","name":"_word","type":"bytes32"},{"internalType":"uint256","name":"_size","type":"uint256"},{"internalType":"uint256","name":"_partOffset","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"loadLocalData","outputs":[{"internalType":"bytes32","name":"key_","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_partOffset","type":"uint256"},{"internalType":"bytes","name":"_preimage","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"loadSha256PreimagePart"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_offset","type":"uint256"}],"stateMutability":"view","type":"function","name":"readPreimage","outputs":[{"internalType":"bytes32","name":"dat_","type":"bytes32"},{"internalType":"uint256","name":"datLen_","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)":{"params":{"_commitment":"The commitment to the polynomial. 48 bytes, part of the preimage key.","_partOffset":"The offset of the preimage to store.","_proof":"The KZG proof, part of the preimage key.","_y":"Big endian point value. The preimage for the key.","_z":"Big endian point value. Part of the preimage key."}},"loadKeccak256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"details":"The local data parts are loaded into the preimage oracle under the context of the caller - no other account can write to the caller's context specific data. There are 5 local data identifiers: ┌────────────┬────────────────────────┐ │ Identifier │ Data │ ├────────────┼────────────────────────┤ │ 1 │ L1 Head Hash (bytes32) │ │ 2 │ Output Root (bytes32) │ │ 3 │ Root Claim (bytes32) │ │ 4 │ L2 Block Number (u64) │ │ 5 │ Chain ID (u64) │ └────────────┴────────────────────────┘","params":{"_ident":"The identifier of the local data.","_localContext":"The local key context for the preimage oracle. Optionally, can be set as a constant if the caller only requires one set of local keys.","_partOffset":"The offset of the local data part to write to the oracle.","_size":"The number of bytes in `_word` to load.","_word":"The local data word."}},"loadSha256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"readPreimage(bytes32,uint256)":{"params":{"_key":"The key of the preimage to read.","_offset":"The offset of the preimage to read."},"returns":{"datLen_":"The length of the preimage data.","dat_":"The preimage data."}}},"version":1},"userdoc":{"kind":"user","methods":{"loadKeccak256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"notice":"Loads of local data part into the preimage oracle."},"loadSha256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"readPreimage(bytes32,uint256)":{"notice":"Reads a preimage from the oracle."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/cannon/interfaces/IPreimageOracle.sol":"IPreimageOracle"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x66c1a22ff6d8a9ab9f5d12791c15c5273cb7f4421b1b5c6d1a76a166d3af418f","urls":["bzz-raw://f893baa1ac7eba3e24b80844dd16181dc9824277f896ab1c2eb7af22a096cb99","dweb:/ipfs/QmVtK36UpWdozR7UHEjANi6BVPCDTm5BF2HRhjRZg9MS3e"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"loadKeccak256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"notice":"Loads of local data part into the preimage oracle."},"loadSha256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"readPreimage(bytes32,uint256)":{"notice":"Reads a preimage from the oracle."}},"notice":"Interface for a preimage oracle."},"devdoc":{"version":1,"kind":"dev","methods":{"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)":{"params":{"_commitment":"The commitment to the polynomial. 48 bytes, part of the preimage key.","_partOffset":"The offset of the preimage to store.","_proof":"The KZG proof, part of the preimage key.","_y":"Big endian point value. The preimage for the key.","_z":"Big endian point value. Part of the preimage key."}},"loadKeccak256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"details":"The local data parts are loaded into the preimage oracle under the context of the caller - no other account can write to the caller's context specific data. There are 5 local data identifiers: ┌────────────┬────────────────────────┐ │ Identifier │ Data │ ├────────────┼────────────────────────┤ │ 1 │ L1 Head Hash (bytes32) │ │ 2 │ Output Root (bytes32) │ │ 3 │ Root Claim (bytes32) │ │ 4 │ L2 Block Number (u64) │ │ 5 │ Chain ID (u64) │ └────────────┴────────────────────────┘","params":{"_ident":"The identifier of the local data.","_localContext":"The local key context for the preimage oracle. Optionally, can be set as a constant if the caller only requires one set of local keys.","_partOffset":"The offset of the local data part to write to the oracle.","_size":"The number of bytes in `_word` to load.","_word":"The local data word."}},"loadSha256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"readPreimage(bytes32,uint256)":{"params":{"_key":"The key of the preimage to read.","_offset":"The offset of the preimage to read."},"returns":{"datLen_":"The length of the preimage data.","dat_":"The preimage data."}}},"title":"IPreimageOracle"},"ast":{"absolutePath":"src/cannon/interfaces/IPreimageOracle.sol","id":87828,"exportedSymbols":{"IPreimageOracle":[87827]},"nodeType":"SourceUnit","src":"32:3756:149","nodes":[{"id":87767,"nodeType":"PragmaDirective","src":"32:23:149","nodes":[],"literals":["solidity","0.8",".15"]},{"id":87827,"nodeType":"ContractDefinition","src":"129:3658:149","nodes":[{"id":87780,"nodeType":"FunctionDefinition","src":"420:107:149","nodes":[],"documentation":{"id":87769,"nodeType":"StructuredDocumentation","src":"161:254:149","text":"@notice Reads a preimage from the oracle.\n @param _key The key of the preimage to read.\n @param _offset The offset of the preimage to read.\n @return dat_ The preimage data.\n @return datLen_ The length of the preimage data."},"functionSelector":"e03110e1","implemented":false,"kind":"function","modifiers":[],"name":"readPreimage","nameLocation":"429:12:149","parameters":{"id":87774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87771,"mutability":"mutable","name":"_key","nameLocation":"450:4:149","nodeType":"VariableDeclaration","scope":87780,"src":"442:12:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87770,"name":"bytes32","nodeType":"ElementaryTypeName","src":"442:7:149","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":87773,"mutability":"mutable","name":"_offset","nameLocation":"464:7:149","nodeType":"VariableDeclaration","scope":87780,"src":"456:15:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87772,"name":"uint256","nodeType":"ElementaryTypeName","src":"456:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"441:31:149"},"returnParameters":{"id":87779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87776,"mutability":"mutable","name":"dat_","nameLocation":"504:4:149","nodeType":"VariableDeclaration","scope":87780,"src":"496:12:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87775,"name":"bytes32","nodeType":"ElementaryTypeName","src":"496:7:149","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":87778,"mutability":"mutable","name":"datLen_","nameLocation":"518:7:149","nodeType":"VariableDeclaration","scope":87780,"src":"510:15:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87777,"name":"uint256","nodeType":"ElementaryTypeName","src":"510:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"495:31:149"},"scope":87827,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":87796,"nodeType":"FunctionDefinition","src":"2037:207:149","nodes":[],"documentation":{"id":87781,"nodeType":"StructuredDocumentation","src":"533:1499:149","text":"@notice Loads of local data part into the preimage oracle.\n @param _ident The identifier of the local data.\n @param _localContext The local key context for the preimage oracle. Optionally, can be set as a constant\n if the caller only requires one set of local keys.\n @param _word The local data word.\n @param _size The number of bytes in `_word` to load.\n @param _partOffset The offset of the local data part to write to the oracle.\n @dev The local data parts are loaded into the preimage oracle under the context\n of the caller - no other account can write to the caller's context\n specific data.\n There are 5 local data identifiers:\n ┌────────────┬────────────────────────┐\n │ Identifier │ Data │\n ├────────────┼────────────────────────┤\n │ 1 │ L1 Head Hash (bytes32) │\n │ 2 │ Output Root (bytes32) │\n │ 3 │ Root Claim (bytes32) │\n │ 4 │ L2 Block Number (u64) │\n │ 5 │ Chain ID (u64) │\n └────────────┴────────────────────────┘"},"functionSelector":"52f0f3ad","implemented":false,"kind":"function","modifiers":[],"name":"loadLocalData","nameLocation":"2046:13:149","parameters":{"id":87792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87783,"mutability":"mutable","name":"_ident","nameLocation":"2077:6:149","nodeType":"VariableDeclaration","scope":87796,"src":"2069:14:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87782,"name":"uint256","nodeType":"ElementaryTypeName","src":"2069:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":87785,"mutability":"mutable","name":"_localContext","nameLocation":"2101:13:149","nodeType":"VariableDeclaration","scope":87796,"src":"2093:21:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2093:7:149","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":87787,"mutability":"mutable","name":"_word","nameLocation":"2132:5:149","nodeType":"VariableDeclaration","scope":87796,"src":"2124:13:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2124:7:149","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":87789,"mutability":"mutable","name":"_size","nameLocation":"2155:5:149","nodeType":"VariableDeclaration","scope":87796,"src":"2147:13:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87788,"name":"uint256","nodeType":"ElementaryTypeName","src":"2147:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":87791,"mutability":"mutable","name":"_partOffset","nameLocation":"2178:11:149","nodeType":"VariableDeclaration","scope":87796,"src":"2170:19:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87790,"name":"uint256","nodeType":"ElementaryTypeName","src":"2170:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2059:136:149"},"returnParameters":{"id":87795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87794,"mutability":"mutable","name":"key_","nameLocation":"2238:4:149","nodeType":"VariableDeclaration","scope":87796,"src":"2230:12:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2230:7:149","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2229:14:149"},"scope":87827,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87804,"nodeType":"FunctionDefinition","src":"2532:91:149","nodes":[],"documentation":{"id":87797,"nodeType":"StructuredDocumentation","src":"2250:277:149","text":"@notice Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes\n (clipped at preimage length, if out of data).\n @param _partOffset The offset of the preimage to read.\n @param _preimage The preimage data."},"functionSelector":"e1592611","implemented":false,"kind":"function","modifiers":[],"name":"loadKeccak256PreimagePart","nameLocation":"2541:25:149","parameters":{"id":87802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87799,"mutability":"mutable","name":"_partOffset","nameLocation":"2575:11:149","nodeType":"VariableDeclaration","scope":87804,"src":"2567:19:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87798,"name":"uint256","nodeType":"ElementaryTypeName","src":"2567:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":87801,"mutability":"mutable","name":"_preimage","nameLocation":"2603:9:149","nodeType":"VariableDeclaration","scope":87804,"src":"2588:24:149","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":87800,"name":"bytes","nodeType":"ElementaryTypeName","src":"2588:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2566:47:149"},"returnParameters":{"id":87803,"nodeType":"ParameterList","parameters":[],"src":"2622:0:149"},"scope":87827,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87812,"nodeType":"FunctionDefinition","src":"2908:88:149","nodes":[],"documentation":{"id":87805,"nodeType":"StructuredDocumentation","src":"2629:274:149","text":"@notice Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes\n (clipped at preimage length, if out of data).\n @param _partOffset The offset of the preimage to read.\n @param _preimage The preimage data."},"functionSelector":"8dc4be11","implemented":false,"kind":"function","modifiers":[],"name":"loadSha256PreimagePart","nameLocation":"2917:22:149","parameters":{"id":87810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87807,"mutability":"mutable","name":"_partOffset","nameLocation":"2948:11:149","nodeType":"VariableDeclaration","scope":87812,"src":"2940:19:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87806,"name":"uint256","nodeType":"ElementaryTypeName","src":"2940:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":87809,"mutability":"mutable","name":"_preimage","nameLocation":"2976:9:149","nodeType":"VariableDeclaration","scope":87812,"src":"2961:24:149","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":87808,"name":"bytes","nodeType":"ElementaryTypeName","src":"2961:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2939:47:149"},"returnParameters":{"id":87811,"nodeType":"ParameterList","parameters":[],"src":"2995:0:149"},"scope":87827,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87826,"nodeType":"FunctionDefinition","src":"3596:189:149","nodes":[],"documentation":{"id":87813,"nodeType":"StructuredDocumentation","src":"3236:355:149","text":"@param _z Big endian point value. Part of the preimage key.\n @param _y Big endian point value. The preimage for the key.\n @param _commitment The commitment to the polynomial. 48 bytes, part of the preimage key.\n @param _proof The KZG proof, part of the preimage key.\n @param _partOffset The offset of the preimage to store."},"functionSelector":"9d7e8769","implemented":false,"kind":"function","modifiers":[],"name":"loadBlobPreimagePart","nameLocation":"3605:20:149","parameters":{"id":87824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87815,"mutability":"mutable","name":"_z","nameLocation":"3643:2:149","nodeType":"VariableDeclaration","scope":87826,"src":"3635:10:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87814,"name":"uint256","nodeType":"ElementaryTypeName","src":"3635:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":87817,"mutability":"mutable","name":"_y","nameLocation":"3663:2:149","nodeType":"VariableDeclaration","scope":87826,"src":"3655:10:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87816,"name":"uint256","nodeType":"ElementaryTypeName","src":"3655:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":87819,"mutability":"mutable","name":"_commitment","nameLocation":"3690:11:149","nodeType":"VariableDeclaration","scope":87826,"src":"3675:26:149","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":87818,"name":"bytes","nodeType":"ElementaryTypeName","src":"3675:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":87821,"mutability":"mutable","name":"_proof","nameLocation":"3726:6:149","nodeType":"VariableDeclaration","scope":87826,"src":"3711:21:149","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":87820,"name":"bytes","nodeType":"ElementaryTypeName","src":"3711:5:149","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":87823,"mutability":"mutable","name":"_partOffset","nameLocation":"3750:11:149","nodeType":"VariableDeclaration","scope":87826,"src":"3742:19:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87822,"name":"uint256","nodeType":"ElementaryTypeName","src":"3742:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3625:142:149"},"returnParameters":{"id":87825,"nodeType":"ParameterList","parameters":[],"src":"3784:0:149"},"scope":87827,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IPreimageOracle","contractDependencies":[],"contractKind":"interface","documentation":{"id":87768,"nodeType":"StructuredDocumentation","src":"57:72:149","text":"@title IPreimageOracle\n @notice Interface for a preimage oracle."},"fullyImplemented":false,"linearizedBaseContracts":[87827],"name":"IPreimageOracle","nameLocation":"139:15:149","scope":87828,"usedErrors":[]}],"license":"MIT"},"id":149}
{"abi":[{"type":"function","name":"loadBlobPreimagePart","inputs":[{"name":"_z","type":"uint256","internalType":"uint256"},{"name":"_y","type":"uint256","internalType":"uint256"},{"name":"_commitment","type":"bytes","internalType":"bytes"},{"name":"_proof","type":"bytes","internalType":"bytes"},{"name":"_partOffset","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"loadKeccak256PreimagePart","inputs":[{"name":"_partOffset","type":"uint256","internalType":"uint256"},{"name":"_preimage","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"loadLocalData","inputs":[{"name":"_ident","type":"uint256","internalType":"uint256"},{"name":"_localContext","type":"bytes32","internalType":"bytes32"},{"name":"_word","type":"bytes32","internalType":"bytes32"},{"name":"_size","type":"uint256","internalType":"uint256"},{"name":"_partOffset","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"key_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"loadPrecompilePreimagePart","inputs":[{"name":"_partOffset","type":"uint256","internalType":"uint256"},{"name":"_precompile","type":"address","internalType":"address"},{"name":"_input","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"loadSha256PreimagePart","inputs":[{"name":"_partOffset","type":"uint256","internalType":"uint256"},{"name":"_preimage","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"readPreimage","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_offset","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"dat_","type":"bytes32","internalType":"bytes32"},{"name":"datLen_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)":"9d7e8769","loadKeccak256PreimagePart(uint256,bytes)":"e1592611","loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":"52f0f3ad","loadPrecompilePreimagePart(uint256,address,bytes)":"04697c78","loadSha256PreimagePart(uint256,bytes)":"8dc4be11","readPreimage(bytes32,uint256)":"e03110e1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_z\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_y\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_commitment\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"loadBlobPreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_preimage\",\"type\":\"bytes\"}],\"name\":\"loadKeccak256PreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ident\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_localContext\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_word\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"loadLocalData\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"key_\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_precompile\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"}],\"name\":\"loadPrecompilePreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_preimage\",\"type\":\"bytes\"}],\"name\":\"loadSha256PreimagePart\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_offset\",\"type\":\"uint256\"}],\"name\":\"readPreimage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"dat_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"datLen_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)\":{\"params\":{\"_commitment\":\"The commitment to the polynomial. 48 bytes, part of the preimage key.\",\"_partOffset\":\"The offset of the preimage to store.\",\"_proof\":\"The KZG proof, part of the preimage key.\",\"_y\":\"Big endian point value. The preimage for the key.\",\"_z\":\"Big endian point value. Part of the preimage key.\"}},\"loadKeccak256PreimagePart(uint256,bytes)\":{\"params\":{\"_partOffset\":\"The offset of the preimage to read.\",\"_preimage\":\"The preimage data.\"}},\"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)\":{\"details\":\"The local data parts are loaded into the preimage oracle under the context of the caller - no other account can write to the caller's context specific data. There are 5 local data identifiers: \\u250c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u252c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2510 \\u2502 Identifier \\u2502 Data \\u2502 \\u251c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u253c\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2524 \\u2502 1 \\u2502 L1 Head Hash (bytes32) \\u2502 \\u2502 2 \\u2502 Output Root (bytes32) \\u2502 \\u2502 3 \\u2502 Root Claim (bytes32) \\u2502 \\u2502 4 \\u2502 L2 Block Number (u64) \\u2502 \\u2502 5 \\u2502 Chain ID (u64) \\u2502 \\u2514\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2534\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2518\",\"params\":{\"_ident\":\"The identifier of the local data.\",\"_localContext\":\"The local key context for the preimage oracle. Optionally, can be set as a constant if the caller only requires one set of local keys.\",\"_partOffset\":\"The offset of the local data part to write to the oracle.\",\"_size\":\"The number of bytes in `_word` to load.\",\"_word\":\"The local data word.\"}},\"loadPrecompilePreimagePart(uint256,address,bytes)\":{\"params\":{\"_input\":\"The input to the precompile call.\",\"_partOffset\":\"The offset of the precompile result being loaded.\",\"_precompile\":\"The precompile address\"}},\"loadSha256PreimagePart(uint256,bytes)\":{\"params\":{\"_partOffset\":\"The offset of the preimage to read.\",\"_preimage\":\"The preimage data.\"}},\"readPreimage(bytes32,uint256)\":{\"params\":{\"_key\":\"The key of the preimage to read.\",\"_offset\":\"The offset of the preimage to read.\"},\"returns\":{\"datLen_\":\"The length of the preimage data.\",\"dat_\":\"The preimage data.\"}}},\"title\":\"IPreimageOracle\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"loadKeccak256PreimagePart(uint256,bytes)\":{\"notice\":\"Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data).\"},\"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)\":{\"notice\":\"Loads of local data part into the preimage oracle.\"},\"loadPrecompilePreimagePart(uint256,address,bytes)\":{\"notice\":\"Prepares a precompile result to be read by a precompile key for the specified offset. The precompile result data is a concatenation of the precompile call status byte and its return data. The preimage key is `6 ++ keccak256(precompile ++ input)[1:]`.\"},\"loadSha256PreimagePart(uint256,bytes)\":{\"notice\":\"Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data).\"},\"readPreimage(bytes32,uint256)\":{\"notice\":\"Reads a preimage from the oracle.\"}},\"notice\":\"Interface for a preimage oracle.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/cannon/interfaces/IPreimageOracle.sol\":\"IPreimageOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af\",\"dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_z","type":"uint256"},{"internalType":"uint256","name":"_y","type":"uint256"},{"internalType":"bytes","name":"_commitment","type":"bytes"},{"internalType":"bytes","name":"_proof","type":"bytes"},{"internalType":"uint256","name":"_partOffset","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"loadBlobPreimagePart"},{"inputs":[{"internalType":"uint256","name":"_partOffset","type":"uint256"},{"internalType":"bytes","name":"_preimage","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"loadKeccak256PreimagePart"},{"inputs":[{"internalType":"uint256","name":"_ident","type":"uint256"},{"internalType":"bytes32","name":"_localContext","type":"bytes32"},{"internalType":"bytes32","name":"_word","type":"bytes32"},{"internalType":"uint256","name":"_size","type":"uint256"},{"internalType":"uint256","name":"_partOffset","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"loadLocalData","outputs":[{"internalType":"bytes32","name":"key_","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_partOffset","type":"uint256"},{"internalType":"address","name":"_precompile","type":"address"},{"internalType":"bytes","name":"_input","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"loadPrecompilePreimagePart"},{"inputs":[{"internalType":"uint256","name":"_partOffset","type":"uint256"},{"internalType":"bytes","name":"_preimage","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"loadSha256PreimagePart"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_offset","type":"uint256"}],"stateMutability":"view","type":"function","name":"readPreimage","outputs":[{"internalType":"bytes32","name":"dat_","type":"bytes32"},{"internalType":"uint256","name":"datLen_","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)":{"params":{"_commitment":"The commitment to the polynomial. 48 bytes, part of the preimage key.","_partOffset":"The offset of the preimage to store.","_proof":"The KZG proof, part of the preimage key.","_y":"Big endian point value. The preimage for the key.","_z":"Big endian point value. Part of the preimage key."}},"loadKeccak256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"details":"The local data parts are loaded into the preimage oracle under the context of the caller - no other account can write to the caller's context specific data. There are 5 local data identifiers: ┌────────────┬────────────────────────┐ │ Identifier │ Data │ ├────────────┼────────────────────────┤ │ 1 │ L1 Head Hash (bytes32) │ │ 2 │ Output Root (bytes32) │ │ 3 │ Root Claim (bytes32) │ │ 4 │ L2 Block Number (u64) │ │ 5 │ Chain ID (u64) │ └────────────┴────────────────────────┘","params":{"_ident":"The identifier of the local data.","_localContext":"The local key context for the preimage oracle. Optionally, can be set as a constant if the caller only requires one set of local keys.","_partOffset":"The offset of the local data part to write to the oracle.","_size":"The number of bytes in `_word` to load.","_word":"The local data word."}},"loadPrecompilePreimagePart(uint256,address,bytes)":{"params":{"_input":"The input to the precompile call.","_partOffset":"The offset of the precompile result being loaded.","_precompile":"The precompile address"}},"loadSha256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"readPreimage(bytes32,uint256)":{"params":{"_key":"The key of the preimage to read.","_offset":"The offset of the preimage to read."},"returns":{"datLen_":"The length of the preimage data.","dat_":"The preimage data."}}},"version":1},"userdoc":{"kind":"user","methods":{"loadKeccak256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"notice":"Loads of local data part into the preimage oracle."},"loadPrecompilePreimagePart(uint256,address,bytes)":{"notice":"Prepares a precompile result to be read by a precompile key for the specified offset. The precompile result data is a concatenation of the precompile call status byte and its return data. The preimage key is `6 ++ keccak256(precompile ++ input)[1:]`."},"loadSha256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"readPreimage(bytes32,uint256)":{"notice":"Reads a preimage from the oracle."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/cannon/interfaces/IPreimageOracle.sol":"IPreimageOracle"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f","urls":["bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af","dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"loadKeccak256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by keccak256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"notice":"Loads of local data part into the preimage oracle."},"loadPrecompilePreimagePart(uint256,address,bytes)":{"notice":"Prepares a precompile result to be read by a precompile key for the specified offset. The precompile result data is a concatenation of the precompile call status byte and its return data. The preimage key is `6 ++ keccak256(precompile ++ input)[1:]`."},"loadSha256PreimagePart(uint256,bytes)":{"notice":"Prepares a preimage to be read by sha256 key, starting at the given offset and up to 32 bytes (clipped at preimage length, if out of data)."},"readPreimage(bytes32,uint256)":{"notice":"Reads a preimage from the oracle."}},"notice":"Interface for a preimage oracle."},"devdoc":{"version":1,"kind":"dev","methods":{"loadBlobPreimagePart(uint256,uint256,bytes,bytes,uint256)":{"params":{"_commitment":"The commitment to the polynomial. 48 bytes, part of the preimage key.","_partOffset":"The offset of the preimage to store.","_proof":"The KZG proof, part of the preimage key.","_y":"Big endian point value. The preimage for the key.","_z":"Big endian point value. Part of the preimage key."}},"loadKeccak256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"loadLocalData(uint256,bytes32,bytes32,uint256,uint256)":{"details":"The local data parts are loaded into the preimage oracle under the context of the caller - no other account can write to the caller's context specific data. There are 5 local data identifiers: ┌────────────┬────────────────────────┐ │ Identifier │ Data │ ├────────────┼────────────────────────┤ │ 1 │ L1 Head Hash (bytes32) │ │ 2 │ Output Root (bytes32) │ │ 3 │ Root Claim (bytes32) │ │ 4 │ L2 Block Number (u64) │ │ 5 │ Chain ID (u64) │ └────────────┴────────────────────────┘","params":{"_ident":"The identifier of the local data.","_localContext":"The local key context for the preimage oracle. Optionally, can be set as a constant if the caller only requires one set of local keys.","_partOffset":"The offset of the local data part to write to the oracle.","_size":"The number of bytes in `_word` to load.","_word":"The local data word."}},"loadPrecompilePreimagePart(uint256,address,bytes)":{"params":{"_input":"The input to the precompile call.","_partOffset":"The offset of the precompile result being loaded.","_precompile":"The precompile address"}},"loadSha256PreimagePart(uint256,bytes)":{"params":{"_partOffset":"The offset of the preimage to read.","_preimage":"The preimage data."}},"readPreimage(bytes32,uint256)":{"params":{"_key":"The key of the preimage to read.","_offset":"The offset of the preimage to read."},"returns":{"datLen_":"The length of the preimage data.","dat_":"The preimage data."}}},"title":"IPreimageOracle"},"id":154}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"proxyCreated","inputs":[{"name":"proxy","type":"address","internalType":"contract SafeProxy"},{"name":"_singleton","type":"address","internalType":"address"},{"name":"initializer","type":"bytes","internalType":"bytes"},{"name":"saltNonce","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"proxyCreated(address,address,bytes,uint256)":"1e52b518"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract SafeProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_singleton\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"initializer\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"saltNonce\",\"type\":\"uint256\"}],\"name\":\"proxyCreated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"An interface for a contract that implements a callback function to be executed after the creation of a proxy instance.\",\"kind\":\"dev\",\"methods\":{\"proxyCreated(address,address,bytes,uint256)\":{\"details\":\"Function to be called after the creation of a SafeProxy instance.\",\"params\":{\"_singleton\":\"The address of the singleton contract used to create the proxy.\",\"initializer\":\"The initializer function call data.\",\"proxy\":\"The newly created SafeProxy instance.\",\"saltNonce\":\"The nonce used to generate the salt for the proxy deployment.\"}}},\"title\":\"IProxyCreationCallback\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/proxies/IProxyCreationCallback.sol\":\"IProxyCreationCallback\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/proxies/IProxyCreationCallback.sol\":{\"keccak256\":\"0xf5410c842c1bbff96a2047b31f5437a9dc5183d004ab1fc9f952220f11379602\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://0ac1fa0c7d6fc683384a3ce0b328c66adcc53b6a3e59d3b67c62404dd57c3099\",\"dweb:/ipfs/QmcVvxtcjZqyQwQcU4cPU4SZZ2LEahsmVWgJWGh5n8EHa7\"]},\"lib/safe-contracts/contracts/proxies/SafeProxy.sol\":{\"keccak256\":\"0x5dccbe86285c1d4c4b2fed0ae8007620c3186d22411f43feecfbf8a028e5c7e2\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://a1a02d01a92895110505e141d05b0924ea457a25b89a161f0aeedf6b5cb41aec\",\"dweb:/ipfs/QmYWEsFbWwtrVvEF9MNQtf4X3Qt13dAE8o44tEyAS9jmKP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract SafeProxy","name":"proxy","type":"address"},{"internalType":"address","name":"_singleton","type":"address"},{"internalType":"bytes","name":"initializer","type":"bytes"},{"internalType":"uint256","name":"saltNonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"proxyCreated"}],"devdoc":{"kind":"dev","methods":{"proxyCreated(address,address,bytes,uint256)":{"details":"Function to be called after the creation of a SafeProxy instance.","params":{"_singleton":"The address of the singleton contract used to create the proxy.","initializer":"The initializer function call data.","proxy":"The newly created SafeProxy instance.","saltNonce":"The nonce used to generate the salt for the proxy deployment."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/proxies/IProxyCreationCallback.sol":"IProxyCreationCallback"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/proxies/IProxyCreationCallback.sol":{"keccak256":"0xf5410c842c1bbff96a2047b31f5437a9dc5183d004ab1fc9f952220f11379602","urls":["bzz-raw://0ac1fa0c7d6fc683384a3ce0b328c66adcc53b6a3e59d3b67c62404dd57c3099","dweb:/ipfs/QmcVvxtcjZqyQwQcU4cPU4SZZ2LEahsmVWgJWGh5n8EHa7"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/proxies/SafeProxy.sol":{"keccak256":"0x5dccbe86285c1d4c4b2fed0ae8007620c3186d22411f43feecfbf8a028e5c7e2","urls":["bzz-raw://a1a02d01a92895110505e141d05b0924ea457a25b89a161f0aeedf6b5cb41aec","dweb:/ipfs/QmYWEsFbWwtrVvEF9MNQtf4X3Qt13dAE8o44tEyAS9jmKP"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"An interface for a contract that implements a callback function to be executed after the creation of a proxy instance.","methods":{"proxyCreated(address,address,bytes,uint256)":{"details":"Function to be called after the creation of a SafeProxy instance.","params":{"_singleton":"The address of the singleton contract used to create the proxy.","initializer":"The initializer function call data.","proxy":"The newly created SafeProxy instance.","saltNonce":"The nonce used to generate the salt for the proxy deployment."}}},"title":"IProxyCreationCallback"},"ast":{"absolutePath":"lib/safe-contracts/contracts/proxies/IProxyCreationCallback.sol","id":58428,"exportedSymbols":{"IProxy":[58436],"IProxyCreationCallback":[58427],"SafeProxy":[58467]},"nodeType":"SourceUnit","src":"42:773:92","nodes":[{"id":58411,"nodeType":"PragmaDirective","src":"42:31:92","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58412,"nodeType":"ImportDirective","src":"74:25:92","nodes":[],"absolutePath":"lib/safe-contracts/contracts/proxies/SafeProxy.sol","file":"./SafeProxy.sol","nameLocation":"-1:-1:-1","scope":58428,"sourceUnit":58468,"symbolAliases":[],"unitAlias":""},{"id":58427,"nodeType":"ContractDefinition","src":"269:545:92","nodes":[{"id":58426,"nodeType":"FunctionDefinition","src":"697:115:92","nodes":[],"documentation":{"id":58414,"nodeType":"StructuredDocumentation","src":"308:384:92","text":" @dev Function to be called after the creation of a SafeProxy instance.\n @param proxy The newly created SafeProxy instance.\n @param _singleton The address of the singleton contract used to create the proxy.\n @param initializer The initializer function call data.\n @param saltNonce The nonce used to generate the salt for the proxy deployment."},"functionSelector":"1e52b518","implemented":false,"kind":"function","modifiers":[],"name":"proxyCreated","nameLocation":"706:12:92","parameters":{"id":58424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58417,"mutability":"mutable","name":"proxy","nameLocation":"729:5:92","nodeType":"VariableDeclaration","scope":58426,"src":"719:15:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SafeProxy_$58467","typeString":"contract SafeProxy"},"typeName":{"id":58416,"nodeType":"UserDefinedTypeName","pathNode":{"id":58415,"name":"SafeProxy","nodeType":"IdentifierPath","referencedDeclaration":58467,"src":"719:9:92"},"referencedDeclaration":58467,"src":"719:9:92","typeDescriptions":{"typeIdentifier":"t_contract$_SafeProxy_$58467","typeString":"contract SafeProxy"}},"visibility":"internal"},{"constant":false,"id":58419,"mutability":"mutable","name":"_singleton","nameLocation":"744:10:92","nodeType":"VariableDeclaration","scope":58426,"src":"736:18:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58418,"name":"address","nodeType":"ElementaryTypeName","src":"736:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58421,"mutability":"mutable","name":"initializer","nameLocation":"771:11:92","nodeType":"VariableDeclaration","scope":58426,"src":"756:26:92","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":58420,"name":"bytes","nodeType":"ElementaryTypeName","src":"756:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":58423,"mutability":"mutable","name":"saltNonce","nameLocation":"792:9:92","nodeType":"VariableDeclaration","scope":58426,"src":"784:17:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58422,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"718:84:92"},"returnParameters":{"id":58425,"nodeType":"ParameterList","parameters":[],"src":"811:0:92"},"scope":58427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IProxyCreationCallback","contractDependencies":[],"contractKind":"interface","documentation":{"id":58413,"nodeType":"StructuredDocumentation","src":"101:167:92","text":" @title IProxyCreationCallback\n @dev An interface for a contract that implements a callback function to be executed after the creation of a proxy instance."},"fullyImplemented":false,"linearizedBaseContracts":[58427],"name":"IProxyCreationCallback","nameLocation":"279:22:92","scope":58428,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":92}
{"abi":[{"type":"function","name":"proxyCreated","inputs":[{"name":"proxy","type":"address","internalType":"contract SafeProxy"},{"name":"_singleton","type":"address","internalType":"address"},{"name":"initializer","type":"bytes","internalType":"bytes"},{"name":"saltNonce","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"proxyCreated(address,address,bytes,uint256)":"1e52b518"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract SafeProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_singleton\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"initializer\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"saltNonce\",\"type\":\"uint256\"}],\"name\":\"proxyCreated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"An interface for a contract that implements a callback function to be executed after the creation of a proxy instance.\",\"kind\":\"dev\",\"methods\":{\"proxyCreated(address,address,bytes,uint256)\":{\"details\":\"Function to be called after the creation of a SafeProxy instance.\",\"params\":{\"_singleton\":\"The address of the singleton contract used to create the proxy.\",\"initializer\":\"The initializer function call data.\",\"proxy\":\"The newly created SafeProxy instance.\",\"saltNonce\":\"The nonce used to generate the salt for the proxy deployment.\"}}},\"title\":\"IProxyCreationCallback\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/proxies/IProxyCreationCallback.sol\":\"IProxyCreationCallback\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/proxies/IProxyCreationCallback.sol\":{\"keccak256\":\"0xf5410c842c1bbff96a2047b31f5437a9dc5183d004ab1fc9f952220f11379602\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://0ac1fa0c7d6fc683384a3ce0b328c66adcc53b6a3e59d3b67c62404dd57c3099\",\"dweb:/ipfs/QmcVvxtcjZqyQwQcU4cPU4SZZ2LEahsmVWgJWGh5n8EHa7\"]},\"lib/safe-contracts/contracts/proxies/SafeProxy.sol\":{\"keccak256\":\"0x5dccbe86285c1d4c4b2fed0ae8007620c3186d22411f43feecfbf8a028e5c7e2\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://a1a02d01a92895110505e141d05b0924ea457a25b89a161f0aeedf6b5cb41aec\",\"dweb:/ipfs/QmYWEsFbWwtrVvEF9MNQtf4X3Qt13dAE8o44tEyAS9jmKP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract SafeProxy","name":"proxy","type":"address"},{"internalType":"address","name":"_singleton","type":"address"},{"internalType":"bytes","name":"initializer","type":"bytes"},{"internalType":"uint256","name":"saltNonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"proxyCreated"}],"devdoc":{"kind":"dev","methods":{"proxyCreated(address,address,bytes,uint256)":{"details":"Function to be called after the creation of a SafeProxy instance.","params":{"_singleton":"The address of the singleton contract used to create the proxy.","initializer":"The initializer function call data.","proxy":"The newly created SafeProxy instance.","saltNonce":"The nonce used to generate the salt for the proxy deployment."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/proxies/IProxyCreationCallback.sol":"IProxyCreationCallback"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/proxies/IProxyCreationCallback.sol":{"keccak256":"0xf5410c842c1bbff96a2047b31f5437a9dc5183d004ab1fc9f952220f11379602","urls":["bzz-raw://0ac1fa0c7d6fc683384a3ce0b328c66adcc53b6a3e59d3b67c62404dd57c3099","dweb:/ipfs/QmcVvxtcjZqyQwQcU4cPU4SZZ2LEahsmVWgJWGh5n8EHa7"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/proxies/SafeProxy.sol":{"keccak256":"0x5dccbe86285c1d4c4b2fed0ae8007620c3186d22411f43feecfbf8a028e5c7e2","urls":["bzz-raw://a1a02d01a92895110505e141d05b0924ea457a25b89a161f0aeedf6b5cb41aec","dweb:/ipfs/QmYWEsFbWwtrVvEF9MNQtf4X3Qt13dAE8o44tEyAS9jmKP"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"An interface for a contract that implements a callback function to be executed after the creation of a proxy instance.","methods":{"proxyCreated(address,address,bytes,uint256)":{"details":"Function to be called after the creation of a SafeProxy instance.","params":{"_singleton":"The address of the singleton contract used to create the proxy.","initializer":"The initializer function call data.","proxy":"The newly created SafeProxy instance.","saltNonce":"The nonce used to generate the salt for the proxy deployment."}}},"title":"IProxyCreationCallback"},"id":92}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"getSchema","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"register","inputs":[{"name":"schema","type":"string","internalType":"string"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"event","name":"Registered","inputs":[{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"registerer","type":"address","indexed":true,"internalType":"address"},{"name":"schema","type":"tuple","indexed":false,"internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getSchema(bytes32)":"a2ea7c6e","register(string,address,bool)":"60d7a278"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registerer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct SchemaRecord\",\"name\":\"schema\",\"type\":\"tuple\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"getSchema\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"internalType\":\"struct SchemaRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Registered(bytes32,address,(bytes32,address,bool,string))\":{\"details\":\"Emitted when a new schema has been registered\",\"params\":{\"registerer\":\"The address of the account used to register the schema.\",\"schema\":\"The schema data.\",\"uid\":\"The schema UID.\"}}},\"kind\":\"dev\",\"methods\":{\"getSchema(bytes32)\":{\"details\":\"Returns an existing schema by UID\",\"params\":{\"uid\":\"The UID of the schema to retrieve.\"},\"returns\":{\"_0\":\"The schema data members.\"}},\"register(string,address,bool)\":{\"details\":\"Submits and reserves a new schema\",\"params\":{\"resolver\":\"An optional schema resolver.\",\"revocable\":\"Whether the schema allows revocations explicitly.\",\"schema\":\"The schema data schema.\"},\"returns\":{\"_0\":\"The UID of the new schema.\"}}},\"title\":\"ISchemaRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The interface of global attestation schemas for the Ethereum Attestation Service protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/EAS/ISchemaRegistry.sol\":\"ISchemaRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/EAS/Common.sol\":{\"keccak256\":\"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe\",\"dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd\"]},\"src/EAS/ISchemaRegistry.sol\":{\"keccak256\":\"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125\",\"dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq\"]},\"src/EAS/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61\",\"dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true},{"internalType":"address","name":"registerer","type":"address","indexed":true},{"internalType":"struct SchemaRecord","name":"schema","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}],"indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSchema","outputs":[{"internalType":"struct SchemaRecord","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}]}]},{"inputs":[{"internalType":"string","name":"schema","type":"string"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/EAS/ISchemaRegistry.sol":"ISchemaRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"src/EAS/Common.sol":{"keccak256":"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309","urls":["bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe","dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd"],"license":"MIT"},"src/EAS/ISchemaRegistry.sol":{"keccak256":"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b","urls":["bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125","dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq"],"license":"MIT"},"src/EAS/resolver/ISchemaResolver.sol":{"keccak256":"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000","urls":["bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61","dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"The interface of global attestation schemas for the Ethereum Attestation Service protocol."},"devdoc":{"version":1,"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"events":{"Registered(bytes32,address,(bytes32,address,bool,string))":{"details":"Emitted when a new schema has been registered","params":{"registerer":"The address of the account used to register the schema.","schema":"The schema data.","uid":"The schema UID."}}},"title":"ISchemaRegistry"},"ast":{"absolutePath":"src/EAS/ISchemaRegistry.sol","id":3622,"exportedSymbols":{"ISchemaRegistry":[3621],"ISchemaResolver":[4157],"SchemaRecord":[3587]},"nodeType":"SourceUnit","src":"32:1523:9","nodes":[{"id":3575,"nodeType":"PragmaDirective","src":"32:23:9","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":3577,"nodeType":"ImportDirective","src":"57:71:9","nodes":[],"absolutePath":"src/EAS/resolver/ISchemaResolver.sol","file":"src/EAS/resolver/ISchemaResolver.sol","nameLocation":"-1:-1:-1","scope":3622,"sourceUnit":4158,"symbolAliases":[{"foreign":{"id":3576,"name":"ISchemaResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4157,"src":"66:15:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3587,"nodeType":"StructDefinition","src":"196:285:9","nodes":[],"canonicalName":"SchemaRecord","members":[{"constant":false,"id":3579,"mutability":"mutable","name":"uid","nameLocation":"230:3:9","nodeType":"VariableDeclaration","scope":3587,"src":"222:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"222:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3582,"mutability":"mutable","name":"resolver","nameLocation":"295:8:9","nodeType":"VariableDeclaration","scope":3587,"src":"279:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"},"typeName":{"id":3581,"nodeType":"UserDefinedTypeName","pathNode":{"id":3580,"name":"ISchemaResolver","nameLocations":["279:15:9"],"nodeType":"IdentifierPath","referencedDeclaration":4157,"src":"279:15:9"},"referencedDeclaration":4157,"src":"279:15:9","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"}},"visibility":"internal"},{"constant":false,"id":3584,"mutability":"mutable","name":"revocable","nameLocation":"343:9:9","nodeType":"VariableDeclaration","scope":3587,"src":"338:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3583,"name":"bool","nodeType":"ElementaryTypeName","src":"338:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3586,"mutability":"mutable","name":"schema","nameLocation":"418:6:9","nodeType":"VariableDeclaration","scope":3587,"src":"411:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3585,"name":"string","nodeType":"ElementaryTypeName","src":"411:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"SchemaRecord","nameLocation":"203:12:9","scope":3622,"visibility":"public"},{"id":3621,"nodeType":"ContractDefinition","src":"613:941:9","nodes":[{"id":3598,"nodeType":"EventDefinition","src":"860:87:9","nodes":[],"anonymous":false,"documentation":{"id":3589,"nodeType":"StructuredDocumentation","src":"645:210:9","text":"@dev Emitted when a new schema has been registered\n @param uid The schema UID.\n @param registerer The address of the account used to register the schema.\n @param schema The schema data."},"eventSelector":"d0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e","name":"Registered","nameLocation":"866:10:9","parameters":{"id":3597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3591,"indexed":true,"mutability":"mutable","name":"uid","nameLocation":"893:3:9","nodeType":"VariableDeclaration","scope":3598,"src":"877:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3590,"name":"bytes32","nodeType":"ElementaryTypeName","src":"877:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3593,"indexed":true,"mutability":"mutable","name":"registerer","nameLocation":"914:10:9","nodeType":"VariableDeclaration","scope":3598,"src":"898:26:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3592,"name":"address","nodeType":"ElementaryTypeName","src":"898:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3596,"indexed":false,"mutability":"mutable","name":"schema","nameLocation":"939:6:9","nodeType":"VariableDeclaration","scope":3598,"src":"926:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord"},"typeName":{"id":3595,"nodeType":"UserDefinedTypeName","pathNode":{"id":3594,"name":"SchemaRecord","nameLocations":["926:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"926:12:9"},"referencedDeclaration":3587,"src":"926:12:9","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage_ptr","typeString":"struct SchemaRecord"}},"visibility":"internal"}],"src":"876:70:9"}},{"id":3611,"nodeType":"FunctionDefinition","src":"1217:111:9","nodes":[],"documentation":{"id":3599,"nodeType":"StructuredDocumentation","src":"953:259:9","text":"@dev Submits and reserves a new schema\n @param schema The schema data schema.\n @param resolver An optional schema resolver.\n @param revocable Whether the schema allows revocations explicitly.\n @return The UID of the new schema."},"functionSelector":"60d7a278","implemented":false,"kind":"function","modifiers":[],"name":"register","nameLocation":"1226:8:9","parameters":{"id":3607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3601,"mutability":"mutable","name":"schema","nameLocation":"1251:6:9","nodeType":"VariableDeclaration","scope":3611,"src":"1235:22:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3600,"name":"string","nodeType":"ElementaryTypeName","src":"1235:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3604,"mutability":"mutable","name":"resolver","nameLocation":"1275:8:9","nodeType":"VariableDeclaration","scope":3611,"src":"1259:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"},"typeName":{"id":3603,"nodeType":"UserDefinedTypeName","pathNode":{"id":3602,"name":"ISchemaResolver","nameLocations":["1259:15:9"],"nodeType":"IdentifierPath","referencedDeclaration":4157,"src":"1259:15:9"},"referencedDeclaration":4157,"src":"1259:15:9","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"}},"visibility":"internal"},{"constant":false,"id":3606,"mutability":"mutable","name":"revocable","nameLocation":"1290:9:9","nodeType":"VariableDeclaration","scope":3611,"src":"1285:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3605,"name":"bool","nodeType":"ElementaryTypeName","src":"1285:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1234:66:9"},"returnParameters":{"id":3610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3611,"src":"1319:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3608,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1319:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1318:9:9"},"scope":3621,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":3620,"nodeType":"FunctionDefinition","src":"1476:76:9","nodes":[],"documentation":{"id":3612,"nodeType":"StructuredDocumentation","src":"1334:137:9","text":"@dev Returns an existing schema by UID\n @param uid The UID of the schema to retrieve.\n @return The schema data members."},"functionSelector":"a2ea7c6e","implemented":false,"kind":"function","modifiers":[],"name":"getSchema","nameLocation":"1485:9:9","parameters":{"id":3615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3614,"mutability":"mutable","name":"uid","nameLocation":"1503:3:9","nodeType":"VariableDeclaration","scope":3620,"src":"1495:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1495:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1494:13:9"},"returnParameters":{"id":3619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3618,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3620,"src":"1531:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord"},"typeName":{"id":3617,"nodeType":"UserDefinedTypeName","pathNode":{"id":3616,"name":"SchemaRecord","nameLocations":["1531:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"1531:12:9"},"referencedDeclaration":3587,"src":"1531:12:9","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage_ptr","typeString":"struct SchemaRecord"}},"visibility":"internal"}],"src":"1530:21:9"},"scope":3621,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISchemaRegistry","contractDependencies":[],"contractKind":"interface","documentation":{"id":3588,"nodeType":"StructuredDocumentation","src":"483:130:9","text":"@title ISchemaRegistry\n @notice The interface of global attestation schemas for the Ethereum Attestation Service protocol."},"fullyImplemented":false,"linearizedBaseContracts":[3621],"name":"ISchemaRegistry","nameLocation":"623:15:9","scope":3622,"usedErrors":[]}],"license":"MIT"},"id":9}
{"abi":[{"type":"function","name":"getSchema","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"register","inputs":[{"name":"schema","type":"string","internalType":"string"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"event","name":"Registered","inputs":[{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"registerer","type":"address","indexed":true,"internalType":"address"},{"name":"schema","type":"tuple","indexed":false,"internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getSchema(bytes32)":"a2ea7c6e","register(string,address,bool)":"60d7a278"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registerer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct SchemaRecord\",\"name\":\"schema\",\"type\":\"tuple\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"getSchema\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"internalType\":\"struct SchemaRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Registered(bytes32,address,(bytes32,address,bool,string))\":{\"details\":\"Emitted when a new schema has been registered\",\"params\":{\"registerer\":\"The address of the account used to register the schema.\",\"schema\":\"The schema data.\",\"uid\":\"The schema UID.\"}}},\"kind\":\"dev\",\"methods\":{\"getSchema(bytes32)\":{\"details\":\"Returns an existing schema by UID\",\"params\":{\"uid\":\"The UID of the schema to retrieve.\"},\"returns\":{\"_0\":\"The schema data members.\"}},\"register(string,address,bool)\":{\"details\":\"Submits and reserves a new schema\",\"params\":{\"resolver\":\"An optional schema resolver.\",\"revocable\":\"Whether the schema allows revocations explicitly.\",\"schema\":\"The schema data schema.\"},\"returns\":{\"_0\":\"The UID of the new schema.\"}}},\"title\":\"ISchemaRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The interface of global attestation schemas for the Ethereum Attestation Service protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/EAS/ISchemaRegistry.sol\":\"ISchemaRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/EAS/Common.sol\":{\"keccak256\":\"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe\",\"dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd\"]},\"src/EAS/ISchemaRegistry.sol\":{\"keccak256\":\"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125\",\"dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq\"]},\"src/EAS/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61\",\"dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true},{"internalType":"address","name":"registerer","type":"address","indexed":true},{"internalType":"struct SchemaRecord","name":"schema","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}],"indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSchema","outputs":[{"internalType":"struct SchemaRecord","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}]}]},{"inputs":[{"internalType":"string","name":"schema","type":"string"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/EAS/ISchemaRegistry.sol":"ISchemaRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"src/EAS/Common.sol":{"keccak256":"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309","urls":["bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe","dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd"],"license":"MIT"},"src/EAS/ISchemaRegistry.sol":{"keccak256":"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b","urls":["bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125","dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq"],"license":"MIT"},"src/EAS/resolver/ISchemaResolver.sol":{"keccak256":"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000","urls":["bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61","dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"The interface of global attestation schemas for the Ethereum Attestation Service protocol."},"devdoc":{"version":1,"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"events":{"Registered(bytes32,address,(bytes32,address,bool,string))":{"details":"Emitted when a new schema has been registered","params":{"registerer":"The address of the account used to register the schema.","schema":"The schema data.","uid":"The schema UID."}}},"title":"ISchemaRegistry"},"id":9}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"attest","inputs":[{"name":"attestation","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"isPayable","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"multiAttest","inputs":[{"name":"attestations","type":"tuple[]","internalType":"struct Attestation[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"multiRevoke","inputs":[{"name":"attestations","type":"tuple[]","internalType":"struct Attestation[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"revoke","inputs":[{"name":"attestation","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":"e60c3505","isPayable()":"ce46e046","multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":"91db0b7e","multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":"88e5b2d9","revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":"e49617e1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"attest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPayable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation[]\",\"name\":\"attestations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"multiAttest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation[]\",\"name\":\"attestations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"multiRevoke\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"revoke\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"params\":{\"attestation\":\"The new attestation.\"},\"returns\":{\"_0\":\"Whether the attestation is valid.\"}},\"isPayable()\":{\"returns\":{\"_0\":\"Whether the resolver supports ETH transfers.\"}},\"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"params\":{\"attestations\":\"The new attestations.\",\"values\":\"Explicit ETH amounts which were sent with each attestation.\"},\"returns\":{\"_0\":\"Whether all the attestations are valid.\"}},\"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"params\":{\"attestations\":\"The existing attestations to be revoked.\",\"values\":\"Explicit ETH amounts which were sent with each revocation.\"},\"returns\":{\"_0\":\"Whether the attestations can be revoked.\"}},\"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"params\":{\"attestation\":\"The existing attestation to be revoked.\"},\"returns\":{\"_0\":\"Whether the attestation can be revoked.\"}}},\"title\":\"ISchemaResolver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"notice\":\"Processes an attestation and verifies whether it's valid.\"},\"isPayable()\":{\"notice\":\"Checks if the resolver can be sent ETH.\"},\"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"notice\":\"Processes multiple attestations and verifies whether they are valid.\"},\"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"notice\":\"Processes revocation of multiple attestation and verifies they can be revoked.\"},\"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"notice\":\"Processes an attestation revocation and verifies if it can be revoked.\"}},\"notice\":\"The interface of an optional schema resolver.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/EAS/resolver/ISchemaResolver.sol\":\"ISchemaResolver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/EAS/Common.sol\":{\"keccak256\":\"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe\",\"dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd\"]},\"src/EAS/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61\",\"dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Attestation","name":"attestation","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"attest","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPayable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation[]","name":"attestations","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiAttest","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation[]","name":"attestations","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiRevoke","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation","name":"attestation","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"revoke","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The new attestation."},"returns":{"_0":"Whether the attestation is valid."}},"isPayable()":{"returns":{"_0":"Whether the resolver supports ETH transfers."}},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The new attestations.","values":"Explicit ETH amounts which were sent with each attestation."},"returns":{"_0":"Whether all the attestations are valid."}},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The existing attestations to be revoked.","values":"Explicit ETH amounts which were sent with each revocation."},"returns":{"_0":"Whether the attestations can be revoked."}},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The existing attestation to be revoked."},"returns":{"_0":"Whether the attestation can be revoked."}}},"version":1},"userdoc":{"kind":"user","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation and verifies whether it's valid."},"isPayable()":{"notice":"Checks if the resolver can be sent ETH."},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes multiple attestations and verifies whether they are valid."},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes revocation of multiple attestation and verifies they can be revoked."},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation revocation and verifies if it can be revoked."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/EAS/resolver/ISchemaResolver.sol":"ISchemaResolver"},"evmVersion":"paris","libraries":{}},"sources":{"src/EAS/Common.sol":{"keccak256":"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309","urls":["bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe","dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd"],"license":"MIT"},"src/EAS/resolver/ISchemaResolver.sol":{"keccak256":"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000","urls":["bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61","dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation and verifies whether it's valid."},"isPayable()":{"notice":"Checks if the resolver can be sent ETH."},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes multiple attestations and verifies whether they are valid."},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes revocation of multiple attestation and verifies they can be revoked."},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation revocation and verifies if it can be revoked."}},"notice":"The interface of an optional schema resolver."},"devdoc":{"version":1,"kind":"dev","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The new attestation."},"returns":{"_0":"Whether the attestation is valid."}},"isPayable()":{"returns":{"_0":"Whether the resolver supports ETH transfers."}},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The new attestations.","values":"Explicit ETH amounts which were sent with each attestation."},"returns":{"_0":"Whether all the attestations are valid."}},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The existing attestations to be revoked.","values":"Explicit ETH amounts which were sent with each revocation."},"returns":{"_0":"Whether the attestations can be revoked."}},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The existing attestation to be revoked."},"returns":{"_0":"Whether the attestation can be revoked."}}},"title":"ISchemaResolver"},"ast":{"absolutePath":"src/EAS/resolver/ISchemaResolver.sol","id":4158,"exportedSymbols":{"Attestation":[1207],"ISchemaResolver":[4157]},"nodeType":"SourceUnit","src":"32:1829:12","nodes":[{"id":4103,"nodeType":"PragmaDirective","src":"32:23:12","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":4105,"nodeType":"ImportDirective","src":"57:44:12","nodes":[],"absolutePath":"src/EAS/Common.sol","file":"../Common.sol","nameLocation":"-1:-1:-1","scope":4158,"sourceUnit":1336,"symbolAliases":[{"foreign":{"id":4104,"name":"Attestation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1207,"src":"66:11:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4157,"nodeType":"ContractDefinition","src":"188:1672:12","nodes":[{"id":4112,"nodeType":"FunctionDefinition","src":"337:50:12","nodes":[],"documentation":{"id":4107,"nodeType":"StructuredDocumentation","src":"220:112:12","text":"@notice Checks if the resolver can be sent ETH.\n @return Whether the resolver supports ETH transfers."},"functionSelector":"ce46e046","implemented":false,"kind":"function","modifiers":[],"name":"isPayable","nameLocation":"346:9:12","parameters":{"id":4108,"nodeType":"ParameterList","parameters":[],"src":"355:2:12"},"returnParameters":{"id":4111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4112,"src":"381:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4109,"name":"bool","nodeType":"ElementaryTypeName","src":"381:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"380:6:12"},"scope":4157,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":4121,"nodeType":"FunctionDefinition","src":"565:82:12","nodes":[],"documentation":{"id":4113,"nodeType":"StructuredDocumentation","src":"393:167:12","text":"@notice Processes an attestation and verifies whether it's valid.\n @param attestation The new attestation.\n @return Whether the attestation is valid."},"functionSelector":"e60c3505","implemented":false,"kind":"function","modifiers":[],"name":"attest","nameLocation":"574:6:12","parameters":{"id":4117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4116,"mutability":"mutable","name":"attestation","nameLocation":"602:11:12","nodeType":"VariableDeclaration","scope":4121,"src":"581:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Attestation_$1207_calldata_ptr","typeString":"struct Attestation"},"typeName":{"id":4115,"nodeType":"UserDefinedTypeName","pathNode":{"id":4114,"name":"Attestation","nameLocations":["581:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1207,"src":"581:11:12"},"referencedDeclaration":1207,"src":"581:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_Attestation_$1207_storage_ptr","typeString":"struct Attestation"}},"visibility":"internal"}],"src":"580:34:12"},"returnParameters":{"id":4120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4121,"src":"641:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4118,"name":"bool","nodeType":"ElementaryTypeName","src":"641:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"640:6:12"},"scope":4157,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":4134,"nodeType":"FunctionDefinition","src":"926:163:12","nodes":[],"documentation":{"id":4122,"nodeType":"StructuredDocumentation","src":"653:268:12","text":"@notice Processes multiple attestations and verifies whether they are valid.\n @param attestations The new attestations.\n @param values Explicit ETH amounts which were sent with each attestation.\n @return Whether all the attestations are valid."},"functionSelector":"91db0b7e","implemented":false,"kind":"function","modifiers":[],"name":"multiAttest","nameLocation":"935:11:12","parameters":{"id":4130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4126,"mutability":"mutable","name":"attestations","nameLocation":"979:12:12","nodeType":"VariableDeclaration","scope":4134,"src":"956:35:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Attestation_$1207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Attestation[]"},"typeName":{"baseType":{"id":4124,"nodeType":"UserDefinedTypeName","pathNode":{"id":4123,"name":"Attestation","nameLocations":["956:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1207,"src":"956:11:12"},"referencedDeclaration":1207,"src":"956:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_Attestation_$1207_storage_ptr","typeString":"struct Attestation"}},"id":4125,"nodeType":"ArrayTypeName","src":"956:13:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Attestation_$1207_storage_$dyn_storage_ptr","typeString":"struct Attestation[]"}},"visibility":"internal"},{"constant":false,"id":4129,"mutability":"mutable","name":"values","nameLocation":"1020:6:12","nodeType":"VariableDeclaration","scope":4134,"src":"1001:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4127,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4128,"nodeType":"ArrayTypeName","src":"1001:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"946:86:12"},"returnParameters":{"id":4133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4132,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4134,"src":"1083:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4131,"name":"bool","nodeType":"ElementaryTypeName","src":"1083:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1082:6:12"},"scope":4157,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":4143,"nodeType":"FunctionDefinition","src":"1305:82:12","nodes":[],"documentation":{"id":4135,"nodeType":"StructuredDocumentation","src":"1095:205:12","text":"@notice Processes an attestation revocation and verifies if it can be revoked.\n @param attestation The existing attestation to be revoked.\n @return Whether the attestation can be revoked."},"functionSelector":"e49617e1","implemented":false,"kind":"function","modifiers":[],"name":"revoke","nameLocation":"1314:6:12","parameters":{"id":4139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4138,"mutability":"mutable","name":"attestation","nameLocation":"1342:11:12","nodeType":"VariableDeclaration","scope":4143,"src":"1321:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Attestation_$1207_calldata_ptr","typeString":"struct Attestation"},"typeName":{"id":4137,"nodeType":"UserDefinedTypeName","pathNode":{"id":4136,"name":"Attestation","nameLocations":["1321:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1207,"src":"1321:11:12"},"referencedDeclaration":1207,"src":"1321:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_Attestation_$1207_storage_ptr","typeString":"struct Attestation"}},"visibility":"internal"}],"src":"1320:34:12"},"returnParameters":{"id":4142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4143,"src":"1381:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4140,"name":"bool","nodeType":"ElementaryTypeName","src":"1381:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1380:6:12"},"scope":4157,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":4156,"nodeType":"FunctionDefinition","src":"1695:163:12","nodes":[],"documentation":{"id":4144,"nodeType":"StructuredDocumentation","src":"1393:297:12","text":"@notice Processes revocation of multiple attestation and verifies they can be revoked.\n @param attestations The existing attestations to be revoked.\n @param values Explicit ETH amounts which were sent with each revocation.\n @return Whether the attestations can be revoked."},"functionSelector":"88e5b2d9","implemented":false,"kind":"function","modifiers":[],"name":"multiRevoke","nameLocation":"1704:11:12","parameters":{"id":4152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4148,"mutability":"mutable","name":"attestations","nameLocation":"1748:12:12","nodeType":"VariableDeclaration","scope":4156,"src":"1725:35:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Attestation_$1207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Attestation[]"},"typeName":{"baseType":{"id":4146,"nodeType":"UserDefinedTypeName","pathNode":{"id":4145,"name":"Attestation","nameLocations":["1725:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1207,"src":"1725:11:12"},"referencedDeclaration":1207,"src":"1725:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_Attestation_$1207_storage_ptr","typeString":"struct Attestation"}},"id":4147,"nodeType":"ArrayTypeName","src":"1725:13:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Attestation_$1207_storage_$dyn_storage_ptr","typeString":"struct Attestation[]"}},"visibility":"internal"},{"constant":false,"id":4151,"mutability":"mutable","name":"values","nameLocation":"1789:6:12","nodeType":"VariableDeclaration","scope":4156,"src":"1770:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4149,"name":"uint256","nodeType":"ElementaryTypeName","src":"1770:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4150,"nodeType":"ArrayTypeName","src":"1770:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1715:86:12"},"returnParameters":{"id":4155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4156,"src":"1852:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4153,"name":"bool","nodeType":"ElementaryTypeName","src":"1852:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1851:6:12"},"scope":4157,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISchemaResolver","contractDependencies":[],"contractKind":"interface","documentation":{"id":4106,"nodeType":"StructuredDocumentation","src":"103:85:12","text":"@title ISchemaResolver\n @notice The interface of an optional schema resolver."},"fullyImplemented":false,"linearizedBaseContracts":[4157],"name":"ISchemaResolver","nameLocation":"198:15:12","scope":4158,"usedErrors":[]}],"license":"MIT"},"id":12}
{"abi":[{"type":"function","name":"attest","inputs":[{"name":"attestation","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"isPayable","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"multiAttest","inputs":[{"name":"attestations","type":"tuple[]","internalType":"struct Attestation[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"multiRevoke","inputs":[{"name":"attestations","type":"tuple[]","internalType":"struct Attestation[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"revoke","inputs":[{"name":"attestation","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":"e60c3505","isPayable()":"ce46e046","multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":"91db0b7e","multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":"88e5b2d9","revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":"e49617e1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"attest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPayable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation[]\",\"name\":\"attestations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"multiAttest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation[]\",\"name\":\"attestations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"multiRevoke\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"revoke\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"params\":{\"attestation\":\"The new attestation.\"},\"returns\":{\"_0\":\"Whether the attestation is valid.\"}},\"isPayable()\":{\"returns\":{\"_0\":\"Whether the resolver supports ETH transfers.\"}},\"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"params\":{\"attestations\":\"The new attestations.\",\"values\":\"Explicit ETH amounts which were sent with each attestation.\"},\"returns\":{\"_0\":\"Whether all the attestations are valid.\"}},\"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"params\":{\"attestations\":\"The existing attestations to be revoked.\",\"values\":\"Explicit ETH amounts which were sent with each revocation.\"},\"returns\":{\"_0\":\"Whether the attestations can be revoked.\"}},\"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"params\":{\"attestation\":\"The existing attestation to be revoked.\"},\"returns\":{\"_0\":\"Whether the attestation can be revoked.\"}}},\"title\":\"ISchemaResolver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"notice\":\"Processes an attestation and verifies whether it's valid.\"},\"isPayable()\":{\"notice\":\"Checks if the resolver can be sent ETH.\"},\"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"notice\":\"Processes multiple attestations and verifies whether they are valid.\"},\"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"notice\":\"Processes revocation of multiple attestation and verifies they can be revoked.\"},\"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"notice\":\"Processes an attestation revocation and verifies if it can be revoked.\"}},\"notice\":\"The interface of an optional schema resolver.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/EAS/resolver/ISchemaResolver.sol\":\"ISchemaResolver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/EAS/Common.sol\":{\"keccak256\":\"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe\",\"dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd\"]},\"src/EAS/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61\",\"dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Attestation","name":"attestation","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"attest","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPayable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation[]","name":"attestations","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiAttest","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation[]","name":"attestations","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiRevoke","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation","name":"attestation","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"revoke","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The new attestation."},"returns":{"_0":"Whether the attestation is valid."}},"isPayable()":{"returns":{"_0":"Whether the resolver supports ETH transfers."}},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The new attestations.","values":"Explicit ETH amounts which were sent with each attestation."},"returns":{"_0":"Whether all the attestations are valid."}},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The existing attestations to be revoked.","values":"Explicit ETH amounts which were sent with each revocation."},"returns":{"_0":"Whether the attestations can be revoked."}},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The existing attestation to be revoked."},"returns":{"_0":"Whether the attestation can be revoked."}}},"version":1},"userdoc":{"kind":"user","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation and verifies whether it's valid."},"isPayable()":{"notice":"Checks if the resolver can be sent ETH."},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes multiple attestations and verifies whether they are valid."},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes revocation of multiple attestation and verifies they can be revoked."},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation revocation and verifies if it can be revoked."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/EAS/resolver/ISchemaResolver.sol":"ISchemaResolver"},"evmVersion":"paris","libraries":{}},"sources":{"src/EAS/Common.sol":{"keccak256":"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309","urls":["bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe","dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd"],"license":"MIT"},"src/EAS/resolver/ISchemaResolver.sol":{"keccak256":"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000","urls":["bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61","dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation and verifies whether it's valid."},"isPayable()":{"notice":"Checks if the resolver can be sent ETH."},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes multiple attestations and verifies whether they are valid."},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes revocation of multiple attestation and verifies they can be revoked."},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation revocation and verifies if it can be revoked."}},"notice":"The interface of an optional schema resolver."},"devdoc":{"version":1,"kind":"dev","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The new attestation."},"returns":{"_0":"Whether the attestation is valid."}},"isPayable()":{"returns":{"_0":"Whether the resolver supports ETH transfers."}},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The new attestations.","values":"Explicit ETH amounts which were sent with each attestation."},"returns":{"_0":"Whether all the attestations are valid."}},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The existing attestations to be revoked.","values":"Explicit ETH amounts which were sent with each revocation."},"returns":{"_0":"Whether the attestations can be revoked."}},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The existing attestation to be revoked."},"returns":{"_0":"Whether the attestation can be revoked."}}},"title":"ISchemaResolver"},"id":12}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"ISemver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling.\"}},\"notice\":\"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/ISemver.sol\":\"ISemver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/ISemver.sol":"ISemver"},"evmVersion":"london","libraries":{}},"sources":{"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"notice":"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning."},"devdoc":{"version":1,"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"title":"ISemver"},"ast":{"absolutePath":"src/universal/ISemver.sol","id":99150,"exportedSymbols":{"ISemver":[99149]},"nodeType":"SourceUnit","src":"32:487:212","nodes":[{"id":99141,"nodeType":"PragmaDirective","src":"32:23:212","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":99149,"nodeType":"ContractDefinition","src":"198:320:212","nodes":[{"id":99148,"nodeType":"FunctionDefinition","src":"459:57:212","nodes":[],"documentation":{"id":99143,"nodeType":"StructuredDocumentation","src":"222:232:212","text":"@notice Getter for the semantic version of the contract. This is not\n meant to be used onchain but instead meant to be used by offchain\n tooling.\n @return Semver contract version as a string."},"functionSelector":"54fd4d50","implemented":false,"kind":"function","modifiers":[],"name":"version","nameLocation":"468:7:212","parameters":{"id":99144,"nodeType":"ParameterList","parameters":[],"src":"475:2:212"},"returnParameters":{"id":99147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":99148,"src":"501:13:212","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":99145,"name":"string","nodeType":"ElementaryTypeName","src":"501:6:212","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"500:15:212"},"scope":99149,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISemver","contractDependencies":[],"contractKind":"interface","documentation":{"id":99142,"nodeType":"StructuredDocumentation","src":"57:141:212","text":"@title ISemver\n @notice ISemver is a simple contract for ensuring that contracts are\n versioned using semantic versioning."},"fullyImplemented":false,"linearizedBaseContracts":[99149],"name":"ISemver","nameLocation":"208:7:212","scope":99150,"usedErrors":[]}],"license":"MIT"},"id":212}
{"abi":[{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"ISemver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling.\"}},\"notice\":\"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/ISemver.sol\":\"ISemver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/ISemver.sol":"ISemver"},"evmVersion":"london","libraries":{}},"sources":{"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"notice":"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning."},"devdoc":{"version":1,"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"title":"ISemver"},"id":223}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"ISemver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling.\"}},\"notice\":\"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/ISemver.sol\":\"ISemver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/ISemver.sol":"ISemver"},"evmVersion":"paris","libraries":{}},"sources":{"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"notice":"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning."},"devdoc":{"version":1,"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"title":"ISemver"},"ast":{"absolutePath":"src/universal/ISemver.sol","id":4617,"exportedSymbols":{"ISemver":[4616]},"nodeType":"SourceUnit","src":"32:487:15","nodes":[{"id":4608,"nodeType":"PragmaDirective","src":"32:23:15","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":4616,"nodeType":"ContractDefinition","src":"198:320:15","nodes":[{"id":4615,"nodeType":"FunctionDefinition","src":"459:57:15","nodes":[],"documentation":{"id":4610,"nodeType":"StructuredDocumentation","src":"222:232:15","text":"@notice Getter for the semantic version of the contract. This is not\n meant to be used onchain but instead meant to be used by offchain\n tooling.\n @return Semver contract version as a string."},"functionSelector":"54fd4d50","implemented":false,"kind":"function","modifiers":[],"name":"version","nameLocation":"468:7:15","parameters":{"id":4611,"nodeType":"ParameterList","parameters":[],"src":"475:2:15"},"returnParameters":{"id":4614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4615,"src":"501:13:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4612,"name":"string","nodeType":"ElementaryTypeName","src":"501:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"500:15:15"},"scope":4616,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISemver","contractDependencies":[],"contractKind":"interface","documentation":{"id":4609,"nodeType":"StructuredDocumentation","src":"57:141:15","text":"@title ISemver\n @notice ISemver is a simple contract for ensuring that contracts are\n versioned using semantic versioning."},"fullyImplemented":false,"linearizedBaseContracts":[4616],"name":"ISemver","nameLocation":"208:7:15","scope":4617,"usedErrors":[]}],"license":"MIT"},"id":15}
{"abi":[{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"ISemver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling.\"}},\"notice\":\"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/ISemver.sol\":\"ISemver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/ISemver.sol":"ISemver"},"evmVersion":"paris","libraries":{}},"sources":{"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Getter for the semantic version of the contract. This is not meant to be used onchain but instead meant to be used by offchain tooling."}},"notice":"ISemver is a simple contract for ensuring that contracts are versioned using semantic versioning."},"devdoc":{"version":1,"kind":"dev","methods":{"version()":{"returns":{"_0":"Semver contract version as a string."}}},"title":"ISemver"},"id":15}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"isValidSignature","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isValidSignature(bytes,bytes)":"20c13b0b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes,bytes)\":{\"params\":{\"_data\":\"Arbitrary length data signed on the behalf of address(this).\",\"_signature\":\"Signature byte array associated with _data. MUST return the bytes4 magic value 0x20c13b0b when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isValidSignature(bytes,bytes)\":{\"notice\":\"Legacy EIP1271 method to validate a signature.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol\":\"ISignatureValidator\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol\":{\"keccak256\":\"0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25\",\"dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"isValidSignature(bytes,bytes)":{"params":{"_data":"Arbitrary length data signed on the behalf of address(this).","_signature":"Signature byte array associated with _data. MUST return the bytes4 magic value 0x20c13b0b when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls"}}},"version":1},"userdoc":{"kind":"user","methods":{"isValidSignature(bytes,bytes)":{"notice":"Legacy EIP1271 method to validate a signature."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol":"ISignatureValidator"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol":{"keccak256":"0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457","urls":["bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25","dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"isValidSignature(bytes,bytes)":{"notice":"Legacy EIP1271 method to validate a signature."}}},"devdoc":{"version":1,"kind":"dev","methods":{"isValidSignature(bytes,bytes)":{"params":{"_data":"Arbitrary length data signed on the behalf of address(this).","_signature":"Signature byte array associated with _data. MUST return the bytes4 magic value 0x20c13b0b when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls"}}}},"ast":{"absolutePath":"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol","id":58293,"exportedSymbols":{"ISignatureValidator":[58292],"ISignatureValidatorConstants":[58279]},"nodeType":"SourceUnit","src":"42:819:89","nodes":[{"id":58275,"nodeType":"PragmaDirective","src":"42:31:89","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58279,"nodeType":"ContractDefinition","src":"75:161:89","nodes":[{"id":58278,"nodeType":"VariableDeclaration","src":"176:57:89","nodes":[],"constant":true,"mutability":"constant","name":"EIP1271_MAGIC_VALUE","nameLocation":"201:19:89","scope":58279,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":58276,"name":"bytes4","nodeType":"ElementaryTypeName","src":"176:6:89","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30783230633133623062","id":58277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"223:10:89","typeDescriptions":{"typeIdentifier":"t_rational_549534475_by_1","typeString":"int_const 549534475"},"value":"0x20c13b0b"},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"ISignatureValidatorConstants","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[58279],"name":"ISignatureValidatorConstants","nameLocation":"84:28:89","scope":58293,"usedErrors":[]},{"id":58292,"nodeType":"ContractDefinition","src":"238:622:89","nodes":[{"id":58291,"nodeType":"FunctionDefinition","src":"750:108:89","nodes":[],"documentation":{"id":58282,"nodeType":"StructuredDocumentation","src":"314:431:89","text":" @notice Legacy EIP1271 method to validate a signature.\n @param _data Arbitrary length data signed on the behalf of address(this).\n @param _signature Signature byte array associated with _data.\n MUST return the bytes4 magic value 0x20c13b0b when function passes.\n MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n MUST allow external calls"},"functionSelector":"20c13b0b","implemented":false,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"759:16:89","parameters":{"id":58287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58284,"mutability":"mutable","name":"_data","nameLocation":"789:5:89","nodeType":"VariableDeclaration","scope":58291,"src":"776:18:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58283,"name":"bytes","nodeType":"ElementaryTypeName","src":"776:5:89","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":58286,"mutability":"mutable","name":"_signature","nameLocation":"809:10:89","nodeType":"VariableDeclaration","scope":58291,"src":"796:23:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58285,"name":"bytes","nodeType":"ElementaryTypeName","src":"796:5:89","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"775:45:89"},"returnParameters":{"id":58290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58291,"src":"850:6:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":58288,"name":"bytes4","nodeType":"ElementaryTypeName","src":"850:6:89","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"849:8:89"},"scope":58292,"stateMutability":"view","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":58280,"name":"ISignatureValidatorConstants","nodeType":"IdentifierPath","referencedDeclaration":58279,"src":"279:28:89"},"id":58281,"nodeType":"InheritanceSpecifier","src":"279:28:89"}],"canonicalName":"ISignatureValidator","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"linearizedBaseContracts":[58292,58279],"name":"ISignatureValidator","nameLocation":"256:19:89","scope":58293,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":89}
{"abi":[{"type":"function","name":"isValidSignature","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isValidSignature(bytes,bytes)":"20c13b0b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes,bytes)\":{\"params\":{\"_data\":\"Arbitrary length data signed on the behalf of address(this).\",\"_signature\":\"Signature byte array associated with _data. MUST return the bytes4 magic value 0x20c13b0b when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isValidSignature(bytes,bytes)\":{\"notice\":\"Legacy EIP1271 method to validate a signature.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol\":\"ISignatureValidator\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol\":{\"keccak256\":\"0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25\",\"dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"isValidSignature(bytes,bytes)":{"params":{"_data":"Arbitrary length data signed on the behalf of address(this).","_signature":"Signature byte array associated with _data. MUST return the bytes4 magic value 0x20c13b0b when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls"}}},"version":1},"userdoc":{"kind":"user","methods":{"isValidSignature(bytes,bytes)":{"notice":"Legacy EIP1271 method to validate a signature."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol":"ISignatureValidator"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol":{"keccak256":"0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457","urls":["bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25","dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"isValidSignature(bytes,bytes)":{"notice":"Legacy EIP1271 method to validate a signature."}}},"devdoc":{"version":1,"kind":"dev","methods":{"isValidSignature(bytes,bytes)":{"params":{"_data":"Arbitrary length data signed on the behalf of address(this).","_signature":"Signature byte array associated with _data. MUST return the bytes4 magic value 0x20c13b0b when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls"}}}},"id":89}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50601680601d6000396000f3fe6080604052600080fdfea164736f6c634300080f000a","sourceMap":"75:161:89:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea164736f6c634300080f000a","sourceMap":"75:161:89:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol\":\"ISignatureValidatorConstants\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol\":{\"keccak256\":\"0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25\",\"dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol":"ISignatureValidatorConstants"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol":{"keccak256":"0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457","urls":["bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25","dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol","id":58293,"exportedSymbols":{"ISignatureValidator":[58292],"ISignatureValidatorConstants":[58279]},"nodeType":"SourceUnit","src":"42:819:89","nodes":[{"id":58275,"nodeType":"PragmaDirective","src":"42:31:89","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58279,"nodeType":"ContractDefinition","src":"75:161:89","nodes":[{"id":58278,"nodeType":"VariableDeclaration","src":"176:57:89","nodes":[],"constant":true,"mutability":"constant","name":"EIP1271_MAGIC_VALUE","nameLocation":"201:19:89","scope":58279,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":58276,"name":"bytes4","nodeType":"ElementaryTypeName","src":"176:6:89","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30783230633133623062","id":58277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"223:10:89","typeDescriptions":{"typeIdentifier":"t_rational_549534475_by_1","typeString":"int_const 549534475"},"value":"0x20c13b0b"},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"ISignatureValidatorConstants","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[58279],"name":"ISignatureValidatorConstants","nameLocation":"84:28:89","scope":58293,"usedErrors":[]},{"id":58292,"nodeType":"ContractDefinition","src":"238:622:89","nodes":[{"id":58291,"nodeType":"FunctionDefinition","src":"750:108:89","nodes":[],"documentation":{"id":58282,"nodeType":"StructuredDocumentation","src":"314:431:89","text":" @notice Legacy EIP1271 method to validate a signature.\n @param _data Arbitrary length data signed on the behalf of address(this).\n @param _signature Signature byte array associated with _data.\n MUST return the bytes4 magic value 0x20c13b0b when function passes.\n MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n MUST allow external calls"},"functionSelector":"20c13b0b","implemented":false,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"759:16:89","parameters":{"id":58287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58284,"mutability":"mutable","name":"_data","nameLocation":"789:5:89","nodeType":"VariableDeclaration","scope":58291,"src":"776:18:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58283,"name":"bytes","nodeType":"ElementaryTypeName","src":"776:5:89","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":58286,"mutability":"mutable","name":"_signature","nameLocation":"809:10:89","nodeType":"VariableDeclaration","scope":58291,"src":"796:23:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58285,"name":"bytes","nodeType":"ElementaryTypeName","src":"796:5:89","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"775:45:89"},"returnParameters":{"id":58290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58291,"src":"850:6:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":58288,"name":"bytes4","nodeType":"ElementaryTypeName","src":"850:6:89","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"849:8:89"},"scope":58292,"stateMutability":"view","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":58280,"name":"ISignatureValidatorConstants","nodeType":"IdentifierPath","referencedDeclaration":58279,"src":"279:28:89"},"id":58281,"nodeType":"InheritanceSpecifier","src":"279:28:89"}],"canonicalName":"ISignatureValidator","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"linearizedBaseContracts":[58292,58279],"name":"ISignatureValidator","nameLocation":"256:19:89","scope":58293,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":89}
{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50601680601d6000396000f3fe6080604052600080fdfea164736f6c634300080f000a","sourceMap":"75:161:89:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea164736f6c634300080f000a","sourceMap":"75:161:89:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol\":\"ISignatureValidatorConstants\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol\":{\"keccak256\":\"0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25\",\"dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol":"ISignatureValidatorConstants"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol":{"keccak256":"0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457","urls":["bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25","dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":89}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batcherHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"gasLimit","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"overhead","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resourceConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ResourceMetering.ResourceConfig","components":[{"name":"maxResourceLimit","type":"uint32","internalType":"uint32"},{"name":"elasticityMultiplier","type":"uint8","internalType":"uint8"},{"name":"baseFeeMaxChangeDenominator","type":"uint8","internalType":"uint8"},{"name":"minimumBaseFee","type":"uint32","internalType":"uint32"},{"name":"systemTxMaxGas","type":"uint32","internalType":"uint32"},{"name":"maximumBaseFee","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"scalar","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"unsafeBlockSigner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"VERSION()":"ffa1ad74","batcherHash()":"e81b2c6d","gasLimit()":"f68016b7","overhead()":"0c18c162","owner()":"8da5cb5b","resourceConfig()":"cc731b02","scalar()":"f45e65d8","unsafeBlockSigner()":"1fd19ee1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batcherHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasLimit\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"overhead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resourceConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxResourceLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"elasticityMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minimumBaseFee\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"systemTxMaxGas\",\"type\":\"uint32\"},{\"internalType\":\"uint128\",\"name\":\"maximumBaseFee\",\"type\":\"uint128\"}],\"internalType\":\"struct ResourceMetering.ResourceConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scalar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unsafeBlockSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ISystemConfigV0\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimal interface of the Legacy SystemConfig containing only getters. Based on https://github.com/ethereum-optimism/optimism/blob/f54a2234f2f350795552011f35f704a3feb56a08/packages/contracts-bedrock/src/L1/SystemConfig.sol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/interfaces/ISystemConfigV0.sol\":\"ISystemConfigV0\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"scripts/interfaces/ISystemConfigV0.sol\":{\"keccak256\":\"0x0e4a896948afa3ab38d0ed12726b99d6116fbcb8f9327ff63346c4cb4f9d1adf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98e87a390b8e2963720cd4b02a8e4a15420997c1fcf0a03f5e9e3da296435cff\",\"dweb:/ipfs/QmQyMRyPfQXtVeJVCEY6YbVYXUfne8yuQPbYWyRQCbrLiY\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145\",\"dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"VERSION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"batcherHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gasLimit","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"overhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resourceConfig","outputs":[{"internalType":"struct ResourceMetering.ResourceConfig","name":"","type":"tuple","components":[{"internalType":"uint32","name":"maxResourceLimit","type":"uint32"},{"internalType":"uint8","name":"elasticityMultiplier","type":"uint8"},{"internalType":"uint8","name":"baseFeeMaxChangeDenominator","type":"uint8"},{"internalType":"uint32","name":"minimumBaseFee","type":"uint32"},{"internalType":"uint32","name":"systemTxMaxGas","type":"uint32"},{"internalType":"uint128","name":"maximumBaseFee","type":"uint128"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"scalar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"unsafeBlockSigner","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/interfaces/ISystemConfigV0.sol":"ISystemConfigV0"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"scripts/interfaces/ISystemConfigV0.sol":{"keccak256":"0x0e4a896948afa3ab38d0ed12726b99d6116fbcb8f9327ff63346c4cb4f9d1adf","urls":["bzz-raw://98e87a390b8e2963720cd4b02a8e4a15420997c1fcf0a03f5e9e3da296435cff","dweb:/ipfs/QmQyMRyPfQXtVeJVCEY6YbVYXUfne8yuQPbYWyRQCbrLiY"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330","urls":["bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145","dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Minimal interface of the Legacy SystemConfig containing only getters. Based on https://github.com/ethereum-optimism/optimism/blob/f54a2234f2f350795552011f35f704a3feb56a08/packages/contracts-bedrock/src/L1/SystemConfig.sol"},"devdoc":{"version":1,"kind":"dev","title":"ISystemConfigV0"},"ast":{"absolutePath":"scripts/interfaces/ISystemConfigV0.sol","id":75757,"exportedSymbols":{"ISystemConfigV0":[75756],"ResourceMetering":[80165]},"nodeType":"SourceUnit","src":"32:895:118","nodes":[{"id":75711,"nodeType":"PragmaDirective","src":"32:23:118","nodes":[],"literals":["solidity","0.8",".15"]},{"id":75713,"nodeType":"ImportDirective","src":"57:63:118","nodes":[],"absolutePath":"src/L1/ResourceMetering.sol","file":"src/L1/ResourceMetering.sol","nameLocation":"-1:-1:-1","scope":75757,"sourceUnit":80166,"symbolAliases":[{"foreign":{"id":75712,"name":"ResourceMetering","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80165,"src":"66:16:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75756,"nodeType":"ContractDefinition","src":"399:527:118","nodes":[{"id":75719,"nodeType":"FunctionDefinition","src":"431:49:118","nodes":[],"functionSelector":"8da5cb5b","implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"440:5:118","parameters":{"id":75715,"nodeType":"ParameterList","parameters":[],"src":"445:2:118"},"returnParameters":{"id":75718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75719,"src":"471:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75716,"name":"address","nodeType":"ElementaryTypeName","src":"471:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"470:9:118"},"scope":75756,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75724,"nodeType":"FunctionDefinition","src":"485:51:118","nodes":[],"functionSelector":"ffa1ad74","implemented":false,"kind":"function","modifiers":[],"name":"VERSION","nameLocation":"494:7:118","parameters":{"id":75720,"nodeType":"ParameterList","parameters":[],"src":"501:2:118"},"returnParameters":{"id":75723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75724,"src":"527:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75721,"name":"uint256","nodeType":"ElementaryTypeName","src":"527:7:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"526:9:118"},"scope":75756,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75729,"nodeType":"FunctionDefinition","src":"541:52:118","nodes":[],"functionSelector":"0c18c162","implemented":false,"kind":"function","modifiers":[],"name":"overhead","nameLocation":"550:8:118","parameters":{"id":75725,"nodeType":"ParameterList","parameters":[],"src":"558:2:118"},"returnParameters":{"id":75728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75729,"src":"584:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75726,"name":"uint256","nodeType":"ElementaryTypeName","src":"584:7:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"583:9:118"},"scope":75756,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75734,"nodeType":"FunctionDefinition","src":"598:50:118","nodes":[],"functionSelector":"f45e65d8","implemented":false,"kind":"function","modifiers":[],"name":"scalar","nameLocation":"607:6:118","parameters":{"id":75730,"nodeType":"ParameterList","parameters":[],"src":"613:2:118"},"returnParameters":{"id":75733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75734,"src":"639:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75731,"name":"uint256","nodeType":"ElementaryTypeName","src":"639:7:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"638:9:118"},"scope":75756,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75739,"nodeType":"FunctionDefinition","src":"653:55:118","nodes":[],"functionSelector":"e81b2c6d","implemented":false,"kind":"function","modifiers":[],"name":"batcherHash","nameLocation":"662:11:118","parameters":{"id":75735,"nodeType":"ParameterList","parameters":[],"src":"673:2:118"},"returnParameters":{"id":75738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75737,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75739,"src":"699:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75736,"name":"bytes32","nodeType":"ElementaryTypeName","src":"699:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"698:9:118"},"scope":75756,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75744,"nodeType":"FunctionDefinition","src":"713:51:118","nodes":[],"functionSelector":"f68016b7","implemented":false,"kind":"function","modifiers":[],"name":"gasLimit","nameLocation":"722:8:118","parameters":{"id":75740,"nodeType":"ParameterList","parameters":[],"src":"730:2:118"},"returnParameters":{"id":75743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75744,"src":"756:6:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75741,"name":"uint64","nodeType":"ElementaryTypeName","src":"756:6:118","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"755:8:118"},"scope":75756,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75750,"nodeType":"FunctionDefinition","src":"769:89:118","nodes":[],"functionSelector":"cc731b02","implemented":false,"kind":"function","modifiers":[],"name":"resourceConfig","nameLocation":"778:14:118","parameters":{"id":75745,"nodeType":"ParameterList","parameters":[],"src":"792:2:118"},"returnParameters":{"id":75749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75750,"src":"818:38:118","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$79843_memory_ptr","typeString":"struct ResourceMetering.ResourceConfig"},"typeName":{"id":75747,"nodeType":"UserDefinedTypeName","pathNode":{"id":75746,"name":"ResourceMetering.ResourceConfig","nodeType":"IdentifierPath","referencedDeclaration":79843,"src":"818:31:118"},"referencedDeclaration":79843,"src":"818:31:118","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceConfig_$79843_storage_ptr","typeString":"struct ResourceMetering.ResourceConfig"}},"visibility":"internal"}],"src":"817:40:118"},"scope":75756,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75755,"nodeType":"FunctionDefinition","src":"863:61:118","nodes":[],"functionSelector":"1fd19ee1","implemented":false,"kind":"function","modifiers":[],"name":"unsafeBlockSigner","nameLocation":"872:17:118","parameters":{"id":75751,"nodeType":"ParameterList","parameters":[],"src":"889:2:118"},"returnParameters":{"id":75754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75753,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75755,"src":"915:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75752,"name":"address","nodeType":"ElementaryTypeName","src":"915:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"914:9:118"},"scope":75756,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISystemConfigV0","contractDependencies":[],"contractKind":"interface","documentation":{"id":75714,"nodeType":"StructuredDocumentation","src":"122:277:118","text":"@title ISystemConfigV0\n @notice Minimal interface of the Legacy SystemConfig containing only getters.\n Based on\n https://github.com/ethereum-optimism/optimism/blob/f54a2234f2f350795552011f35f704a3feb56a08/packages/contracts-bedrock/src/L1/SystemConfig.sol"},"fullyImplemented":false,"linearizedBaseContracts":[75756],"name":"ISystemConfigV0","nameLocation":"409:15:118","scope":75757,"usedErrors":[]}],"license":"MIT"},"id":118}
{"abi":[{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batcherHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"gasLimit","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"overhead","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resourceConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ResourceMetering.ResourceConfig","components":[{"name":"maxResourceLimit","type":"uint32","internalType":"uint32"},{"name":"elasticityMultiplier","type":"uint8","internalType":"uint8"},{"name":"baseFeeMaxChangeDenominator","type":"uint8","internalType":"uint8"},{"name":"minimumBaseFee","type":"uint32","internalType":"uint32"},{"name":"systemTxMaxGas","type":"uint32","internalType":"uint32"},{"name":"maximumBaseFee","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"scalar","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"unsafeBlockSigner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"VERSION()":"ffa1ad74","batcherHash()":"e81b2c6d","gasLimit()":"f68016b7","overhead()":"0c18c162","owner()":"8da5cb5b","resourceConfig()":"cc731b02","scalar()":"f45e65d8","unsafeBlockSigner()":"1fd19ee1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batcherHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasLimit\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"overhead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resourceConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxResourceLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"elasticityMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minimumBaseFee\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"systemTxMaxGas\",\"type\":\"uint32\"},{\"internalType\":\"uint128\",\"name\":\"maximumBaseFee\",\"type\":\"uint128\"}],\"internalType\":\"struct ResourceMetering.ResourceConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scalar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unsafeBlockSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ISystemConfigV0\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimal interface of the Legacy SystemConfig containing only getters. Based on https://github.com/ethereum-optimism/optimism/blob/f54a2234f2f350795552011f35f704a3feb56a08/packages/contracts-bedrock/src/L1/SystemConfig.sol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/interfaces/ISystemConfigV0.sol\":\"ISystemConfigV0\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"scripts/interfaces/ISystemConfigV0.sol\":{\"keccak256\":\"0x0e4a896948afa3ab38d0ed12726b99d6116fbcb8f9327ff63346c4cb4f9d1adf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98e87a390b8e2963720cd4b02a8e4a15420997c1fcf0a03f5e9e3da296435cff\",\"dweb:/ipfs/QmQyMRyPfQXtVeJVCEY6YbVYXUfne8yuQPbYWyRQCbrLiY\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"VERSION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"batcherHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gasLimit","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"overhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resourceConfig","outputs":[{"internalType":"struct ResourceMetering.ResourceConfig","name":"","type":"tuple","components":[{"internalType":"uint32","name":"maxResourceLimit","type":"uint32"},{"internalType":"uint8","name":"elasticityMultiplier","type":"uint8"},{"internalType":"uint8","name":"baseFeeMaxChangeDenominator","type":"uint8"},{"internalType":"uint32","name":"minimumBaseFee","type":"uint32"},{"internalType":"uint32","name":"systemTxMaxGas","type":"uint32"},{"internalType":"uint128","name":"maximumBaseFee","type":"uint128"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"scalar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"unsafeBlockSigner","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/interfaces/ISystemConfigV0.sol":"ISystemConfigV0"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"scripts/interfaces/ISystemConfigV0.sol":{"keccak256":"0x0e4a896948afa3ab38d0ed12726b99d6116fbcb8f9327ff63346c4cb4f9d1adf","urls":["bzz-raw://98e87a390b8e2963720cd4b02a8e4a15420997c1fcf0a03f5e9e3da296435cff","dweb:/ipfs/QmQyMRyPfQXtVeJVCEY6YbVYXUfne8yuQPbYWyRQCbrLiY"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Minimal interface of the Legacy SystemConfig containing only getters. Based on https://github.com/ethereum-optimism/optimism/blob/f54a2234f2f350795552011f35f704a3feb56a08/packages/contracts-bedrock/src/L1/SystemConfig.sol"},"devdoc":{"version":1,"kind":"dev","title":"ISystemConfigV0"},"id":122}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"delegate","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateBySig","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expiry","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegates","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPastTotalSupply","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPastVotes","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getVotes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"DelegateChanged","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"fromDelegate","type":"address","indexed":true,"internalType":"address"},{"name":"toDelegate","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateVotesChanged","inputs":[{"name":"delegate","type":"address","indexed":true,"internalType":"address"},{"name":"previousBalance","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getVotes(address)":"9ab24eb0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts. _Available since v4.5._\",\"events\":{\"DelegateChanged(address,address,address)\":{\"details\":\"Emitted when an account changes their delegate.\"},\"DelegateVotesChanged(address,uint256,uint256)\":{\"details\":\"Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.\"}},\"kind\":\"dev\",\"methods\":{\"delegate(address)\":{\"details\":\"Delegates votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`.\"},\"delegates(address)\":{\"details\":\"Returns the delegate that `account` has chosen.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote.\"},\"getPastVotes(address,uint256)\":{\"details\":\"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).\"},\"getVotes(address)\":{\"details\":\"Returns the current amount of votes that `account` has.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol\":\"IVotes\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"fromDelegate","type":"address","indexed":true},{"internalType":"address","name":"toDelegate","type":"address","indexed":true}],"type":"event","name":"DelegateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"delegate","type":"address","indexed":true},{"internalType":"uint256","name":"previousBalance","type":"uint256","indexed":false},{"internalType":"uint256","name":"newBalance","type":"uint256","indexed":false}],"type":"event","name":"DelegateVotesChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"delegate"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"delegateBySig"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"delegate(address)":{"details":"Delegates votes from the sender to `delegatee`."},"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Delegates votes from signer to `delegatee`."},"delegates(address)":{"details":"Returns the delegate that `account` has chosen."},"getPastTotalSupply(uint256)":{"details":"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote."},"getPastVotes(address,uint256)":{"details":"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`)."},"getVotes(address)":{"details":"Returns the current amount of votes that `account` has."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol":"IVotes"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol":{"keccak256":"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0","urls":["bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86","dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts. _Available since v4.5._","methods":{"delegate(address)":{"details":"Delegates votes from the sender to `delegatee`."},"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Delegates votes from signer to `delegatee`."},"delegates(address)":{"details":"Returns the delegate that `account` has chosen."},"getPastTotalSupply(uint256)":{"details":"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote."},"getPastVotes(address,uint256)":{"details":"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`)."},"getVotes(address)":{"details":"Returns the current amount of votes that `account` has."}},"events":{"DelegateChanged(address,address,address)":{"details":"Emitted when an account changes their delegate."},"DelegateVotesChanged(address,uint256,uint256)":{"details":"Emitted when a token transfer or delegate change results in changes to a delegate's number of votes."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol","id":47857,"exportedSymbols":{"IVotes":[47856]},"nodeType":"SourceUnit","src":"110:1954:39","nodes":[{"id":47780,"nodeType":"PragmaDirective","src":"110:23:39","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47856,"nodeType":"ContractDefinition","src":"268:1795:39","nodes":[{"id":47790,"nodeType":"EventDefinition","src":"367:107:39","nodes":[],"anonymous":false,"documentation":{"id":47782,"nodeType":"StructuredDocumentation","src":"291:71:39","text":" @dev Emitted when an account changes their delegate."},"eventSelector":"3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f","name":"DelegateChanged","nameLocation":"373:15:39","parameters":{"id":47789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47784,"indexed":true,"mutability":"mutable","name":"delegator","nameLocation":"405:9:39","nodeType":"VariableDeclaration","scope":47790,"src":"389:25:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47783,"name":"address","nodeType":"ElementaryTypeName","src":"389:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47786,"indexed":true,"mutability":"mutable","name":"fromDelegate","nameLocation":"432:12:39","nodeType":"VariableDeclaration","scope":47790,"src":"416:28:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47785,"name":"address","nodeType":"ElementaryTypeName","src":"416:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47788,"indexed":true,"mutability":"mutable","name":"toDelegate","nameLocation":"462:10:39","nodeType":"VariableDeclaration","scope":47790,"src":"446:26:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47787,"name":"address","nodeType":"ElementaryTypeName","src":"446:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"388:85:39"}},{"id":47799,"nodeType":"EventDefinition","src":"609:98:39","nodes":[],"anonymous":false,"documentation":{"id":47791,"nodeType":"StructuredDocumentation","src":"480:124:39","text":" @dev Emitted when a token transfer or delegate change results in changes to a delegate's number of votes."},"eventSelector":"dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724","name":"DelegateVotesChanged","nameLocation":"615:20:39","parameters":{"id":47798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47793,"indexed":true,"mutability":"mutable","name":"delegate","nameLocation":"652:8:39","nodeType":"VariableDeclaration","scope":47799,"src":"636:24:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47792,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47795,"indexed":false,"mutability":"mutable","name":"previousBalance","nameLocation":"670:15:39","nodeType":"VariableDeclaration","scope":47799,"src":"662:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47794,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47797,"indexed":false,"mutability":"mutable","name":"newBalance","nameLocation":"695:10:39","nodeType":"VariableDeclaration","scope":47799,"src":"687:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47796,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"635:71:39"}},{"id":47807,"nodeType":"FunctionDefinition","src":"797:67:39","nodes":[],"documentation":{"id":47800,"nodeType":"StructuredDocumentation","src":"713:79:39","text":" @dev Returns the current amount of votes that `account` has."},"functionSelector":"9ab24eb0","implemented":false,"kind":"function","modifiers":[],"name":"getVotes","nameLocation":"806:8:39","parameters":{"id":47803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47802,"mutability":"mutable","name":"account","nameLocation":"823:7:39","nodeType":"VariableDeclaration","scope":47807,"src":"815:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47801,"name":"address","nodeType":"ElementaryTypeName","src":"815:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"814:17:39"},"returnParameters":{"id":47806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47807,"src":"855:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47804,"name":"uint256","nodeType":"ElementaryTypeName","src":"855:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"854:9:39"},"scope":47856,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47817,"nodeType":"FunctionDefinition","src":"989:92:39","nodes":[],"documentation":{"id":47808,"nodeType":"StructuredDocumentation","src":"870:114:39","text":" @dev Returns the amount of votes that `account` had at the end of a past block (`blockNumber`)."},"functionSelector":"3a46b1a8","implemented":false,"kind":"function","modifiers":[],"name":"getPastVotes","nameLocation":"998:12:39","parameters":{"id":47813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47810,"mutability":"mutable","name":"account","nameLocation":"1019:7:39","nodeType":"VariableDeclaration","scope":47817,"src":"1011:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47809,"name":"address","nodeType":"ElementaryTypeName","src":"1011:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47812,"mutability":"mutable","name":"blockNumber","nameLocation":"1036:11:39","nodeType":"VariableDeclaration","scope":47817,"src":"1028:19:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47811,"name":"uint256","nodeType":"ElementaryTypeName","src":"1028:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:38:39"},"returnParameters":{"id":47816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47815,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47817,"src":"1072:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47814,"name":"uint256","nodeType":"ElementaryTypeName","src":"1072:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1071:9:39"},"scope":47856,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47825,"nodeType":"FunctionDefinition","src":"1457:81:39","nodes":[],"documentation":{"id":47818,"nodeType":"StructuredDocumentation","src":"1087:365:39","text":" @dev Returns the total supply of votes available at the end of a past block (`blockNumber`).\n NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes.\n Votes that have not been delegated are still part of total supply, even though they would not participate in a\n vote."},"functionSelector":"8e539e8c","implemented":false,"kind":"function","modifiers":[],"name":"getPastTotalSupply","nameLocation":"1466:18:39","parameters":{"id":47821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47820,"mutability":"mutable","name":"blockNumber","nameLocation":"1493:11:39","nodeType":"VariableDeclaration","scope":47825,"src":"1485:19:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47819,"name":"uint256","nodeType":"ElementaryTypeName","src":"1485:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1484:21:39"},"returnParameters":{"id":47824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47823,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47825,"src":"1529:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47822,"name":"uint256","nodeType":"ElementaryTypeName","src":"1529:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1528:9:39"},"scope":47856,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47833,"nodeType":"FunctionDefinition","src":"1620:68:39","nodes":[],"documentation":{"id":47826,"nodeType":"StructuredDocumentation","src":"1544:71:39","text":" @dev Returns the delegate that `account` has chosen."},"functionSelector":"587cde1e","implemented":false,"kind":"function","modifiers":[],"name":"delegates","nameLocation":"1629:9:39","parameters":{"id":47829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47828,"mutability":"mutable","name":"account","nameLocation":"1647:7:39","nodeType":"VariableDeclaration","scope":47833,"src":"1639:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47827,"name":"address","nodeType":"ElementaryTypeName","src":"1639:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1638:17:39"},"returnParameters":{"id":47832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47831,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47833,"src":"1679:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47830,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1678:9:39"},"scope":47856,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47839,"nodeType":"FunctionDefinition","src":"1770:46:39","nodes":[],"documentation":{"id":47834,"nodeType":"StructuredDocumentation","src":"1694:71:39","text":" @dev Delegates votes from the sender to `delegatee`."},"functionSelector":"5c19a95c","implemented":false,"kind":"function","modifiers":[],"name":"delegate","nameLocation":"1779:8:39","parameters":{"id":47837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47836,"mutability":"mutable","name":"delegatee","nameLocation":"1796:9:39","nodeType":"VariableDeclaration","scope":47839,"src":"1788:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47835,"name":"address","nodeType":"ElementaryTypeName","src":"1788:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1787:19:39"},"returnParameters":{"id":47838,"nodeType":"ParameterList","parameters":[],"src":"1815:0:39"},"scope":47856,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":47855,"nodeType":"FunctionDefinition","src":"1894:167:39","nodes":[],"documentation":{"id":47840,"nodeType":"StructuredDocumentation","src":"1822:67:39","text":" @dev Delegates votes from signer to `delegatee`."},"functionSelector":"c3cda520","implemented":false,"kind":"function","modifiers":[],"name":"delegateBySig","nameLocation":"1903:13:39","parameters":{"id":47853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47842,"mutability":"mutable","name":"delegatee","nameLocation":"1934:9:39","nodeType":"VariableDeclaration","scope":47855,"src":"1926:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47841,"name":"address","nodeType":"ElementaryTypeName","src":"1926:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47844,"mutability":"mutable","name":"nonce","nameLocation":"1961:5:39","nodeType":"VariableDeclaration","scope":47855,"src":"1953:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47843,"name":"uint256","nodeType":"ElementaryTypeName","src":"1953:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47846,"mutability":"mutable","name":"expiry","nameLocation":"1984:6:39","nodeType":"VariableDeclaration","scope":47855,"src":"1976:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47845,"name":"uint256","nodeType":"ElementaryTypeName","src":"1976:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47848,"mutability":"mutable","name":"v","nameLocation":"2006:1:39","nodeType":"VariableDeclaration","scope":47855,"src":"2000:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47847,"name":"uint8","nodeType":"ElementaryTypeName","src":"2000:5:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":47850,"mutability":"mutable","name":"r","nameLocation":"2025:1:39","nodeType":"VariableDeclaration","scope":47855,"src":"2017:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2017:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47852,"mutability":"mutable","name":"s","nameLocation":"2044:1:39","nodeType":"VariableDeclaration","scope":47855,"src":"2036:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2036:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1916:135:39"},"returnParameters":{"id":47854,"nodeType":"ParameterList","parameters":[],"src":"2060:0:39"},"scope":47856,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IVotes","contractDependencies":[],"contractKind":"interface","documentation":{"id":47781,"nodeType":"StructuredDocumentation","src":"135:132:39","text":" @dev Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts.\n _Available since v4.5._"},"fullyImplemented":false,"linearizedBaseContracts":[47856],"name":"IVotes","nameLocation":"278:6:39","scope":47857,"usedErrors":[]}],"license":"MIT"},"id":39}
{"abi":[{"type":"function","name":"delegate","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateBySig","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expiry","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegates","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPastTotalSupply","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPastVotes","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getVotes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"DelegateChanged","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"fromDelegate","type":"address","indexed":true,"internalType":"address"},{"name":"toDelegate","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateVotesChanged","inputs":[{"name":"delegate","type":"address","indexed":true,"internalType":"address"},{"name":"previousBalance","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getVotes(address)":"9ab24eb0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts. _Available since v4.5._\",\"events\":{\"DelegateChanged(address,address,address)\":{\"details\":\"Emitted when an account changes their delegate.\"},\"DelegateVotesChanged(address,uint256,uint256)\":{\"details\":\"Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.\"}},\"kind\":\"dev\",\"methods\":{\"delegate(address)\":{\"details\":\"Delegates votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`.\"},\"delegates(address)\":{\"details\":\"Returns the delegate that `account` has chosen.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote.\"},\"getPastVotes(address,uint256)\":{\"details\":\"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).\"},\"getVotes(address)\":{\"details\":\"Returns the current amount of votes that `account` has.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol\":\"IVotes\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"fromDelegate","type":"address","indexed":true},{"internalType":"address","name":"toDelegate","type":"address","indexed":true}],"type":"event","name":"DelegateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"delegate","type":"address","indexed":true},{"internalType":"uint256","name":"previousBalance","type":"uint256","indexed":false},{"internalType":"uint256","name":"newBalance","type":"uint256","indexed":false}],"type":"event","name":"DelegateVotesChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"delegate"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"delegateBySig"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"delegate(address)":{"details":"Delegates votes from the sender to `delegatee`."},"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Delegates votes from signer to `delegatee`."},"delegates(address)":{"details":"Returns the delegate that `account` has chosen."},"getPastTotalSupply(uint256)":{"details":"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote."},"getPastVotes(address,uint256)":{"details":"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`)."},"getVotes(address)":{"details":"Returns the current amount of votes that `account` has."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol":"IVotes"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol":{"keccak256":"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0","urls":["bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86","dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts. _Available since v4.5._","methods":{"delegate(address)":{"details":"Delegates votes from the sender to `delegatee`."},"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Delegates votes from signer to `delegatee`."},"delegates(address)":{"details":"Returns the delegate that `account` has chosen."},"getPastTotalSupply(uint256)":{"details":"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote."},"getPastVotes(address,uint256)":{"details":"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`)."},"getVotes(address)":{"details":"Returns the current amount of votes that `account` has."}},"events":{"DelegateChanged(address,address,address)":{"details":"Emitted when an account changes their delegate."},"DelegateVotesChanged(address,uint256,uint256)":{"details":"Emitted when a token transfer or delegate change results in changes to a delegate's number of votes."}}},"id":39}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"kevm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract KontrolCheatsBase"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"kevm()":"d6a2ec76"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"kevm\",\"outputs\":[{\"internalType\":\"contract KontrolCheatsBase\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":\"KontrolCheats\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":{\"keccak256\":\"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4\",\"dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"kevm","outputs":[{"internalType":"contract KontrolCheatsBase","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":"KontrolCheats"},"evmVersion":"london","libraries":{}},"sources":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":{"keccak256":"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587","urls":["bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4","dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/kontrol-cheatcodes/src/KontrolCheats.sol","id":45091,"exportedSymbols":{"KontrolCheats":[45090],"KontrolCheatsBase":[45049]},"nodeType":"SourceUnit","src":"32:2419:22","nodes":[{"id":44959,"nodeType":"PragmaDirective","src":"32:31:22","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":44960,"nodeType":"PragmaDirective","src":"64:33:22","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":45049,"nodeType":"ContractDefinition","src":"99:1874:22","nodes":[{"id":44967,"nodeType":"FunctionDefinition","src":"220:60:22","nodes":[],"functionSelector":"bd79af28","implemented":false,"kind":"function","modifiers":[],"name":"expectRegularCall","nameLocation":"229:17:22","parameters":{"id":44965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44967,"src":"247:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44961,"name":"address","nodeType":"ElementaryTypeName","src":"247:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44967,"src":"255:14:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44963,"name":"bytes","nodeType":"ElementaryTypeName","src":"255:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"246:24:22"},"returnParameters":{"id":44966,"nodeType":"ParameterList","parameters":[],"src":"279:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":44976,"nodeType":"FunctionDefinition","src":"386:68:22","nodes":[],"functionSelector":"75a12b47","implemented":false,"kind":"function","modifiers":[],"name":"expectRegularCall","nameLocation":"395:17:22","parameters":{"id":44974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44976,"src":"413:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44968,"name":"address","nodeType":"ElementaryTypeName","src":"413:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44971,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44976,"src":"421:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44970,"name":"uint256","nodeType":"ElementaryTypeName","src":"421:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44976,"src":"429:14:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44972,"name":"bytes","nodeType":"ElementaryTypeName","src":"429:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"412:32:22"},"returnParameters":{"id":44975,"nodeType":"ParameterList","parameters":[],"src":"453:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":44983,"nodeType":"FunctionDefinition","src":"531:59:22","nodes":[],"functionSelector":"85180b6c","implemented":false,"kind":"function","modifiers":[],"name":"expectStaticCall","nameLocation":"540:16:22","parameters":{"id":44981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44983,"src":"557:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44977,"name":"address","nodeType":"ElementaryTypeName","src":"557:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44983,"src":"565:14:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44979,"name":"bytes","nodeType":"ElementaryTypeName","src":"565:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"556:24:22"},"returnParameters":{"id":44982,"nodeType":"ParameterList","parameters":[],"src":"589:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":44990,"nodeType":"FunctionDefinition","src":"669:61:22","nodes":[],"functionSelector":"3d6ac1e7","implemented":false,"kind":"function","modifiers":[],"name":"expectDelegateCall","nameLocation":"678:18:22","parameters":{"id":44988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44990,"src":"697:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44984,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44990,"src":"705:14:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44986,"name":"bytes","nodeType":"ElementaryTypeName","src":"705:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"696:24:22"},"returnParameters":{"id":44989,"nodeType":"ParameterList","parameters":[],"src":"729:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":44993,"nodeType":"FunctionDefinition","src":"812:33:22","nodes":[],"functionSelector":"e627e488","implemented":false,"kind":"function","modifiers":[],"name":"expectNoCall","nameLocation":"821:12:22","parameters":{"id":44991,"nodeType":"ParameterList","parameters":[],"src":"833:2:22"},"returnParameters":{"id":44992,"nodeType":"ParameterList","parameters":[],"src":"844:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45002,"nodeType":"FunctionDefinition","src":"973:63:22","nodes":[],"functionSelector":"27470f4a","implemented":false,"kind":"function","modifiers":[],"name":"expectCreate","nameLocation":"982:12:22","parameters":{"id":45000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45002,"src":"995:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44994,"name":"address","nodeType":"ElementaryTypeName","src":"995:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45002,"src":"1003:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44996,"name":"uint256","nodeType":"ElementaryTypeName","src":"1003:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45002,"src":"1011:14:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44998,"name":"bytes","nodeType":"ElementaryTypeName","src":"1011:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"994:32:22"},"returnParameters":{"id":45001,"nodeType":"ParameterList","parameters":[],"src":"1035:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45011,"nodeType":"FunctionDefinition","src":"1196:64:22","nodes":[],"functionSelector":"e5c042be","implemented":false,"kind":"function","modifiers":[],"name":"expectCreate2","nameLocation":"1205:13:22","parameters":{"id":45009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45011,"src":"1219:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45003,"name":"address","nodeType":"ElementaryTypeName","src":"1219:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45011,"src":"1227:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45005,"name":"uint256","nodeType":"ElementaryTypeName","src":"1227:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45011,"src":"1235:14:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45007,"name":"bytes","nodeType":"ElementaryTypeName","src":"1235:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1218:32:22"},"returnParameters":{"id":45010,"nodeType":"ParameterList","parameters":[],"src":"1259:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45016,"nodeType":"FunctionDefinition","src":"1332:43:22","nodes":[],"functionSelector":"2de059ae","implemented":false,"kind":"function","modifiers":[],"name":"symbolicStorage","nameLocation":"1341:15:22","parameters":{"id":45014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45016,"src":"1357:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45012,"name":"address","nodeType":"ElementaryTypeName","src":"1357:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1356:9:22"},"returnParameters":{"id":45015,"nodeType":"ParameterList","parameters":[],"src":"1374:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45021,"nodeType":"FunctionDefinition","src":"1421:47:22","nodes":[],"functionSelector":"6e50e634","implemented":false,"kind":"function","modifiers":[],"name":"allowCallsToAddress","nameLocation":"1430:19:22","parameters":{"id":45019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45021,"src":"1450:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45017,"name":"address","nodeType":"ElementaryTypeName","src":"1450:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1449:9:22"},"returnParameters":{"id":45020,"nodeType":"ParameterList","parameters":[],"src":"1467:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45028,"nodeType":"FunctionDefinition","src":"1533:57:22","nodes":[],"functionSelector":"fac8170c","implemented":false,"kind":"function","modifiers":[],"name":"allowChangesToStorage","nameLocation":"1542:21:22","parameters":{"id":45026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45028,"src":"1564:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45022,"name":"address","nodeType":"ElementaryTypeName","src":"1564:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45025,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45028,"src":"1572:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45024,"name":"uint256","nodeType":"ElementaryTypeName","src":"1572:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1563:17:22"},"returnParameters":{"id":45027,"nodeType":"ParameterList","parameters":[],"src":"1589:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45031,"nodeType":"FunctionDefinition","src":"1647:32:22","nodes":[],"functionSelector":"ed9f7353","implemented":false,"kind":"function","modifiers":[],"name":"infiniteGas","nameLocation":"1656:11:22","parameters":{"id":45029,"nodeType":"ParameterList","parameters":[],"src":"1667:2:22"},"returnParameters":{"id":45030,"nodeType":"ParameterList","parameters":[],"src":"1678:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45036,"nodeType":"FunctionDefinition","src":"1743:34:22","nodes":[],"functionSelector":"dd51faa2","implemented":false,"kind":"function","modifiers":[],"name":"setGas","nameLocation":"1752:6:22","parameters":{"id":45034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45033,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45036,"src":"1759:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45032,"name":"uint256","nodeType":"ElementaryTypeName","src":"1759:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1758:9:22"},"returnParameters":{"id":45035,"nodeType":"ParameterList","parameters":[],"src":"1776:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45043,"nodeType":"FunctionDefinition","src":"1825:53:22","nodes":[],"functionSelector":"25449d64","implemented":false,"kind":"function","modifiers":[],"name":"freshUInt","nameLocation":"1834:9:22","parameters":{"id":45039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45038,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45043,"src":"1844:5:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":45037,"name":"uint8","nodeType":"ElementaryTypeName","src":"1844:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1843:7:22"},"returnParameters":{"id":45042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45041,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45043,"src":"1869:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45040,"name":"uint256","nodeType":"ElementaryTypeName","src":"1869:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1868:9:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45048,"nodeType":"FunctionDefinition","src":"1923:48:22","nodes":[],"functionSelector":"aefb8969","implemented":false,"kind":"function","modifiers":[],"name":"freshBool","nameLocation":"1932:9:22","parameters":{"id":45044,"nodeType":"ParameterList","parameters":[],"src":"1941:2:22"},"returnParameters":{"id":45047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45048,"src":"1962:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45045,"name":"uint256","nodeType":"ElementaryTypeName","src":"1962:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1961:9:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"KontrolCheatsBase","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[45049],"name":"KontrolCheatsBase","nameLocation":"109:17:22","scope":45091,"usedErrors":[]},{"id":45090,"nodeType":"ContractDefinition","src":"1975:475:22","nodes":[{"id":45066,"nodeType":"VariableDeclaration","src":"2013:115:22","nodes":[],"constant":true,"functionSelector":"d6a2ec76","mutability":"constant","name":"kevm","nameLocation":"2047:4:22","scope":45090,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_KontrolCheatsBase_$45049","typeString":"contract KontrolCheatsBase"},"typeName":{"id":45051,"nodeType":"UserDefinedTypeName","pathNode":{"id":45050,"name":"KontrolCheatsBase","nodeType":"IdentifierPath","referencedDeclaration":45049,"src":"2013:17:22"},"referencedDeclaration":45049,"src":"2013:17:22","typeDescriptions":{"typeIdentifier":"t_contract$_KontrolCheatsBase_$45049","typeString":"contract KontrolCheatsBase"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":45060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2106:17:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":45059,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2096:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":45061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2096:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":45058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2088:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45057,"name":"uint256","nodeType":"ElementaryTypeName","src":"2088:7:22","typeDescriptions":{}}},"id":45062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2088:37:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2080:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":45055,"name":"uint160","nodeType":"ElementaryTypeName","src":"2080:7:22","typeDescriptions":{}}},"id":45063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2080:46:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":45054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2072:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45053,"name":"address","nodeType":"ElementaryTypeName","src":"2072:7:22","typeDescriptions":{}}},"id":45064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:55:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45052,"name":"KontrolCheatsBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45049,"src":"2054:17:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KontrolCheatsBase_$45049_$","typeString":"type(contract KontrolCheatsBase)"}},"id":45065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2054:74:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_KontrolCheatsBase_$45049","typeString":"contract KontrolCheatsBase"}},"visibility":"public"},{"id":45089,"nodeType":"FunctionDefinition","src":"2202:246:22","nodes":[],"body":{"id":45088,"nodeType":"Block","src":"2272:176:22","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":45085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45073,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45068,"src":"2290:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"363435333236343734343236353437323033333133343130303639313533393035393038353235333632343334333439","id":45076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2306:48:22","typeDescriptions":{"typeIdentifier":"t_rational_645326474426547203313410069153905908525362434349_by_1","typeString":"int_const 6453...(40 digits omitted)...4349"},"value":"645326474426547203313410069153905908525362434349"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_645326474426547203313410069153905908525362434349_by_1","typeString":"int_const 6453...(40 digits omitted)...4349"}],"id":45075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2298:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45074,"name":"address","nodeType":"ElementaryTypeName","src":"2298:7:22","typeDescriptions":{}}},"id":45077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2298:57:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2290:65:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45079,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45068,"src":"2375:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"373238383135353633333835393737303430343532393433373737383739303631343237373536323737333036353138","id":45082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2391:48:22","typeDescriptions":{"typeIdentifier":"t_rational_728815563385977040452943777879061427756277306518_by_1","typeString":"int_const 7288...(40 digits omitted)...6518"},"value":"728815563385977040452943777879061427756277306518"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_728815563385977040452943777879061427756277306518_by_1","typeString":"int_const 7288...(40 digits omitted)...6518"}],"id":45081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2383:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45080,"name":"address","nodeType":"ElementaryTypeName","src":"2383:7:22","typeDescriptions":{}}},"id":45083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2383:57:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2375:65:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2290:150:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":45086,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2289:152:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45072,"id":45087,"nodeType":"Return","src":"2282:159:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"notBuiltinAddress","nameLocation":"2211:17:22","parameters":{"id":45069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45068,"mutability":"mutable","name":"addr","nameLocation":"2237:4:22","nodeType":"VariableDeclaration","scope":45089,"src":"2229:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45067,"name":"address","nodeType":"ElementaryTypeName","src":"2229:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2228:14:22"},"returnParameters":{"id":45072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45089,"src":"2266:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45070,"name":"bool","nodeType":"ElementaryTypeName","src":"2266:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2265:6:22"},"scope":45090,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"KontrolCheats","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[45090],"name":"KontrolCheats","nameLocation":"1993:13:22","scope":45091,"usedErrors":[]}],"license":"MIT"},"id":22}
{"abi":[{"type":"function","name":"kevm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract KontrolCheatsBase"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"kevm()":"d6a2ec76"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"kevm\",\"outputs\":[{\"internalType\":\"contract KontrolCheatsBase\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":\"KontrolCheats\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":{\"keccak256\":\"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4\",\"dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"kevm","outputs":[{"internalType":"contract KontrolCheatsBase","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":"KontrolCheats"},"evmVersion":"london","libraries":{}},"sources":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":{"keccak256":"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587","urls":["bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4","dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":22}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"allowCallsToAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowChangesToStorage","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCreate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCreate2","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectDelegateCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectNoCall","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRegularCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRegularCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectStaticCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"freshBool","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"freshUInt","inputs":[{"name":"","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"infiniteGas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setGas","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbolicStorage","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowCallsToAddress(address)":"6e50e634","allowChangesToStorage(address,uint256)":"fac8170c","expectCreate(address,uint256,bytes)":"27470f4a","expectCreate2(address,uint256,bytes)":"e5c042be","expectDelegateCall(address,bytes)":"3d6ac1e7","expectNoCall()":"e627e488","expectRegularCall(address,bytes)":"bd79af28","expectRegularCall(address,uint256,bytes)":"75a12b47","expectStaticCall(address,bytes)":"85180b6c","freshBool()":"aefb8969","freshUInt(uint8)":"25449d64","infiniteGas()":"ed9f7353","setGas(uint256)":"dd51faa2","symbolicStorage(address)":"2de059ae"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowCallsToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowChangesToStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectCreate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectCreate2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectNoCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectRegularCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectRegularCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectStaticCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"freshBool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"freshUInt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"infiniteGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"setGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"symbolicStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":\"KontrolCheatsBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":{\"keccak256\":\"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4\",\"dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowCallsToAddress"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"allowChangesToStorage"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCreate"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCreate2"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectDelegateCall"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectNoCall"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRegularCall"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRegularCall"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectStaticCall"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"freshBool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"freshUInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"infiniteGas"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setGas"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"symbolicStorage"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":"KontrolCheatsBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":{"keccak256":"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587","urls":["bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4","dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/kontrol-cheatcodes/src/KontrolCheats.sol","id":45091,"exportedSymbols":{"KontrolCheats":[45090],"KontrolCheatsBase":[45049]},"nodeType":"SourceUnit","src":"32:2419:22","nodes":[{"id":44959,"nodeType":"PragmaDirective","src":"32:31:22","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":44960,"nodeType":"PragmaDirective","src":"64:33:22","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":45049,"nodeType":"ContractDefinition","src":"99:1874:22","nodes":[{"id":44967,"nodeType":"FunctionDefinition","src":"220:60:22","nodes":[],"functionSelector":"bd79af28","implemented":false,"kind":"function","modifiers":[],"name":"expectRegularCall","nameLocation":"229:17:22","parameters":{"id":44965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44967,"src":"247:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44961,"name":"address","nodeType":"ElementaryTypeName","src":"247:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44967,"src":"255:14:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44963,"name":"bytes","nodeType":"ElementaryTypeName","src":"255:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"246:24:22"},"returnParameters":{"id":44966,"nodeType":"ParameterList","parameters":[],"src":"279:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":44976,"nodeType":"FunctionDefinition","src":"386:68:22","nodes":[],"functionSelector":"75a12b47","implemented":false,"kind":"function","modifiers":[],"name":"expectRegularCall","nameLocation":"395:17:22","parameters":{"id":44974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44976,"src":"413:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44968,"name":"address","nodeType":"ElementaryTypeName","src":"413:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44971,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44976,"src":"421:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44970,"name":"uint256","nodeType":"ElementaryTypeName","src":"421:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44976,"src":"429:14:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44972,"name":"bytes","nodeType":"ElementaryTypeName","src":"429:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"412:32:22"},"returnParameters":{"id":44975,"nodeType":"ParameterList","parameters":[],"src":"453:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":44983,"nodeType":"FunctionDefinition","src":"531:59:22","nodes":[],"functionSelector":"85180b6c","implemented":false,"kind":"function","modifiers":[],"name":"expectStaticCall","nameLocation":"540:16:22","parameters":{"id":44981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44983,"src":"557:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44977,"name":"address","nodeType":"ElementaryTypeName","src":"557:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44983,"src":"565:14:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44979,"name":"bytes","nodeType":"ElementaryTypeName","src":"565:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"556:24:22"},"returnParameters":{"id":44982,"nodeType":"ParameterList","parameters":[],"src":"589:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":44990,"nodeType":"FunctionDefinition","src":"669:61:22","nodes":[],"functionSelector":"3d6ac1e7","implemented":false,"kind":"function","modifiers":[],"name":"expectDelegateCall","nameLocation":"678:18:22","parameters":{"id":44988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44990,"src":"697:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44984,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44990,"src":"705:14:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44986,"name":"bytes","nodeType":"ElementaryTypeName","src":"705:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"696:24:22"},"returnParameters":{"id":44989,"nodeType":"ParameterList","parameters":[],"src":"729:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":44993,"nodeType":"FunctionDefinition","src":"812:33:22","nodes":[],"functionSelector":"e627e488","implemented":false,"kind":"function","modifiers":[],"name":"expectNoCall","nameLocation":"821:12:22","parameters":{"id":44991,"nodeType":"ParameterList","parameters":[],"src":"833:2:22"},"returnParameters":{"id":44992,"nodeType":"ParameterList","parameters":[],"src":"844:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45002,"nodeType":"FunctionDefinition","src":"973:63:22","nodes":[],"functionSelector":"27470f4a","implemented":false,"kind":"function","modifiers":[],"name":"expectCreate","nameLocation":"982:12:22","parameters":{"id":45000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45002,"src":"995:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44994,"name":"address","nodeType":"ElementaryTypeName","src":"995:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45002,"src":"1003:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44996,"name":"uint256","nodeType":"ElementaryTypeName","src":"1003:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45002,"src":"1011:14:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44998,"name":"bytes","nodeType":"ElementaryTypeName","src":"1011:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"994:32:22"},"returnParameters":{"id":45001,"nodeType":"ParameterList","parameters":[],"src":"1035:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45011,"nodeType":"FunctionDefinition","src":"1196:64:22","nodes":[],"functionSelector":"e5c042be","implemented":false,"kind":"function","modifiers":[],"name":"expectCreate2","nameLocation":"1205:13:22","parameters":{"id":45009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45011,"src":"1219:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45003,"name":"address","nodeType":"ElementaryTypeName","src":"1219:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45011,"src":"1227:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45005,"name":"uint256","nodeType":"ElementaryTypeName","src":"1227:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45011,"src":"1235:14:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45007,"name":"bytes","nodeType":"ElementaryTypeName","src":"1235:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1218:32:22"},"returnParameters":{"id":45010,"nodeType":"ParameterList","parameters":[],"src":"1259:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45016,"nodeType":"FunctionDefinition","src":"1332:43:22","nodes":[],"functionSelector":"2de059ae","implemented":false,"kind":"function","modifiers":[],"name":"symbolicStorage","nameLocation":"1341:15:22","parameters":{"id":45014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45016,"src":"1357:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45012,"name":"address","nodeType":"ElementaryTypeName","src":"1357:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1356:9:22"},"returnParameters":{"id":45015,"nodeType":"ParameterList","parameters":[],"src":"1374:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45021,"nodeType":"FunctionDefinition","src":"1421:47:22","nodes":[],"functionSelector":"6e50e634","implemented":false,"kind":"function","modifiers":[],"name":"allowCallsToAddress","nameLocation":"1430:19:22","parameters":{"id":45019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45021,"src":"1450:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45017,"name":"address","nodeType":"ElementaryTypeName","src":"1450:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1449:9:22"},"returnParameters":{"id":45020,"nodeType":"ParameterList","parameters":[],"src":"1467:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45028,"nodeType":"FunctionDefinition","src":"1533:57:22","nodes":[],"functionSelector":"fac8170c","implemented":false,"kind":"function","modifiers":[],"name":"allowChangesToStorage","nameLocation":"1542:21:22","parameters":{"id":45026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45028,"src":"1564:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45022,"name":"address","nodeType":"ElementaryTypeName","src":"1564:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45025,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45028,"src":"1572:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45024,"name":"uint256","nodeType":"ElementaryTypeName","src":"1572:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1563:17:22"},"returnParameters":{"id":45027,"nodeType":"ParameterList","parameters":[],"src":"1589:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45031,"nodeType":"FunctionDefinition","src":"1647:32:22","nodes":[],"functionSelector":"ed9f7353","implemented":false,"kind":"function","modifiers":[],"name":"infiniteGas","nameLocation":"1656:11:22","parameters":{"id":45029,"nodeType":"ParameterList","parameters":[],"src":"1667:2:22"},"returnParameters":{"id":45030,"nodeType":"ParameterList","parameters":[],"src":"1678:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45036,"nodeType":"FunctionDefinition","src":"1743:34:22","nodes":[],"functionSelector":"dd51faa2","implemented":false,"kind":"function","modifiers":[],"name":"setGas","nameLocation":"1752:6:22","parameters":{"id":45034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45033,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45036,"src":"1759:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45032,"name":"uint256","nodeType":"ElementaryTypeName","src":"1759:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1758:9:22"},"returnParameters":{"id":45035,"nodeType":"ParameterList","parameters":[],"src":"1776:0:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45043,"nodeType":"FunctionDefinition","src":"1825:53:22","nodes":[],"functionSelector":"25449d64","implemented":false,"kind":"function","modifiers":[],"name":"freshUInt","nameLocation":"1834:9:22","parameters":{"id":45039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45038,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45043,"src":"1844:5:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":45037,"name":"uint8","nodeType":"ElementaryTypeName","src":"1844:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1843:7:22"},"returnParameters":{"id":45042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45041,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45043,"src":"1869:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45040,"name":"uint256","nodeType":"ElementaryTypeName","src":"1869:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1868:9:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45048,"nodeType":"FunctionDefinition","src":"1923:48:22","nodes":[],"functionSelector":"aefb8969","implemented":false,"kind":"function","modifiers":[],"name":"freshBool","nameLocation":"1932:9:22","parameters":{"id":45044,"nodeType":"ParameterList","parameters":[],"src":"1941:2:22"},"returnParameters":{"id":45047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45048,"src":"1962:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45045,"name":"uint256","nodeType":"ElementaryTypeName","src":"1962:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1961:9:22"},"scope":45049,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"KontrolCheatsBase","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[45049],"name":"KontrolCheatsBase","nameLocation":"109:17:22","scope":45091,"usedErrors":[]},{"id":45090,"nodeType":"ContractDefinition","src":"1975:475:22","nodes":[{"id":45066,"nodeType":"VariableDeclaration","src":"2013:115:22","nodes":[],"constant":true,"functionSelector":"d6a2ec76","mutability":"constant","name":"kevm","nameLocation":"2047:4:22","scope":45090,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_KontrolCheatsBase_$45049","typeString":"contract KontrolCheatsBase"},"typeName":{"id":45051,"nodeType":"UserDefinedTypeName","pathNode":{"id":45050,"name":"KontrolCheatsBase","nodeType":"IdentifierPath","referencedDeclaration":45049,"src":"2013:17:22"},"referencedDeclaration":45049,"src":"2013:17:22","typeDescriptions":{"typeIdentifier":"t_contract$_KontrolCheatsBase_$45049","typeString":"contract KontrolCheatsBase"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":45060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2106:17:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":45059,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2096:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":45061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2096:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":45058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2088:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45057,"name":"uint256","nodeType":"ElementaryTypeName","src":"2088:7:22","typeDescriptions":{}}},"id":45062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2088:37:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2080:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":45055,"name":"uint160","nodeType":"ElementaryTypeName","src":"2080:7:22","typeDescriptions":{}}},"id":45063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2080:46:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":45054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2072:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45053,"name":"address","nodeType":"ElementaryTypeName","src":"2072:7:22","typeDescriptions":{}}},"id":45064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:55:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45052,"name":"KontrolCheatsBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45049,"src":"2054:17:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_KontrolCheatsBase_$45049_$","typeString":"type(contract KontrolCheatsBase)"}},"id":45065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2054:74:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_KontrolCheatsBase_$45049","typeString":"contract KontrolCheatsBase"}},"visibility":"public"},{"id":45089,"nodeType":"FunctionDefinition","src":"2202:246:22","nodes":[],"body":{"id":45088,"nodeType":"Block","src":"2272:176:22","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":45085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45073,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45068,"src":"2290:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"363435333236343734343236353437323033333133343130303639313533393035393038353235333632343334333439","id":45076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2306:48:22","typeDescriptions":{"typeIdentifier":"t_rational_645326474426547203313410069153905908525362434349_by_1","typeString":"int_const 6453...(40 digits omitted)...4349"},"value":"645326474426547203313410069153905908525362434349"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_645326474426547203313410069153905908525362434349_by_1","typeString":"int_const 6453...(40 digits omitted)...4349"}],"id":45075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2298:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45074,"name":"address","nodeType":"ElementaryTypeName","src":"2298:7:22","typeDescriptions":{}}},"id":45077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2298:57:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2290:65:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45079,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45068,"src":"2375:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"373238383135353633333835393737303430343532393433373737383739303631343237373536323737333036353138","id":45082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2391:48:22","typeDescriptions":{"typeIdentifier":"t_rational_728815563385977040452943777879061427756277306518_by_1","typeString":"int_const 7288...(40 digits omitted)...6518"},"value":"728815563385977040452943777879061427756277306518"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_728815563385977040452943777879061427756277306518_by_1","typeString":"int_const 7288...(40 digits omitted)...6518"}],"id":45081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2383:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45080,"name":"address","nodeType":"ElementaryTypeName","src":"2383:7:22","typeDescriptions":{}}},"id":45083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2383:57:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2375:65:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2290:150:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":45086,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2289:152:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45072,"id":45087,"nodeType":"Return","src":"2282:159:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"notBuiltinAddress","nameLocation":"2211:17:22","parameters":{"id":45069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45068,"mutability":"mutable","name":"addr","nameLocation":"2237:4:22","nodeType":"VariableDeclaration","scope":45089,"src":"2229:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45067,"name":"address","nodeType":"ElementaryTypeName","src":"2229:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2228:14:22"},"returnParameters":{"id":45072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45089,"src":"2266:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45070,"name":"bool","nodeType":"ElementaryTypeName","src":"2266:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2265:6:22"},"scope":45090,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"KontrolCheats","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[45090],"name":"KontrolCheats","nameLocation":"1993:13:22","scope":45091,"usedErrors":[]}],"license":"MIT"},"id":22}
{"abi":[{"type":"function","name":"allowCallsToAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowChangesToStorage","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCreate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCreate2","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectDelegateCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectNoCall","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRegularCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRegularCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectStaticCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"freshBool","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"freshUInt","inputs":[{"name":"","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"infiniteGas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setGas","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbolicStorage","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowCallsToAddress(address)":"6e50e634","allowChangesToStorage(address,uint256)":"fac8170c","expectCreate(address,uint256,bytes)":"27470f4a","expectCreate2(address,uint256,bytes)":"e5c042be","expectDelegateCall(address,bytes)":"3d6ac1e7","expectNoCall()":"e627e488","expectRegularCall(address,bytes)":"bd79af28","expectRegularCall(address,uint256,bytes)":"75a12b47","expectStaticCall(address,bytes)":"85180b6c","freshBool()":"aefb8969","freshUInt(uint8)":"25449d64","infiniteGas()":"ed9f7353","setGas(uint256)":"dd51faa2","symbolicStorage(address)":"2de059ae"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowCallsToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowChangesToStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectCreate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectCreate2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectNoCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectRegularCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectRegularCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"expectStaticCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"freshBool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"freshUInt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"infiniteGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"setGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"symbolicStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":\"KontrolCheatsBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":{\"keccak256\":\"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4\",\"dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowCallsToAddress"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"allowChangesToStorage"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCreate"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCreate2"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectDelegateCall"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectNoCall"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRegularCall"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRegularCall"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectStaticCall"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"freshBool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"freshUInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"infiniteGas"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setGas"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"symbolicStorage"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":"KontrolCheatsBase"},"evmVersion":"london","libraries":{}},"sources":{"lib/kontrol-cheatcodes/src/KontrolCheats.sol":{"keccak256":"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587","urls":["bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4","dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":22}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"relayMessage","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_target","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"xDomainMessageSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"relayMessage(uint256,address,address,uint256,uint256,bytes)":"d764ad0b","xDomainMessageSender()":"6e296e45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"relayMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"xDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IL1CrossDomainMessenger\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_minGasLimit","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"payable","type":"function","name":"relayMessage"},{"inputs":[],"stateMutability":"view","type":"function","name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IL1CrossDomainMessenger"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/kontrol/proofs/interfaces/KontrolInterfaces.sol","id":163545,"exportedSymbols":{"IL1CrossDomainMessenger":[163544],"IL1ERC721Bridge":[163523],"IL1StandardBridge":[163490],"IOptimismPortal":[163427],"ISuperchainConfig":[163446],"Types":[94081]},"nodeType":"SourceUnit","src":"32:2157:275","nodes":[{"id":163394,"nodeType":"PragmaDirective","src":"32:23:275","nodes":[],"literals":["solidity","0.8",".15"]},{"id":163396,"nodeType":"ImportDirective","src":"57:48:275","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":163545,"sourceUnit":94082,"symbolAliases":[{"foreign":{"id":163395,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94081,"src":"66:5:275","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":163427,"nodeType":"ContractDefinition","src":"107:486:275","nodes":[{"id":163401,"nodeType":"FunctionDefinition","src":"139:52:275","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"148:8:275","parameters":{"id":163397,"nodeType":"ParameterList","parameters":[],"src":"156:2:275"},"returnParameters":{"id":163400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163401,"src":"182:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163398,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"181:9:275"},"scope":163427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163406,"nodeType":"FunctionDefinition","src":"197:55:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"206:6:275","parameters":{"id":163402,"nodeType":"ParameterList","parameters":[],"src":"212:2:275"},"returnParameters":{"id":163405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163404,"mutability":"mutable","name":"paused_","nameLocation":"243:7:275","nodeType":"VariableDeclaration","scope":163406,"src":"238:12:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163403,"name":"bool","nodeType":"ElementaryTypeName","src":"238:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"237:14:275"},"scope":163427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163420,"nodeType":"FunctionDefinition","src":"258:239:275","nodes":[],"functionSelector":"4870496f","implemented":false,"kind":"function","modifiers":[],"name":"proveWithdrawalTransaction","nameLocation":"267:26:275","parameters":{"id":163418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163409,"mutability":"mutable","name":"_tx","nameLocation":"338:3:275","nodeType":"VariableDeclaration","scope":163420,"src":"303:38:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":163408,"nodeType":"UserDefinedTypeName","pathNode":{"id":163407,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":94080,"src":"303:27:275"},"referencedDeclaration":94080,"src":"303:27:275","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"},{"constant":false,"id":163411,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"359:14:275","nodeType":"VariableDeclaration","scope":163420,"src":"351:22:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163410,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163414,"mutability":"mutable","name":"_outputRootProof","nameLocation":"414:16:275","nodeType":"VariableDeclaration","scope":163420,"src":"383:47:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_calldata_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":163413,"nodeType":"UserDefinedTypeName","pathNode":{"id":163412,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":94048,"src":"383:21:275"},"referencedDeclaration":94048,"src":"383:21:275","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"},{"constant":false,"id":163417,"mutability":"mutable","name":"_withdrawalProof","nameLocation":"457:16:275","nodeType":"VariableDeclaration","scope":163420,"src":"440:33:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":163415,"name":"bytes","nodeType":"ElementaryTypeName","src":"440:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":163416,"nodeType":"ArrayTypeName","src":"440:7:275","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"293:186:275"},"returnParameters":{"id":163419,"nodeType":"ParameterList","parameters":[],"src":"496:0:275"},"scope":163427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163426,"nodeType":"FunctionDefinition","src":"503:88:275","nodes":[],"functionSelector":"8c3152e9","implemented":false,"kind":"function","modifiers":[],"name":"finalizeWithdrawalTransaction","nameLocation":"512:29:275","parameters":{"id":163424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163423,"mutability":"mutable","name":"_tx","nameLocation":"577:3:275","nodeType":"VariableDeclaration","scope":163426,"src":"542:38:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":163422,"nodeType":"UserDefinedTypeName","pathNode":{"id":163421,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":94080,"src":"542:27:275"},"referencedDeclaration":94080,"src":"542:27:275","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"541:40:275"},"returnParameters":{"id":163425,"nodeType":"ParameterList","parameters":[],"src":"590:0:275"},"scope":163427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IOptimismPortal","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163427],"name":"IOptimismPortal","nameLocation":"117:15:275","scope":163545,"usedErrors":[]},{"id":163446,"nodeType":"ContractDefinition","src":"595:240:275","nodes":[{"id":163432,"nodeType":"FunctionDefinition","src":"629:52:275","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"638:8:275","parameters":{"id":163428,"nodeType":"ParameterList","parameters":[],"src":"646:2:275"},"returnParameters":{"id":163431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163432,"src":"672:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163429,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"671:9:275"},"scope":163446,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163437,"nodeType":"FunctionDefinition","src":"687:55:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"696:6:275","parameters":{"id":163433,"nodeType":"ParameterList","parameters":[],"src":"702:2:275"},"returnParameters":{"id":163436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163435,"mutability":"mutable","name":"paused_","nameLocation":"733:7:275","nodeType":"VariableDeclaration","scope":163437,"src":"728:12:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163434,"name":"bool","nodeType":"ElementaryTypeName","src":"728:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"727:14:275"},"scope":163446,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163442,"nodeType":"FunctionDefinition","src":"748:51:275","nodes":[],"functionSelector":"6da66355","implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"757:5:275","parameters":{"id":163440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163439,"mutability":"mutable","name":"_identifier","nameLocation":"777:11:275","nodeType":"VariableDeclaration","scope":163442,"src":"763:25:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":163438,"name":"string","nodeType":"ElementaryTypeName","src":"763:6:275","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"762:27:275"},"returnParameters":{"id":163441,"nodeType":"ParameterList","parameters":[],"src":"798:0:275"},"scope":163446,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163445,"nodeType":"FunctionDefinition","src":"805:28:275","nodes":[],"functionSelector":"3f4ba83a","implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"814:7:275","parameters":{"id":163443,"nodeType":"ParameterList","parameters":[],"src":"821:2:275"},"returnParameters":{"id":163444,"nodeType":"ParameterList","parameters":[],"src":"832:0:275"},"scope":163446,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISuperchainConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163446],"name":"ISuperchainConfig","nameLocation":"605:17:275","scope":163545,"usedErrors":[]},{"id":163490,"nodeType":"ContractDefinition","src":"837:564:275","nodes":[{"id":163451,"nodeType":"FunctionDefinition","src":"871:47:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"880:6:275","parameters":{"id":163447,"nodeType":"ParameterList","parameters":[],"src":"886:2:275"},"returnParameters":{"id":163450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163451,"src":"912:4:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163448,"name":"bool","nodeType":"ElementaryTypeName","src":"912:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"911:6:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163457,"nodeType":"FunctionDefinition","src":"924:69:275","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"933:9:275","parameters":{"id":163452,"nodeType":"ParameterList","parameters":[],"src":"942:2:275"},"returnParameters":{"id":163456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163457,"src":"968:23:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":163454,"nodeType":"UserDefinedTypeName","pathNode":{"id":163453,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":163544,"src":"968:23:275"},"referencedDeclaration":163544,"src":"968:23:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"967:25:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163463,"nodeType":"FunctionDefinition","src":"999:65:275","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1008:11:275","parameters":{"id":163458,"nodeType":"ParameterList","parameters":[],"src":"1019:2:275"},"returnParameters":{"id":163462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163463,"src":"1045:17:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"},"typeName":{"id":163460,"nodeType":"UserDefinedTypeName","pathNode":{"id":163459,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":163490,"src":"1045:17:275"},"referencedDeclaration":163490,"src":"1045:17:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1044:19:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163478,"nodeType":"FunctionDefinition","src":"1070:215:275","nodes":[],"functionSelector":"0166a07a","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC20","nameLocation":"1079:19:275","parameters":{"id":163476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163465,"mutability":"mutable","name":"_localToken","nameLocation":"1116:11:275","nodeType":"VariableDeclaration","scope":163478,"src":"1108:19:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163464,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163467,"mutability":"mutable","name":"_remoteToken","nameLocation":"1145:12:275","nodeType":"VariableDeclaration","scope":163478,"src":"1137:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163466,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163469,"mutability":"mutable","name":"_from","nameLocation":"1175:5:275","nodeType":"VariableDeclaration","scope":163478,"src":"1167:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163468,"name":"address","nodeType":"ElementaryTypeName","src":"1167:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163471,"mutability":"mutable","name":"_to","nameLocation":"1198:3:275","nodeType":"VariableDeclaration","scope":163478,"src":"1190:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163470,"name":"address","nodeType":"ElementaryTypeName","src":"1190:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163473,"mutability":"mutable","name":"_amount","nameLocation":"1219:7:275","nodeType":"VariableDeclaration","scope":163478,"src":"1211:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163472,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163475,"mutability":"mutable","name":"_extraData","nameLocation":"1251:10:275","nodeType":"VariableDeclaration","scope":163478,"src":"1236:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163474,"name":"bytes","nodeType":"ElementaryTypeName","src":"1236:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1098:169:275"},"returnParameters":{"id":163477,"nodeType":"ParameterList","parameters":[],"src":"1284:0:275"},"scope":163490,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163489,"nodeType":"FunctionDefinition","src":"1291:108:275","nodes":[],"functionSelector":"1635f5fd","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeETH","nameLocation":"1300:17:275","parameters":{"id":163487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163480,"mutability":"mutable","name":"_from","nameLocation":"1326:5:275","nodeType":"VariableDeclaration","scope":163489,"src":"1318:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163479,"name":"address","nodeType":"ElementaryTypeName","src":"1318:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163482,"mutability":"mutable","name":"_to","nameLocation":"1341:3:275","nodeType":"VariableDeclaration","scope":163489,"src":"1333:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163481,"name":"address","nodeType":"ElementaryTypeName","src":"1333:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163484,"mutability":"mutable","name":"_amount","nameLocation":"1354:7:275","nodeType":"VariableDeclaration","scope":163489,"src":"1346:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163483,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163486,"mutability":"mutable","name":"_extraData","nameLocation":"1378:10:275","nodeType":"VariableDeclaration","scope":163489,"src":"1363:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163485,"name":"bytes","nodeType":"ElementaryTypeName","src":"1363:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1317:72:275"},"returnParameters":{"id":163488,"nodeType":"ParameterList","parameters":[],"src":"1398:0:275"},"scope":163490,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1StandardBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163490],"name":"IL1StandardBridge","nameLocation":"847:17:275","scope":163545,"usedErrors":[]},{"id":163523,"nodeType":"ContractDefinition","src":"1403:449:275","nodes":[{"id":163495,"nodeType":"FunctionDefinition","src":"1435:47:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1444:6:275","parameters":{"id":163491,"nodeType":"ParameterList","parameters":[],"src":"1450:2:275"},"returnParameters":{"id":163494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163495,"src":"1476:4:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163492,"name":"bool","nodeType":"ElementaryTypeName","src":"1476:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1475:6:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163501,"nodeType":"FunctionDefinition","src":"1488:69:275","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"1497:9:275","parameters":{"id":163496,"nodeType":"ParameterList","parameters":[],"src":"1506:2:275"},"returnParameters":{"id":163500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163501,"src":"1532:23:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":163498,"nodeType":"UserDefinedTypeName","pathNode":{"id":163497,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":163544,"src":"1532:23:275"},"referencedDeclaration":163544,"src":"1532:23:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"1531:25:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163507,"nodeType":"FunctionDefinition","src":"1563:65:275","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1572:11:275","parameters":{"id":163502,"nodeType":"ParameterList","parameters":[],"src":"1583:2:275"},"returnParameters":{"id":163506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163507,"src":"1609:17:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"},"typeName":{"id":163504,"nodeType":"UserDefinedTypeName","pathNode":{"id":163503,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":163490,"src":"1609:17:275"},"referencedDeclaration":163490,"src":"1609:17:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1608:19:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163522,"nodeType":"FunctionDefinition","src":"1634:216:275","nodes":[],"functionSelector":"761f4493","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC721","nameLocation":"1643:20:275","parameters":{"id":163520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163509,"mutability":"mutable","name":"_localToken","nameLocation":"1681:11:275","nodeType":"VariableDeclaration","scope":163522,"src":"1673:19:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163508,"name":"address","nodeType":"ElementaryTypeName","src":"1673:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163511,"mutability":"mutable","name":"_remoteToken","nameLocation":"1710:12:275","nodeType":"VariableDeclaration","scope":163522,"src":"1702:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163510,"name":"address","nodeType":"ElementaryTypeName","src":"1702:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163513,"mutability":"mutable","name":"_from","nameLocation":"1740:5:275","nodeType":"VariableDeclaration","scope":163522,"src":"1732:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163512,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163515,"mutability":"mutable","name":"_to","nameLocation":"1763:3:275","nodeType":"VariableDeclaration","scope":163522,"src":"1755:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163514,"name":"address","nodeType":"ElementaryTypeName","src":"1755:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163517,"mutability":"mutable","name":"_amount","nameLocation":"1784:7:275","nodeType":"VariableDeclaration","scope":163522,"src":"1776:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163519,"mutability":"mutable","name":"_extraData","nameLocation":"1816:10:275","nodeType":"VariableDeclaration","scope":163522,"src":"1801:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163518,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1663:169:275"},"returnParameters":{"id":163521,"nodeType":"ParameterList","parameters":[],"src":"1849:0:275"},"scope":163523,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1ERC721Bridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163523],"name":"IL1ERC721Bridge","nameLocation":"1413:15:275","scope":163545,"usedErrors":[]},{"id":163544,"nodeType":"ContractDefinition","src":"1854:334:275","nodes":[{"id":163538,"nodeType":"FunctionDefinition","src":"1894:222:275","nodes":[],"functionSelector":"d764ad0b","implemented":false,"kind":"function","modifiers":[],"name":"relayMessage","nameLocation":"1903:12:275","parameters":{"id":163536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163525,"mutability":"mutable","name":"_nonce","nameLocation":"1933:6:275","nodeType":"VariableDeclaration","scope":163538,"src":"1925:14:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163524,"name":"uint256","nodeType":"ElementaryTypeName","src":"1925:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163527,"mutability":"mutable","name":"_sender","nameLocation":"1957:7:275","nodeType":"VariableDeclaration","scope":163538,"src":"1949:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163526,"name":"address","nodeType":"ElementaryTypeName","src":"1949:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163529,"mutability":"mutable","name":"_target","nameLocation":"1982:7:275","nodeType":"VariableDeclaration","scope":163538,"src":"1974:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163528,"name":"address","nodeType":"ElementaryTypeName","src":"1974:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163531,"mutability":"mutable","name":"_value","nameLocation":"2007:6:275","nodeType":"VariableDeclaration","scope":163538,"src":"1999:14:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163530,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163533,"mutability":"mutable","name":"_minGasLimit","nameLocation":"2031:12:275","nodeType":"VariableDeclaration","scope":163538,"src":"2023:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163532,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163535,"mutability":"mutable","name":"_message","nameLocation":"2068:8:275","nodeType":"VariableDeclaration","scope":163538,"src":"2053:23:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163534,"name":"bytes","nodeType":"ElementaryTypeName","src":"2053:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1915:167:275"},"returnParameters":{"id":163537,"nodeType":"ParameterList","parameters":[],"src":"2115:0:275"},"scope":163544,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":163543,"nodeType":"FunctionDefinition","src":"2122:64:275","nodes":[],"functionSelector":"6e296e45","implemented":false,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"2131:20:275","parameters":{"id":163539,"nodeType":"ParameterList","parameters":[],"src":"2151:2:275"},"returnParameters":{"id":163542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163543,"src":"2177:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163540,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2176:9:275"},"scope":163544,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1CrossDomainMessenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163544],"name":"IL1CrossDomainMessenger","nameLocation":"1864:23:275","scope":163545,"usedErrors":[]}],"license":"MIT"},"id":275}
{"abi":[{"type":"function","name":"relayMessage","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_target","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"xDomainMessageSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"relayMessage(uint256,address,address,uint256,uint256,bytes)":"d764ad0b","xDomainMessageSender()":"6e296e45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"relayMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"xDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IL1CrossDomainMessenger\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_minGasLimit","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"payable","type":"function","name":"relayMessage"},{"inputs":[],"stateMutability":"view","type":"function","name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IL1CrossDomainMessenger"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":292}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"finalizeBridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":"761f4493","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract IL1CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract IL1StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IL1ERC721Bridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC721"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract IL1CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract IL1StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IL1ERC721Bridge"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/kontrol/proofs/interfaces/KontrolInterfaces.sol","id":163545,"exportedSymbols":{"IL1CrossDomainMessenger":[163544],"IL1ERC721Bridge":[163523],"IL1StandardBridge":[163490],"IOptimismPortal":[163427],"ISuperchainConfig":[163446],"Types":[94081]},"nodeType":"SourceUnit","src":"32:2157:275","nodes":[{"id":163394,"nodeType":"PragmaDirective","src":"32:23:275","nodes":[],"literals":["solidity","0.8",".15"]},{"id":163396,"nodeType":"ImportDirective","src":"57:48:275","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":163545,"sourceUnit":94082,"symbolAliases":[{"foreign":{"id":163395,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94081,"src":"66:5:275","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":163427,"nodeType":"ContractDefinition","src":"107:486:275","nodes":[{"id":163401,"nodeType":"FunctionDefinition","src":"139:52:275","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"148:8:275","parameters":{"id":163397,"nodeType":"ParameterList","parameters":[],"src":"156:2:275"},"returnParameters":{"id":163400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163401,"src":"182:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163398,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"181:9:275"},"scope":163427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163406,"nodeType":"FunctionDefinition","src":"197:55:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"206:6:275","parameters":{"id":163402,"nodeType":"ParameterList","parameters":[],"src":"212:2:275"},"returnParameters":{"id":163405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163404,"mutability":"mutable","name":"paused_","nameLocation":"243:7:275","nodeType":"VariableDeclaration","scope":163406,"src":"238:12:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163403,"name":"bool","nodeType":"ElementaryTypeName","src":"238:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"237:14:275"},"scope":163427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163420,"nodeType":"FunctionDefinition","src":"258:239:275","nodes":[],"functionSelector":"4870496f","implemented":false,"kind":"function","modifiers":[],"name":"proveWithdrawalTransaction","nameLocation":"267:26:275","parameters":{"id":163418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163409,"mutability":"mutable","name":"_tx","nameLocation":"338:3:275","nodeType":"VariableDeclaration","scope":163420,"src":"303:38:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":163408,"nodeType":"UserDefinedTypeName","pathNode":{"id":163407,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":94080,"src":"303:27:275"},"referencedDeclaration":94080,"src":"303:27:275","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"},{"constant":false,"id":163411,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"359:14:275","nodeType":"VariableDeclaration","scope":163420,"src":"351:22:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163410,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163414,"mutability":"mutable","name":"_outputRootProof","nameLocation":"414:16:275","nodeType":"VariableDeclaration","scope":163420,"src":"383:47:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_calldata_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":163413,"nodeType":"UserDefinedTypeName","pathNode":{"id":163412,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":94048,"src":"383:21:275"},"referencedDeclaration":94048,"src":"383:21:275","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"},{"constant":false,"id":163417,"mutability":"mutable","name":"_withdrawalProof","nameLocation":"457:16:275","nodeType":"VariableDeclaration","scope":163420,"src":"440:33:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":163415,"name":"bytes","nodeType":"ElementaryTypeName","src":"440:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":163416,"nodeType":"ArrayTypeName","src":"440:7:275","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"293:186:275"},"returnParameters":{"id":163419,"nodeType":"ParameterList","parameters":[],"src":"496:0:275"},"scope":163427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163426,"nodeType":"FunctionDefinition","src":"503:88:275","nodes":[],"functionSelector":"8c3152e9","implemented":false,"kind":"function","modifiers":[],"name":"finalizeWithdrawalTransaction","nameLocation":"512:29:275","parameters":{"id":163424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163423,"mutability":"mutable","name":"_tx","nameLocation":"577:3:275","nodeType":"VariableDeclaration","scope":163426,"src":"542:38:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":163422,"nodeType":"UserDefinedTypeName","pathNode":{"id":163421,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":94080,"src":"542:27:275"},"referencedDeclaration":94080,"src":"542:27:275","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"541:40:275"},"returnParameters":{"id":163425,"nodeType":"ParameterList","parameters":[],"src":"590:0:275"},"scope":163427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IOptimismPortal","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163427],"name":"IOptimismPortal","nameLocation":"117:15:275","scope":163545,"usedErrors":[]},{"id":163446,"nodeType":"ContractDefinition","src":"595:240:275","nodes":[{"id":163432,"nodeType":"FunctionDefinition","src":"629:52:275","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"638:8:275","parameters":{"id":163428,"nodeType":"ParameterList","parameters":[],"src":"646:2:275"},"returnParameters":{"id":163431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163432,"src":"672:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163429,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"671:9:275"},"scope":163446,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163437,"nodeType":"FunctionDefinition","src":"687:55:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"696:6:275","parameters":{"id":163433,"nodeType":"ParameterList","parameters":[],"src":"702:2:275"},"returnParameters":{"id":163436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163435,"mutability":"mutable","name":"paused_","nameLocation":"733:7:275","nodeType":"VariableDeclaration","scope":163437,"src":"728:12:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163434,"name":"bool","nodeType":"ElementaryTypeName","src":"728:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"727:14:275"},"scope":163446,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163442,"nodeType":"FunctionDefinition","src":"748:51:275","nodes":[],"functionSelector":"6da66355","implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"757:5:275","parameters":{"id":163440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163439,"mutability":"mutable","name":"_identifier","nameLocation":"777:11:275","nodeType":"VariableDeclaration","scope":163442,"src":"763:25:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":163438,"name":"string","nodeType":"ElementaryTypeName","src":"763:6:275","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"762:27:275"},"returnParameters":{"id":163441,"nodeType":"ParameterList","parameters":[],"src":"798:0:275"},"scope":163446,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163445,"nodeType":"FunctionDefinition","src":"805:28:275","nodes":[],"functionSelector":"3f4ba83a","implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"814:7:275","parameters":{"id":163443,"nodeType":"ParameterList","parameters":[],"src":"821:2:275"},"returnParameters":{"id":163444,"nodeType":"ParameterList","parameters":[],"src":"832:0:275"},"scope":163446,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISuperchainConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163446],"name":"ISuperchainConfig","nameLocation":"605:17:275","scope":163545,"usedErrors":[]},{"id":163490,"nodeType":"ContractDefinition","src":"837:564:275","nodes":[{"id":163451,"nodeType":"FunctionDefinition","src":"871:47:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"880:6:275","parameters":{"id":163447,"nodeType":"ParameterList","parameters":[],"src":"886:2:275"},"returnParameters":{"id":163450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163451,"src":"912:4:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163448,"name":"bool","nodeType":"ElementaryTypeName","src":"912:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"911:6:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163457,"nodeType":"FunctionDefinition","src":"924:69:275","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"933:9:275","parameters":{"id":163452,"nodeType":"ParameterList","parameters":[],"src":"942:2:275"},"returnParameters":{"id":163456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163457,"src":"968:23:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":163454,"nodeType":"UserDefinedTypeName","pathNode":{"id":163453,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":163544,"src":"968:23:275"},"referencedDeclaration":163544,"src":"968:23:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"967:25:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163463,"nodeType":"FunctionDefinition","src":"999:65:275","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1008:11:275","parameters":{"id":163458,"nodeType":"ParameterList","parameters":[],"src":"1019:2:275"},"returnParameters":{"id":163462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163463,"src":"1045:17:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"},"typeName":{"id":163460,"nodeType":"UserDefinedTypeName","pathNode":{"id":163459,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":163490,"src":"1045:17:275"},"referencedDeclaration":163490,"src":"1045:17:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1044:19:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163478,"nodeType":"FunctionDefinition","src":"1070:215:275","nodes":[],"functionSelector":"0166a07a","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC20","nameLocation":"1079:19:275","parameters":{"id":163476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163465,"mutability":"mutable","name":"_localToken","nameLocation":"1116:11:275","nodeType":"VariableDeclaration","scope":163478,"src":"1108:19:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163464,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163467,"mutability":"mutable","name":"_remoteToken","nameLocation":"1145:12:275","nodeType":"VariableDeclaration","scope":163478,"src":"1137:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163466,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163469,"mutability":"mutable","name":"_from","nameLocation":"1175:5:275","nodeType":"VariableDeclaration","scope":163478,"src":"1167:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163468,"name":"address","nodeType":"ElementaryTypeName","src":"1167:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163471,"mutability":"mutable","name":"_to","nameLocation":"1198:3:275","nodeType":"VariableDeclaration","scope":163478,"src":"1190:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163470,"name":"address","nodeType":"ElementaryTypeName","src":"1190:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163473,"mutability":"mutable","name":"_amount","nameLocation":"1219:7:275","nodeType":"VariableDeclaration","scope":163478,"src":"1211:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163472,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163475,"mutability":"mutable","name":"_extraData","nameLocation":"1251:10:275","nodeType":"VariableDeclaration","scope":163478,"src":"1236:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163474,"name":"bytes","nodeType":"ElementaryTypeName","src":"1236:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1098:169:275"},"returnParameters":{"id":163477,"nodeType":"ParameterList","parameters":[],"src":"1284:0:275"},"scope":163490,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163489,"nodeType":"FunctionDefinition","src":"1291:108:275","nodes":[],"functionSelector":"1635f5fd","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeETH","nameLocation":"1300:17:275","parameters":{"id":163487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163480,"mutability":"mutable","name":"_from","nameLocation":"1326:5:275","nodeType":"VariableDeclaration","scope":163489,"src":"1318:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163479,"name":"address","nodeType":"ElementaryTypeName","src":"1318:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163482,"mutability":"mutable","name":"_to","nameLocation":"1341:3:275","nodeType":"VariableDeclaration","scope":163489,"src":"1333:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163481,"name":"address","nodeType":"ElementaryTypeName","src":"1333:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163484,"mutability":"mutable","name":"_amount","nameLocation":"1354:7:275","nodeType":"VariableDeclaration","scope":163489,"src":"1346:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163483,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163486,"mutability":"mutable","name":"_extraData","nameLocation":"1378:10:275","nodeType":"VariableDeclaration","scope":163489,"src":"1363:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163485,"name":"bytes","nodeType":"ElementaryTypeName","src":"1363:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1317:72:275"},"returnParameters":{"id":163488,"nodeType":"ParameterList","parameters":[],"src":"1398:0:275"},"scope":163490,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1StandardBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163490],"name":"IL1StandardBridge","nameLocation":"847:17:275","scope":163545,"usedErrors":[]},{"id":163523,"nodeType":"ContractDefinition","src":"1403:449:275","nodes":[{"id":163495,"nodeType":"FunctionDefinition","src":"1435:47:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1444:6:275","parameters":{"id":163491,"nodeType":"ParameterList","parameters":[],"src":"1450:2:275"},"returnParameters":{"id":163494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163495,"src":"1476:4:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163492,"name":"bool","nodeType":"ElementaryTypeName","src":"1476:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1475:6:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163501,"nodeType":"FunctionDefinition","src":"1488:69:275","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"1497:9:275","parameters":{"id":163496,"nodeType":"ParameterList","parameters":[],"src":"1506:2:275"},"returnParameters":{"id":163500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163501,"src":"1532:23:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":163498,"nodeType":"UserDefinedTypeName","pathNode":{"id":163497,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":163544,"src":"1532:23:275"},"referencedDeclaration":163544,"src":"1532:23:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"1531:25:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163507,"nodeType":"FunctionDefinition","src":"1563:65:275","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1572:11:275","parameters":{"id":163502,"nodeType":"ParameterList","parameters":[],"src":"1583:2:275"},"returnParameters":{"id":163506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163507,"src":"1609:17:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"},"typeName":{"id":163504,"nodeType":"UserDefinedTypeName","pathNode":{"id":163503,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":163490,"src":"1609:17:275"},"referencedDeclaration":163490,"src":"1609:17:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1608:19:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163522,"nodeType":"FunctionDefinition","src":"1634:216:275","nodes":[],"functionSelector":"761f4493","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC721","nameLocation":"1643:20:275","parameters":{"id":163520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163509,"mutability":"mutable","name":"_localToken","nameLocation":"1681:11:275","nodeType":"VariableDeclaration","scope":163522,"src":"1673:19:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163508,"name":"address","nodeType":"ElementaryTypeName","src":"1673:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163511,"mutability":"mutable","name":"_remoteToken","nameLocation":"1710:12:275","nodeType":"VariableDeclaration","scope":163522,"src":"1702:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163510,"name":"address","nodeType":"ElementaryTypeName","src":"1702:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163513,"mutability":"mutable","name":"_from","nameLocation":"1740:5:275","nodeType":"VariableDeclaration","scope":163522,"src":"1732:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163512,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163515,"mutability":"mutable","name":"_to","nameLocation":"1763:3:275","nodeType":"VariableDeclaration","scope":163522,"src":"1755:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163514,"name":"address","nodeType":"ElementaryTypeName","src":"1755:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163517,"mutability":"mutable","name":"_amount","nameLocation":"1784:7:275","nodeType":"VariableDeclaration","scope":163522,"src":"1776:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163519,"mutability":"mutable","name":"_extraData","nameLocation":"1816:10:275","nodeType":"VariableDeclaration","scope":163522,"src":"1801:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163518,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1663:169:275"},"returnParameters":{"id":163521,"nodeType":"ParameterList","parameters":[],"src":"1849:0:275"},"scope":163523,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1ERC721Bridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163523],"name":"IL1ERC721Bridge","nameLocation":"1413:15:275","scope":163545,"usedErrors":[]},{"id":163544,"nodeType":"ContractDefinition","src":"1854:334:275","nodes":[{"id":163538,"nodeType":"FunctionDefinition","src":"1894:222:275","nodes":[],"functionSelector":"d764ad0b","implemented":false,"kind":"function","modifiers":[],"name":"relayMessage","nameLocation":"1903:12:275","parameters":{"id":163536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163525,"mutability":"mutable","name":"_nonce","nameLocation":"1933:6:275","nodeType":"VariableDeclaration","scope":163538,"src":"1925:14:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163524,"name":"uint256","nodeType":"ElementaryTypeName","src":"1925:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163527,"mutability":"mutable","name":"_sender","nameLocation":"1957:7:275","nodeType":"VariableDeclaration","scope":163538,"src":"1949:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163526,"name":"address","nodeType":"ElementaryTypeName","src":"1949:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163529,"mutability":"mutable","name":"_target","nameLocation":"1982:7:275","nodeType":"VariableDeclaration","scope":163538,"src":"1974:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163528,"name":"address","nodeType":"ElementaryTypeName","src":"1974:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163531,"mutability":"mutable","name":"_value","nameLocation":"2007:6:275","nodeType":"VariableDeclaration","scope":163538,"src":"1999:14:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163530,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163533,"mutability":"mutable","name":"_minGasLimit","nameLocation":"2031:12:275","nodeType":"VariableDeclaration","scope":163538,"src":"2023:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163532,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163535,"mutability":"mutable","name":"_message","nameLocation":"2068:8:275","nodeType":"VariableDeclaration","scope":163538,"src":"2053:23:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163534,"name":"bytes","nodeType":"ElementaryTypeName","src":"2053:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1915:167:275"},"returnParameters":{"id":163537,"nodeType":"ParameterList","parameters":[],"src":"2115:0:275"},"scope":163544,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":163543,"nodeType":"FunctionDefinition","src":"2122:64:275","nodes":[],"functionSelector":"6e296e45","implemented":false,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"2131:20:275","parameters":{"id":163539,"nodeType":"ParameterList","parameters":[],"src":"2151:2:275"},"returnParameters":{"id":163542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163543,"src":"2177:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163540,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2176:9:275"},"scope":163544,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1CrossDomainMessenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163544],"name":"IL1CrossDomainMessenger","nameLocation":"1864:23:275","scope":163545,"usedErrors":[]}],"license":"MIT"},"id":275}
{"abi":[{"type":"function","name":"finalizeBridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":"761f4493","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract IL1CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract IL1StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IL1ERC721Bridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC721"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract IL1CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract IL1StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IL1ERC721Bridge"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":292}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"finalizeBridgeERC20","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizeBridgeETH","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"finalizeBridgeERC20(address,address,address,address,uint256,bytes)":"0166a07a","finalizeBridgeETH(address,address,uint256,bytes)":"1635f5fd","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract IL1CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract IL1StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IL1StandardBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC20"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeETH"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract IL1CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract IL1StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IL1StandardBridge"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/kontrol/proofs/interfaces/KontrolInterfaces.sol","id":163545,"exportedSymbols":{"IL1CrossDomainMessenger":[163544],"IL1ERC721Bridge":[163523],"IL1StandardBridge":[163490],"IOptimismPortal":[163427],"ISuperchainConfig":[163446],"Types":[94081]},"nodeType":"SourceUnit","src":"32:2157:275","nodes":[{"id":163394,"nodeType":"PragmaDirective","src":"32:23:275","nodes":[],"literals":["solidity","0.8",".15"]},{"id":163396,"nodeType":"ImportDirective","src":"57:48:275","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":163545,"sourceUnit":94082,"symbolAliases":[{"foreign":{"id":163395,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94081,"src":"66:5:275","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":163427,"nodeType":"ContractDefinition","src":"107:486:275","nodes":[{"id":163401,"nodeType":"FunctionDefinition","src":"139:52:275","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"148:8:275","parameters":{"id":163397,"nodeType":"ParameterList","parameters":[],"src":"156:2:275"},"returnParameters":{"id":163400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163401,"src":"182:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163398,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"181:9:275"},"scope":163427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163406,"nodeType":"FunctionDefinition","src":"197:55:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"206:6:275","parameters":{"id":163402,"nodeType":"ParameterList","parameters":[],"src":"212:2:275"},"returnParameters":{"id":163405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163404,"mutability":"mutable","name":"paused_","nameLocation":"243:7:275","nodeType":"VariableDeclaration","scope":163406,"src":"238:12:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163403,"name":"bool","nodeType":"ElementaryTypeName","src":"238:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"237:14:275"},"scope":163427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163420,"nodeType":"FunctionDefinition","src":"258:239:275","nodes":[],"functionSelector":"4870496f","implemented":false,"kind":"function","modifiers":[],"name":"proveWithdrawalTransaction","nameLocation":"267:26:275","parameters":{"id":163418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163409,"mutability":"mutable","name":"_tx","nameLocation":"338:3:275","nodeType":"VariableDeclaration","scope":163420,"src":"303:38:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":163408,"nodeType":"UserDefinedTypeName","pathNode":{"id":163407,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":94080,"src":"303:27:275"},"referencedDeclaration":94080,"src":"303:27:275","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"},{"constant":false,"id":163411,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"359:14:275","nodeType":"VariableDeclaration","scope":163420,"src":"351:22:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163410,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163414,"mutability":"mutable","name":"_outputRootProof","nameLocation":"414:16:275","nodeType":"VariableDeclaration","scope":163420,"src":"383:47:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_calldata_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":163413,"nodeType":"UserDefinedTypeName","pathNode":{"id":163412,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":94048,"src":"383:21:275"},"referencedDeclaration":94048,"src":"383:21:275","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"},{"constant":false,"id":163417,"mutability":"mutable","name":"_withdrawalProof","nameLocation":"457:16:275","nodeType":"VariableDeclaration","scope":163420,"src":"440:33:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":163415,"name":"bytes","nodeType":"ElementaryTypeName","src":"440:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":163416,"nodeType":"ArrayTypeName","src":"440:7:275","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"293:186:275"},"returnParameters":{"id":163419,"nodeType":"ParameterList","parameters":[],"src":"496:0:275"},"scope":163427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163426,"nodeType":"FunctionDefinition","src":"503:88:275","nodes":[],"functionSelector":"8c3152e9","implemented":false,"kind":"function","modifiers":[],"name":"finalizeWithdrawalTransaction","nameLocation":"512:29:275","parameters":{"id":163424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163423,"mutability":"mutable","name":"_tx","nameLocation":"577:3:275","nodeType":"VariableDeclaration","scope":163426,"src":"542:38:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":163422,"nodeType":"UserDefinedTypeName","pathNode":{"id":163421,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":94080,"src":"542:27:275"},"referencedDeclaration":94080,"src":"542:27:275","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"541:40:275"},"returnParameters":{"id":163425,"nodeType":"ParameterList","parameters":[],"src":"590:0:275"},"scope":163427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IOptimismPortal","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163427],"name":"IOptimismPortal","nameLocation":"117:15:275","scope":163545,"usedErrors":[]},{"id":163446,"nodeType":"ContractDefinition","src":"595:240:275","nodes":[{"id":163432,"nodeType":"FunctionDefinition","src":"629:52:275","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"638:8:275","parameters":{"id":163428,"nodeType":"ParameterList","parameters":[],"src":"646:2:275"},"returnParameters":{"id":163431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163432,"src":"672:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163429,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"671:9:275"},"scope":163446,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163437,"nodeType":"FunctionDefinition","src":"687:55:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"696:6:275","parameters":{"id":163433,"nodeType":"ParameterList","parameters":[],"src":"702:2:275"},"returnParameters":{"id":163436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163435,"mutability":"mutable","name":"paused_","nameLocation":"733:7:275","nodeType":"VariableDeclaration","scope":163437,"src":"728:12:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163434,"name":"bool","nodeType":"ElementaryTypeName","src":"728:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"727:14:275"},"scope":163446,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163442,"nodeType":"FunctionDefinition","src":"748:51:275","nodes":[],"functionSelector":"6da66355","implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"757:5:275","parameters":{"id":163440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163439,"mutability":"mutable","name":"_identifier","nameLocation":"777:11:275","nodeType":"VariableDeclaration","scope":163442,"src":"763:25:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":163438,"name":"string","nodeType":"ElementaryTypeName","src":"763:6:275","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"762:27:275"},"returnParameters":{"id":163441,"nodeType":"ParameterList","parameters":[],"src":"798:0:275"},"scope":163446,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163445,"nodeType":"FunctionDefinition","src":"805:28:275","nodes":[],"functionSelector":"3f4ba83a","implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"814:7:275","parameters":{"id":163443,"nodeType":"ParameterList","parameters":[],"src":"821:2:275"},"returnParameters":{"id":163444,"nodeType":"ParameterList","parameters":[],"src":"832:0:275"},"scope":163446,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISuperchainConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163446],"name":"ISuperchainConfig","nameLocation":"605:17:275","scope":163545,"usedErrors":[]},{"id":163490,"nodeType":"ContractDefinition","src":"837:564:275","nodes":[{"id":163451,"nodeType":"FunctionDefinition","src":"871:47:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"880:6:275","parameters":{"id":163447,"nodeType":"ParameterList","parameters":[],"src":"886:2:275"},"returnParameters":{"id":163450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163451,"src":"912:4:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163448,"name":"bool","nodeType":"ElementaryTypeName","src":"912:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"911:6:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163457,"nodeType":"FunctionDefinition","src":"924:69:275","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"933:9:275","parameters":{"id":163452,"nodeType":"ParameterList","parameters":[],"src":"942:2:275"},"returnParameters":{"id":163456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163457,"src":"968:23:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":163454,"nodeType":"UserDefinedTypeName","pathNode":{"id":163453,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":163544,"src":"968:23:275"},"referencedDeclaration":163544,"src":"968:23:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"967:25:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163463,"nodeType":"FunctionDefinition","src":"999:65:275","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1008:11:275","parameters":{"id":163458,"nodeType":"ParameterList","parameters":[],"src":"1019:2:275"},"returnParameters":{"id":163462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163463,"src":"1045:17:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"},"typeName":{"id":163460,"nodeType":"UserDefinedTypeName","pathNode":{"id":163459,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":163490,"src":"1045:17:275"},"referencedDeclaration":163490,"src":"1045:17:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1044:19:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163478,"nodeType":"FunctionDefinition","src":"1070:215:275","nodes":[],"functionSelector":"0166a07a","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC20","nameLocation":"1079:19:275","parameters":{"id":163476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163465,"mutability":"mutable","name":"_localToken","nameLocation":"1116:11:275","nodeType":"VariableDeclaration","scope":163478,"src":"1108:19:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163464,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163467,"mutability":"mutable","name":"_remoteToken","nameLocation":"1145:12:275","nodeType":"VariableDeclaration","scope":163478,"src":"1137:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163466,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163469,"mutability":"mutable","name":"_from","nameLocation":"1175:5:275","nodeType":"VariableDeclaration","scope":163478,"src":"1167:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163468,"name":"address","nodeType":"ElementaryTypeName","src":"1167:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163471,"mutability":"mutable","name":"_to","nameLocation":"1198:3:275","nodeType":"VariableDeclaration","scope":163478,"src":"1190:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163470,"name":"address","nodeType":"ElementaryTypeName","src":"1190:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163473,"mutability":"mutable","name":"_amount","nameLocation":"1219:7:275","nodeType":"VariableDeclaration","scope":163478,"src":"1211:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163472,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163475,"mutability":"mutable","name":"_extraData","nameLocation":"1251:10:275","nodeType":"VariableDeclaration","scope":163478,"src":"1236:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163474,"name":"bytes","nodeType":"ElementaryTypeName","src":"1236:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1098:169:275"},"returnParameters":{"id":163477,"nodeType":"ParameterList","parameters":[],"src":"1284:0:275"},"scope":163490,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163489,"nodeType":"FunctionDefinition","src":"1291:108:275","nodes":[],"functionSelector":"1635f5fd","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeETH","nameLocation":"1300:17:275","parameters":{"id":163487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163480,"mutability":"mutable","name":"_from","nameLocation":"1326:5:275","nodeType":"VariableDeclaration","scope":163489,"src":"1318:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163479,"name":"address","nodeType":"ElementaryTypeName","src":"1318:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163482,"mutability":"mutable","name":"_to","nameLocation":"1341:3:275","nodeType":"VariableDeclaration","scope":163489,"src":"1333:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163481,"name":"address","nodeType":"ElementaryTypeName","src":"1333:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163484,"mutability":"mutable","name":"_amount","nameLocation":"1354:7:275","nodeType":"VariableDeclaration","scope":163489,"src":"1346:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163483,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163486,"mutability":"mutable","name":"_extraData","nameLocation":"1378:10:275","nodeType":"VariableDeclaration","scope":163489,"src":"1363:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163485,"name":"bytes","nodeType":"ElementaryTypeName","src":"1363:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1317:72:275"},"returnParameters":{"id":163488,"nodeType":"ParameterList","parameters":[],"src":"1398:0:275"},"scope":163490,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1StandardBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163490],"name":"IL1StandardBridge","nameLocation":"847:17:275","scope":163545,"usedErrors":[]},{"id":163523,"nodeType":"ContractDefinition","src":"1403:449:275","nodes":[{"id":163495,"nodeType":"FunctionDefinition","src":"1435:47:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1444:6:275","parameters":{"id":163491,"nodeType":"ParameterList","parameters":[],"src":"1450:2:275"},"returnParameters":{"id":163494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163495,"src":"1476:4:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163492,"name":"bool","nodeType":"ElementaryTypeName","src":"1476:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1475:6:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163501,"nodeType":"FunctionDefinition","src":"1488:69:275","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"1497:9:275","parameters":{"id":163496,"nodeType":"ParameterList","parameters":[],"src":"1506:2:275"},"returnParameters":{"id":163500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163501,"src":"1532:23:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":163498,"nodeType":"UserDefinedTypeName","pathNode":{"id":163497,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":163544,"src":"1532:23:275"},"referencedDeclaration":163544,"src":"1532:23:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"1531:25:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163507,"nodeType":"FunctionDefinition","src":"1563:65:275","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1572:11:275","parameters":{"id":163502,"nodeType":"ParameterList","parameters":[],"src":"1583:2:275"},"returnParameters":{"id":163506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163507,"src":"1609:17:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"},"typeName":{"id":163504,"nodeType":"UserDefinedTypeName","pathNode":{"id":163503,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":163490,"src":"1609:17:275"},"referencedDeclaration":163490,"src":"1609:17:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1608:19:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163522,"nodeType":"FunctionDefinition","src":"1634:216:275","nodes":[],"functionSelector":"761f4493","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC721","nameLocation":"1643:20:275","parameters":{"id":163520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163509,"mutability":"mutable","name":"_localToken","nameLocation":"1681:11:275","nodeType":"VariableDeclaration","scope":163522,"src":"1673:19:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163508,"name":"address","nodeType":"ElementaryTypeName","src":"1673:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163511,"mutability":"mutable","name":"_remoteToken","nameLocation":"1710:12:275","nodeType":"VariableDeclaration","scope":163522,"src":"1702:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163510,"name":"address","nodeType":"ElementaryTypeName","src":"1702:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163513,"mutability":"mutable","name":"_from","nameLocation":"1740:5:275","nodeType":"VariableDeclaration","scope":163522,"src":"1732:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163512,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163515,"mutability":"mutable","name":"_to","nameLocation":"1763:3:275","nodeType":"VariableDeclaration","scope":163522,"src":"1755:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163514,"name":"address","nodeType":"ElementaryTypeName","src":"1755:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163517,"mutability":"mutable","name":"_amount","nameLocation":"1784:7:275","nodeType":"VariableDeclaration","scope":163522,"src":"1776:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163519,"mutability":"mutable","name":"_extraData","nameLocation":"1816:10:275","nodeType":"VariableDeclaration","scope":163522,"src":"1801:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163518,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1663:169:275"},"returnParameters":{"id":163521,"nodeType":"ParameterList","parameters":[],"src":"1849:0:275"},"scope":163523,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1ERC721Bridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163523],"name":"IL1ERC721Bridge","nameLocation":"1413:15:275","scope":163545,"usedErrors":[]},{"id":163544,"nodeType":"ContractDefinition","src":"1854:334:275","nodes":[{"id":163538,"nodeType":"FunctionDefinition","src":"1894:222:275","nodes":[],"functionSelector":"d764ad0b","implemented":false,"kind":"function","modifiers":[],"name":"relayMessage","nameLocation":"1903:12:275","parameters":{"id":163536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163525,"mutability":"mutable","name":"_nonce","nameLocation":"1933:6:275","nodeType":"VariableDeclaration","scope":163538,"src":"1925:14:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163524,"name":"uint256","nodeType":"ElementaryTypeName","src":"1925:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163527,"mutability":"mutable","name":"_sender","nameLocation":"1957:7:275","nodeType":"VariableDeclaration","scope":163538,"src":"1949:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163526,"name":"address","nodeType":"ElementaryTypeName","src":"1949:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163529,"mutability":"mutable","name":"_target","nameLocation":"1982:7:275","nodeType":"VariableDeclaration","scope":163538,"src":"1974:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163528,"name":"address","nodeType":"ElementaryTypeName","src":"1974:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163531,"mutability":"mutable","name":"_value","nameLocation":"2007:6:275","nodeType":"VariableDeclaration","scope":163538,"src":"1999:14:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163530,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163533,"mutability":"mutable","name":"_minGasLimit","nameLocation":"2031:12:275","nodeType":"VariableDeclaration","scope":163538,"src":"2023:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163532,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163535,"mutability":"mutable","name":"_message","nameLocation":"2068:8:275","nodeType":"VariableDeclaration","scope":163538,"src":"2053:23:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163534,"name":"bytes","nodeType":"ElementaryTypeName","src":"2053:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1915:167:275"},"returnParameters":{"id":163537,"nodeType":"ParameterList","parameters":[],"src":"2115:0:275"},"scope":163544,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":163543,"nodeType":"FunctionDefinition","src":"2122:64:275","nodes":[],"functionSelector":"6e296e45","implemented":false,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"2131:20:275","parameters":{"id":163539,"nodeType":"ParameterList","parameters":[],"src":"2151:2:275"},"returnParameters":{"id":163542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163543,"src":"2177:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163540,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2176:9:275"},"scope":163544,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1CrossDomainMessenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163544],"name":"IL1CrossDomainMessenger","nameLocation":"1864:23:275","scope":163545,"usedErrors":[]}],"license":"MIT"},"id":275}
{"abi":[{"type":"function","name":"finalizeBridgeERC20","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizeBridgeETH","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"finalizeBridgeERC20(address,address,address,address,uint256,bytes)":"0166a07a","finalizeBridgeETH(address,address,uint256,bytes)":"1635f5fd","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"finalizeBridgeETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract IL1CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract IL1StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IL1StandardBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC20"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeETH"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract IL1CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract IL1StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IL1StandardBridge"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":292}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"finalizeWithdrawalTransaction","inputs":[{"name":"_tx","type":"tuple","internalType":"struct Types.WithdrawalTransaction","components":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"paused_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proveWithdrawalTransaction","inputs":[{"name":"_tx","type":"tuple","internalType":"struct Types.WithdrawalTransaction","components":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"_l2OutputIndex","type":"uint256","internalType":"uint256"},{"name":"_outputRootProof","type":"tuple","internalType":"struct Types.OutputRootProof","components":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"stateRoot","type":"bytes32","internalType":"bytes32"},{"name":"messagePasserStorageRoot","type":"bytes32","internalType":"bytes32"},{"name":"latestBlockhash","type":"bytes32","internalType":"bytes32"}]},{"name":"_withdrawalProof","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":"8c3152e9","guardian()":"452a9320","paused()":"5c975abb","proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":"4870496f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"}],\"name\":\"finalizeWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"paused_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_l2OutputIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"messagePasserStorageRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"latestBlockhash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.OutputRootProof\",\"name\":\"_outputRootProof\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"_withdrawalProof\",\"type\":\"bytes[]\"}],\"name\":\"proveWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IOptimismPortal\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Types.WithdrawalTransaction","name":"_tx","type":"tuple","components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"finalizeWithdrawalTransaction"},{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"paused_","type":"bool"}]},{"inputs":[{"internalType":"struct Types.WithdrawalTransaction","name":"_tx","type":"tuple","components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256","name":"_l2OutputIndex","type":"uint256"},{"internalType":"struct Types.OutputRootProof","name":"_outputRootProof","type":"tuple","components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"bytes32","name":"stateRoot","type":"bytes32"},{"internalType":"bytes32","name":"messagePasserStorageRoot","type":"bytes32"},{"internalType":"bytes32","name":"latestBlockhash","type":"bytes32"}]},{"internalType":"bytes[]","name":"_withdrawalProof","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"proveWithdrawalTransaction"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IOptimismPortal"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/kontrol/proofs/interfaces/KontrolInterfaces.sol","id":163545,"exportedSymbols":{"IL1CrossDomainMessenger":[163544],"IL1ERC721Bridge":[163523],"IL1StandardBridge":[163490],"IOptimismPortal":[163427],"ISuperchainConfig":[163446],"Types":[94081]},"nodeType":"SourceUnit","src":"32:2157:275","nodes":[{"id":163394,"nodeType":"PragmaDirective","src":"32:23:275","nodes":[],"literals":["solidity","0.8",".15"]},{"id":163396,"nodeType":"ImportDirective","src":"57:48:275","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":163545,"sourceUnit":94082,"symbolAliases":[{"foreign":{"id":163395,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94081,"src":"66:5:275","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":163427,"nodeType":"ContractDefinition","src":"107:486:275","nodes":[{"id":163401,"nodeType":"FunctionDefinition","src":"139:52:275","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"148:8:275","parameters":{"id":163397,"nodeType":"ParameterList","parameters":[],"src":"156:2:275"},"returnParameters":{"id":163400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163401,"src":"182:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163398,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"181:9:275"},"scope":163427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163406,"nodeType":"FunctionDefinition","src":"197:55:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"206:6:275","parameters":{"id":163402,"nodeType":"ParameterList","parameters":[],"src":"212:2:275"},"returnParameters":{"id":163405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163404,"mutability":"mutable","name":"paused_","nameLocation":"243:7:275","nodeType":"VariableDeclaration","scope":163406,"src":"238:12:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163403,"name":"bool","nodeType":"ElementaryTypeName","src":"238:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"237:14:275"},"scope":163427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163420,"nodeType":"FunctionDefinition","src":"258:239:275","nodes":[],"functionSelector":"4870496f","implemented":false,"kind":"function","modifiers":[],"name":"proveWithdrawalTransaction","nameLocation":"267:26:275","parameters":{"id":163418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163409,"mutability":"mutable","name":"_tx","nameLocation":"338:3:275","nodeType":"VariableDeclaration","scope":163420,"src":"303:38:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":163408,"nodeType":"UserDefinedTypeName","pathNode":{"id":163407,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":94080,"src":"303:27:275"},"referencedDeclaration":94080,"src":"303:27:275","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"},{"constant":false,"id":163411,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"359:14:275","nodeType":"VariableDeclaration","scope":163420,"src":"351:22:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163410,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163414,"mutability":"mutable","name":"_outputRootProof","nameLocation":"414:16:275","nodeType":"VariableDeclaration","scope":163420,"src":"383:47:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_calldata_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":163413,"nodeType":"UserDefinedTypeName","pathNode":{"id":163412,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":94048,"src":"383:21:275"},"referencedDeclaration":94048,"src":"383:21:275","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"},{"constant":false,"id":163417,"mutability":"mutable","name":"_withdrawalProof","nameLocation":"457:16:275","nodeType":"VariableDeclaration","scope":163420,"src":"440:33:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":163415,"name":"bytes","nodeType":"ElementaryTypeName","src":"440:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":163416,"nodeType":"ArrayTypeName","src":"440:7:275","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"293:186:275"},"returnParameters":{"id":163419,"nodeType":"ParameterList","parameters":[],"src":"496:0:275"},"scope":163427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163426,"nodeType":"FunctionDefinition","src":"503:88:275","nodes":[],"functionSelector":"8c3152e9","implemented":false,"kind":"function","modifiers":[],"name":"finalizeWithdrawalTransaction","nameLocation":"512:29:275","parameters":{"id":163424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163423,"mutability":"mutable","name":"_tx","nameLocation":"577:3:275","nodeType":"VariableDeclaration","scope":163426,"src":"542:38:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":163422,"nodeType":"UserDefinedTypeName","pathNode":{"id":163421,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":94080,"src":"542:27:275"},"referencedDeclaration":94080,"src":"542:27:275","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"541:40:275"},"returnParameters":{"id":163425,"nodeType":"ParameterList","parameters":[],"src":"590:0:275"},"scope":163427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IOptimismPortal","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163427],"name":"IOptimismPortal","nameLocation":"117:15:275","scope":163545,"usedErrors":[]},{"id":163446,"nodeType":"ContractDefinition","src":"595:240:275","nodes":[{"id":163432,"nodeType":"FunctionDefinition","src":"629:52:275","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"638:8:275","parameters":{"id":163428,"nodeType":"ParameterList","parameters":[],"src":"646:2:275"},"returnParameters":{"id":163431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163432,"src":"672:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163429,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"671:9:275"},"scope":163446,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163437,"nodeType":"FunctionDefinition","src":"687:55:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"696:6:275","parameters":{"id":163433,"nodeType":"ParameterList","parameters":[],"src":"702:2:275"},"returnParameters":{"id":163436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163435,"mutability":"mutable","name":"paused_","nameLocation":"733:7:275","nodeType":"VariableDeclaration","scope":163437,"src":"728:12:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163434,"name":"bool","nodeType":"ElementaryTypeName","src":"728:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"727:14:275"},"scope":163446,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163442,"nodeType":"FunctionDefinition","src":"748:51:275","nodes":[],"functionSelector":"6da66355","implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"757:5:275","parameters":{"id":163440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163439,"mutability":"mutable","name":"_identifier","nameLocation":"777:11:275","nodeType":"VariableDeclaration","scope":163442,"src":"763:25:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":163438,"name":"string","nodeType":"ElementaryTypeName","src":"763:6:275","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"762:27:275"},"returnParameters":{"id":163441,"nodeType":"ParameterList","parameters":[],"src":"798:0:275"},"scope":163446,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163445,"nodeType":"FunctionDefinition","src":"805:28:275","nodes":[],"functionSelector":"3f4ba83a","implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"814:7:275","parameters":{"id":163443,"nodeType":"ParameterList","parameters":[],"src":"821:2:275"},"returnParameters":{"id":163444,"nodeType":"ParameterList","parameters":[],"src":"832:0:275"},"scope":163446,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISuperchainConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163446],"name":"ISuperchainConfig","nameLocation":"605:17:275","scope":163545,"usedErrors":[]},{"id":163490,"nodeType":"ContractDefinition","src":"837:564:275","nodes":[{"id":163451,"nodeType":"FunctionDefinition","src":"871:47:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"880:6:275","parameters":{"id":163447,"nodeType":"ParameterList","parameters":[],"src":"886:2:275"},"returnParameters":{"id":163450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163451,"src":"912:4:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163448,"name":"bool","nodeType":"ElementaryTypeName","src":"912:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"911:6:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163457,"nodeType":"FunctionDefinition","src":"924:69:275","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"933:9:275","parameters":{"id":163452,"nodeType":"ParameterList","parameters":[],"src":"942:2:275"},"returnParameters":{"id":163456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163457,"src":"968:23:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":163454,"nodeType":"UserDefinedTypeName","pathNode":{"id":163453,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":163544,"src":"968:23:275"},"referencedDeclaration":163544,"src":"968:23:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"967:25:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163463,"nodeType":"FunctionDefinition","src":"999:65:275","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1008:11:275","parameters":{"id":163458,"nodeType":"ParameterList","parameters":[],"src":"1019:2:275"},"returnParameters":{"id":163462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163463,"src":"1045:17:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"},"typeName":{"id":163460,"nodeType":"UserDefinedTypeName","pathNode":{"id":163459,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":163490,"src":"1045:17:275"},"referencedDeclaration":163490,"src":"1045:17:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1044:19:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163478,"nodeType":"FunctionDefinition","src":"1070:215:275","nodes":[],"functionSelector":"0166a07a","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC20","nameLocation":"1079:19:275","parameters":{"id":163476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163465,"mutability":"mutable","name":"_localToken","nameLocation":"1116:11:275","nodeType":"VariableDeclaration","scope":163478,"src":"1108:19:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163464,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163467,"mutability":"mutable","name":"_remoteToken","nameLocation":"1145:12:275","nodeType":"VariableDeclaration","scope":163478,"src":"1137:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163466,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163469,"mutability":"mutable","name":"_from","nameLocation":"1175:5:275","nodeType":"VariableDeclaration","scope":163478,"src":"1167:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163468,"name":"address","nodeType":"ElementaryTypeName","src":"1167:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163471,"mutability":"mutable","name":"_to","nameLocation":"1198:3:275","nodeType":"VariableDeclaration","scope":163478,"src":"1190:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163470,"name":"address","nodeType":"ElementaryTypeName","src":"1190:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163473,"mutability":"mutable","name":"_amount","nameLocation":"1219:7:275","nodeType":"VariableDeclaration","scope":163478,"src":"1211:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163472,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163475,"mutability":"mutable","name":"_extraData","nameLocation":"1251:10:275","nodeType":"VariableDeclaration","scope":163478,"src":"1236:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163474,"name":"bytes","nodeType":"ElementaryTypeName","src":"1236:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1098:169:275"},"returnParameters":{"id":163477,"nodeType":"ParameterList","parameters":[],"src":"1284:0:275"},"scope":163490,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163489,"nodeType":"FunctionDefinition","src":"1291:108:275","nodes":[],"functionSelector":"1635f5fd","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeETH","nameLocation":"1300:17:275","parameters":{"id":163487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163480,"mutability":"mutable","name":"_from","nameLocation":"1326:5:275","nodeType":"VariableDeclaration","scope":163489,"src":"1318:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163479,"name":"address","nodeType":"ElementaryTypeName","src":"1318:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163482,"mutability":"mutable","name":"_to","nameLocation":"1341:3:275","nodeType":"VariableDeclaration","scope":163489,"src":"1333:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163481,"name":"address","nodeType":"ElementaryTypeName","src":"1333:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163484,"mutability":"mutable","name":"_amount","nameLocation":"1354:7:275","nodeType":"VariableDeclaration","scope":163489,"src":"1346:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163483,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163486,"mutability":"mutable","name":"_extraData","nameLocation":"1378:10:275","nodeType":"VariableDeclaration","scope":163489,"src":"1363:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163485,"name":"bytes","nodeType":"ElementaryTypeName","src":"1363:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1317:72:275"},"returnParameters":{"id":163488,"nodeType":"ParameterList","parameters":[],"src":"1398:0:275"},"scope":163490,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1StandardBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163490],"name":"IL1StandardBridge","nameLocation":"847:17:275","scope":163545,"usedErrors":[]},{"id":163523,"nodeType":"ContractDefinition","src":"1403:449:275","nodes":[{"id":163495,"nodeType":"FunctionDefinition","src":"1435:47:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1444:6:275","parameters":{"id":163491,"nodeType":"ParameterList","parameters":[],"src":"1450:2:275"},"returnParameters":{"id":163494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163495,"src":"1476:4:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163492,"name":"bool","nodeType":"ElementaryTypeName","src":"1476:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1475:6:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163501,"nodeType":"FunctionDefinition","src":"1488:69:275","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"1497:9:275","parameters":{"id":163496,"nodeType":"ParameterList","parameters":[],"src":"1506:2:275"},"returnParameters":{"id":163500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163501,"src":"1532:23:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":163498,"nodeType":"UserDefinedTypeName","pathNode":{"id":163497,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":163544,"src":"1532:23:275"},"referencedDeclaration":163544,"src":"1532:23:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"1531:25:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163507,"nodeType":"FunctionDefinition","src":"1563:65:275","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1572:11:275","parameters":{"id":163502,"nodeType":"ParameterList","parameters":[],"src":"1583:2:275"},"returnParameters":{"id":163506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163507,"src":"1609:17:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"},"typeName":{"id":163504,"nodeType":"UserDefinedTypeName","pathNode":{"id":163503,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":163490,"src":"1609:17:275"},"referencedDeclaration":163490,"src":"1609:17:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1608:19:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163522,"nodeType":"FunctionDefinition","src":"1634:216:275","nodes":[],"functionSelector":"761f4493","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC721","nameLocation":"1643:20:275","parameters":{"id":163520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163509,"mutability":"mutable","name":"_localToken","nameLocation":"1681:11:275","nodeType":"VariableDeclaration","scope":163522,"src":"1673:19:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163508,"name":"address","nodeType":"ElementaryTypeName","src":"1673:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163511,"mutability":"mutable","name":"_remoteToken","nameLocation":"1710:12:275","nodeType":"VariableDeclaration","scope":163522,"src":"1702:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163510,"name":"address","nodeType":"ElementaryTypeName","src":"1702:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163513,"mutability":"mutable","name":"_from","nameLocation":"1740:5:275","nodeType":"VariableDeclaration","scope":163522,"src":"1732:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163512,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163515,"mutability":"mutable","name":"_to","nameLocation":"1763:3:275","nodeType":"VariableDeclaration","scope":163522,"src":"1755:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163514,"name":"address","nodeType":"ElementaryTypeName","src":"1755:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163517,"mutability":"mutable","name":"_amount","nameLocation":"1784:7:275","nodeType":"VariableDeclaration","scope":163522,"src":"1776:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163519,"mutability":"mutable","name":"_extraData","nameLocation":"1816:10:275","nodeType":"VariableDeclaration","scope":163522,"src":"1801:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163518,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1663:169:275"},"returnParameters":{"id":163521,"nodeType":"ParameterList","parameters":[],"src":"1849:0:275"},"scope":163523,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1ERC721Bridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163523],"name":"IL1ERC721Bridge","nameLocation":"1413:15:275","scope":163545,"usedErrors":[]},{"id":163544,"nodeType":"ContractDefinition","src":"1854:334:275","nodes":[{"id":163538,"nodeType":"FunctionDefinition","src":"1894:222:275","nodes":[],"functionSelector":"d764ad0b","implemented":false,"kind":"function","modifiers":[],"name":"relayMessage","nameLocation":"1903:12:275","parameters":{"id":163536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163525,"mutability":"mutable","name":"_nonce","nameLocation":"1933:6:275","nodeType":"VariableDeclaration","scope":163538,"src":"1925:14:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163524,"name":"uint256","nodeType":"ElementaryTypeName","src":"1925:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163527,"mutability":"mutable","name":"_sender","nameLocation":"1957:7:275","nodeType":"VariableDeclaration","scope":163538,"src":"1949:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163526,"name":"address","nodeType":"ElementaryTypeName","src":"1949:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163529,"mutability":"mutable","name":"_target","nameLocation":"1982:7:275","nodeType":"VariableDeclaration","scope":163538,"src":"1974:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163528,"name":"address","nodeType":"ElementaryTypeName","src":"1974:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163531,"mutability":"mutable","name":"_value","nameLocation":"2007:6:275","nodeType":"VariableDeclaration","scope":163538,"src":"1999:14:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163530,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163533,"mutability":"mutable","name":"_minGasLimit","nameLocation":"2031:12:275","nodeType":"VariableDeclaration","scope":163538,"src":"2023:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163532,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163535,"mutability":"mutable","name":"_message","nameLocation":"2068:8:275","nodeType":"VariableDeclaration","scope":163538,"src":"2053:23:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163534,"name":"bytes","nodeType":"ElementaryTypeName","src":"2053:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1915:167:275"},"returnParameters":{"id":163537,"nodeType":"ParameterList","parameters":[],"src":"2115:0:275"},"scope":163544,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":163543,"nodeType":"FunctionDefinition","src":"2122:64:275","nodes":[],"functionSelector":"6e296e45","implemented":false,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"2131:20:275","parameters":{"id":163539,"nodeType":"ParameterList","parameters":[],"src":"2151:2:275"},"returnParameters":{"id":163542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163543,"src":"2177:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163540,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2176:9:275"},"scope":163544,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1CrossDomainMessenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163544],"name":"IL1CrossDomainMessenger","nameLocation":"1864:23:275","scope":163545,"usedErrors":[]}],"license":"MIT"},"id":275}
{"abi":[{"type":"function","name":"finalizeWithdrawalTransaction","inputs":[{"name":"_tx","type":"tuple","internalType":"struct Types.WithdrawalTransaction","components":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"paused_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proveWithdrawalTransaction","inputs":[{"name":"_tx","type":"tuple","internalType":"struct Types.WithdrawalTransaction","components":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"_l2OutputIndex","type":"uint256","internalType":"uint256"},{"name":"_outputRootProof","type":"tuple","internalType":"struct Types.OutputRootProof","components":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"stateRoot","type":"bytes32","internalType":"bytes32"},{"name":"messagePasserStorageRoot","type":"bytes32","internalType":"bytes32"},{"name":"latestBlockhash","type":"bytes32","internalType":"bytes32"}]},{"name":"_withdrawalProof","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))":"8c3152e9","guardian()":"452a9320","paused()":"5c975abb","proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])":"4870496f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"}],\"name\":\"finalizeWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"paused_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_l2OutputIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"messagePasserStorageRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"latestBlockhash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.OutputRootProof\",\"name\":\"_outputRootProof\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"_withdrawalProof\",\"type\":\"bytes[]\"}],\"name\":\"proveWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"IOptimismPortal\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Types.WithdrawalTransaction","name":"_tx","type":"tuple","components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"finalizeWithdrawalTransaction"},{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"paused_","type":"bool"}]},{"inputs":[{"internalType":"struct Types.WithdrawalTransaction","name":"_tx","type":"tuple","components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256","name":"_l2OutputIndex","type":"uint256"},{"internalType":"struct Types.OutputRootProof","name":"_outputRootProof","type":"tuple","components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"bytes32","name":"stateRoot","type":"bytes32"},{"internalType":"bytes32","name":"messagePasserStorageRoot","type":"bytes32"},{"internalType":"bytes32","name":"latestBlockhash","type":"bytes32"}]},{"internalType":"bytes[]","name":"_withdrawalProof","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"proveWithdrawalTransaction"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"IOptimismPortal"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":292}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[{"name":"_identifier","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"paused_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"guardian()":"452a9320","pause(string)":"6da66355","paused()":"5c975abb","unpause()":"3f4ba83a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_identifier\",\"type\":\"string\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"paused_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"ISuperchainConfig\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_identifier","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"paused_","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"ISuperchainConfig"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/kontrol/proofs/interfaces/KontrolInterfaces.sol","id":163545,"exportedSymbols":{"IL1CrossDomainMessenger":[163544],"IL1ERC721Bridge":[163523],"IL1StandardBridge":[163490],"IOptimismPortal":[163427],"ISuperchainConfig":[163446],"Types":[94081]},"nodeType":"SourceUnit","src":"32:2157:275","nodes":[{"id":163394,"nodeType":"PragmaDirective","src":"32:23:275","nodes":[],"literals":["solidity","0.8",".15"]},{"id":163396,"nodeType":"ImportDirective","src":"57:48:275","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":163545,"sourceUnit":94082,"symbolAliases":[{"foreign":{"id":163395,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94081,"src":"66:5:275","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":163427,"nodeType":"ContractDefinition","src":"107:486:275","nodes":[{"id":163401,"nodeType":"FunctionDefinition","src":"139:52:275","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"148:8:275","parameters":{"id":163397,"nodeType":"ParameterList","parameters":[],"src":"156:2:275"},"returnParameters":{"id":163400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163401,"src":"182:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163398,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"181:9:275"},"scope":163427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163406,"nodeType":"FunctionDefinition","src":"197:55:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"206:6:275","parameters":{"id":163402,"nodeType":"ParameterList","parameters":[],"src":"212:2:275"},"returnParameters":{"id":163405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163404,"mutability":"mutable","name":"paused_","nameLocation":"243:7:275","nodeType":"VariableDeclaration","scope":163406,"src":"238:12:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163403,"name":"bool","nodeType":"ElementaryTypeName","src":"238:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"237:14:275"},"scope":163427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163420,"nodeType":"FunctionDefinition","src":"258:239:275","nodes":[],"functionSelector":"4870496f","implemented":false,"kind":"function","modifiers":[],"name":"proveWithdrawalTransaction","nameLocation":"267:26:275","parameters":{"id":163418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163409,"mutability":"mutable","name":"_tx","nameLocation":"338:3:275","nodeType":"VariableDeclaration","scope":163420,"src":"303:38:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":163408,"nodeType":"UserDefinedTypeName","pathNode":{"id":163407,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":94080,"src":"303:27:275"},"referencedDeclaration":94080,"src":"303:27:275","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"},{"constant":false,"id":163411,"mutability":"mutable","name":"_l2OutputIndex","nameLocation":"359:14:275","nodeType":"VariableDeclaration","scope":163420,"src":"351:22:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163410,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163414,"mutability":"mutable","name":"_outputRootProof","nameLocation":"414:16:275","nodeType":"VariableDeclaration","scope":163420,"src":"383:47:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_calldata_ptr","typeString":"struct Types.OutputRootProof"},"typeName":{"id":163413,"nodeType":"UserDefinedTypeName","pathNode":{"id":163412,"name":"Types.OutputRootProof","nodeType":"IdentifierPath","referencedDeclaration":94048,"src":"383:21:275"},"referencedDeclaration":94048,"src":"383:21:275","typeDescriptions":{"typeIdentifier":"t_struct$_OutputRootProof_$94048_storage_ptr","typeString":"struct Types.OutputRootProof"}},"visibility":"internal"},{"constant":false,"id":163417,"mutability":"mutable","name":"_withdrawalProof","nameLocation":"457:16:275","nodeType":"VariableDeclaration","scope":163420,"src":"440:33:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":163415,"name":"bytes","nodeType":"ElementaryTypeName","src":"440:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":163416,"nodeType":"ArrayTypeName","src":"440:7:275","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"293:186:275"},"returnParameters":{"id":163419,"nodeType":"ParameterList","parameters":[],"src":"496:0:275"},"scope":163427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163426,"nodeType":"FunctionDefinition","src":"503:88:275","nodes":[],"functionSelector":"8c3152e9","implemented":false,"kind":"function","modifiers":[],"name":"finalizeWithdrawalTransaction","nameLocation":"512:29:275","parameters":{"id":163424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163423,"mutability":"mutable","name":"_tx","nameLocation":"577:3:275","nodeType":"VariableDeclaration","scope":163426,"src":"542:38:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_memory_ptr","typeString":"struct Types.WithdrawalTransaction"},"typeName":{"id":163422,"nodeType":"UserDefinedTypeName","pathNode":{"id":163421,"name":"Types.WithdrawalTransaction","nodeType":"IdentifierPath","referencedDeclaration":94080,"src":"542:27:275"},"referencedDeclaration":94080,"src":"542:27:275","typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$94080_storage_ptr","typeString":"struct Types.WithdrawalTransaction"}},"visibility":"internal"}],"src":"541:40:275"},"returnParameters":{"id":163425,"nodeType":"ParameterList","parameters":[],"src":"590:0:275"},"scope":163427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IOptimismPortal","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163427],"name":"IOptimismPortal","nameLocation":"117:15:275","scope":163545,"usedErrors":[]},{"id":163446,"nodeType":"ContractDefinition","src":"595:240:275","nodes":[{"id":163432,"nodeType":"FunctionDefinition","src":"629:52:275","nodes":[],"functionSelector":"452a9320","implemented":false,"kind":"function","modifiers":[],"name":"guardian","nameLocation":"638:8:275","parameters":{"id":163428,"nodeType":"ParameterList","parameters":[],"src":"646:2:275"},"returnParameters":{"id":163431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163432,"src":"672:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163429,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"671:9:275"},"scope":163446,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163437,"nodeType":"FunctionDefinition","src":"687:55:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"696:6:275","parameters":{"id":163433,"nodeType":"ParameterList","parameters":[],"src":"702:2:275"},"returnParameters":{"id":163436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163435,"mutability":"mutable","name":"paused_","nameLocation":"733:7:275","nodeType":"VariableDeclaration","scope":163437,"src":"728:12:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163434,"name":"bool","nodeType":"ElementaryTypeName","src":"728:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"727:14:275"},"scope":163446,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163442,"nodeType":"FunctionDefinition","src":"748:51:275","nodes":[],"functionSelector":"6da66355","implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"757:5:275","parameters":{"id":163440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163439,"mutability":"mutable","name":"_identifier","nameLocation":"777:11:275","nodeType":"VariableDeclaration","scope":163442,"src":"763:25:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":163438,"name":"string","nodeType":"ElementaryTypeName","src":"763:6:275","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"762:27:275"},"returnParameters":{"id":163441,"nodeType":"ParameterList","parameters":[],"src":"798:0:275"},"scope":163446,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163445,"nodeType":"FunctionDefinition","src":"805:28:275","nodes":[],"functionSelector":"3f4ba83a","implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"814:7:275","parameters":{"id":163443,"nodeType":"ParameterList","parameters":[],"src":"821:2:275"},"returnParameters":{"id":163444,"nodeType":"ParameterList","parameters":[],"src":"832:0:275"},"scope":163446,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISuperchainConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163446],"name":"ISuperchainConfig","nameLocation":"605:17:275","scope":163545,"usedErrors":[]},{"id":163490,"nodeType":"ContractDefinition","src":"837:564:275","nodes":[{"id":163451,"nodeType":"FunctionDefinition","src":"871:47:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"880:6:275","parameters":{"id":163447,"nodeType":"ParameterList","parameters":[],"src":"886:2:275"},"returnParameters":{"id":163450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163451,"src":"912:4:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163448,"name":"bool","nodeType":"ElementaryTypeName","src":"912:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"911:6:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163457,"nodeType":"FunctionDefinition","src":"924:69:275","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"933:9:275","parameters":{"id":163452,"nodeType":"ParameterList","parameters":[],"src":"942:2:275"},"returnParameters":{"id":163456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163457,"src":"968:23:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":163454,"nodeType":"UserDefinedTypeName","pathNode":{"id":163453,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":163544,"src":"968:23:275"},"referencedDeclaration":163544,"src":"968:23:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"967:25:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163463,"nodeType":"FunctionDefinition","src":"999:65:275","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1008:11:275","parameters":{"id":163458,"nodeType":"ParameterList","parameters":[],"src":"1019:2:275"},"returnParameters":{"id":163462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163463,"src":"1045:17:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"},"typeName":{"id":163460,"nodeType":"UserDefinedTypeName","pathNode":{"id":163459,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":163490,"src":"1045:17:275"},"referencedDeclaration":163490,"src":"1045:17:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1044:19:275"},"scope":163490,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163478,"nodeType":"FunctionDefinition","src":"1070:215:275","nodes":[],"functionSelector":"0166a07a","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC20","nameLocation":"1079:19:275","parameters":{"id":163476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163465,"mutability":"mutable","name":"_localToken","nameLocation":"1116:11:275","nodeType":"VariableDeclaration","scope":163478,"src":"1108:19:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163464,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163467,"mutability":"mutable","name":"_remoteToken","nameLocation":"1145:12:275","nodeType":"VariableDeclaration","scope":163478,"src":"1137:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163466,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163469,"mutability":"mutable","name":"_from","nameLocation":"1175:5:275","nodeType":"VariableDeclaration","scope":163478,"src":"1167:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163468,"name":"address","nodeType":"ElementaryTypeName","src":"1167:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163471,"mutability":"mutable","name":"_to","nameLocation":"1198:3:275","nodeType":"VariableDeclaration","scope":163478,"src":"1190:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163470,"name":"address","nodeType":"ElementaryTypeName","src":"1190:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163473,"mutability":"mutable","name":"_amount","nameLocation":"1219:7:275","nodeType":"VariableDeclaration","scope":163478,"src":"1211:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163472,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163475,"mutability":"mutable","name":"_extraData","nameLocation":"1251:10:275","nodeType":"VariableDeclaration","scope":163478,"src":"1236:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163474,"name":"bytes","nodeType":"ElementaryTypeName","src":"1236:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1098:169:275"},"returnParameters":{"id":163477,"nodeType":"ParameterList","parameters":[],"src":"1284:0:275"},"scope":163490,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":163489,"nodeType":"FunctionDefinition","src":"1291:108:275","nodes":[],"functionSelector":"1635f5fd","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeETH","nameLocation":"1300:17:275","parameters":{"id":163487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163480,"mutability":"mutable","name":"_from","nameLocation":"1326:5:275","nodeType":"VariableDeclaration","scope":163489,"src":"1318:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163479,"name":"address","nodeType":"ElementaryTypeName","src":"1318:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163482,"mutability":"mutable","name":"_to","nameLocation":"1341:3:275","nodeType":"VariableDeclaration","scope":163489,"src":"1333:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163481,"name":"address","nodeType":"ElementaryTypeName","src":"1333:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163484,"mutability":"mutable","name":"_amount","nameLocation":"1354:7:275","nodeType":"VariableDeclaration","scope":163489,"src":"1346:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163483,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163486,"mutability":"mutable","name":"_extraData","nameLocation":"1378:10:275","nodeType":"VariableDeclaration","scope":163489,"src":"1363:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163485,"name":"bytes","nodeType":"ElementaryTypeName","src":"1363:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1317:72:275"},"returnParameters":{"id":163488,"nodeType":"ParameterList","parameters":[],"src":"1398:0:275"},"scope":163490,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1StandardBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163490],"name":"IL1StandardBridge","nameLocation":"847:17:275","scope":163545,"usedErrors":[]},{"id":163523,"nodeType":"ContractDefinition","src":"1403:449:275","nodes":[{"id":163495,"nodeType":"FunctionDefinition","src":"1435:47:275","nodes":[],"functionSelector":"5c975abb","implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1444:6:275","parameters":{"id":163491,"nodeType":"ParameterList","parameters":[],"src":"1450:2:275"},"returnParameters":{"id":163494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163495,"src":"1476:4:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":163492,"name":"bool","nodeType":"ElementaryTypeName","src":"1476:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1475:6:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163501,"nodeType":"FunctionDefinition","src":"1488:69:275","nodes":[],"functionSelector":"3cb747bf","implemented":false,"kind":"function","modifiers":[],"name":"messenger","nameLocation":"1497:9:275","parameters":{"id":163496,"nodeType":"ParameterList","parameters":[],"src":"1506:2:275"},"returnParameters":{"id":163500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163501,"src":"1532:23:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"},"typeName":{"id":163498,"nodeType":"UserDefinedTypeName","pathNode":{"id":163497,"name":"IL1CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":163544,"src":"1532:23:275"},"referencedDeclaration":163544,"src":"1532:23:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1CrossDomainMessenger_$163544","typeString":"contract IL1CrossDomainMessenger"}},"visibility":"internal"}],"src":"1531:25:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163507,"nodeType":"FunctionDefinition","src":"1563:65:275","nodes":[],"functionSelector":"c89701a2","implemented":false,"kind":"function","modifiers":[],"name":"otherBridge","nameLocation":"1572:11:275","parameters":{"id":163502,"nodeType":"ParameterList","parameters":[],"src":"1583:2:275"},"returnParameters":{"id":163506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163507,"src":"1609:17:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"},"typeName":{"id":163504,"nodeType":"UserDefinedTypeName","pathNode":{"id":163503,"name":"IL1StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":163490,"src":"1609:17:275"},"referencedDeclaration":163490,"src":"1609:17:275","typeDescriptions":{"typeIdentifier":"t_contract$_IL1StandardBridge_$163490","typeString":"contract IL1StandardBridge"}},"visibility":"internal"}],"src":"1608:19:275"},"scope":163523,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":163522,"nodeType":"FunctionDefinition","src":"1634:216:275","nodes":[],"functionSelector":"761f4493","implemented":false,"kind":"function","modifiers":[],"name":"finalizeBridgeERC721","nameLocation":"1643:20:275","parameters":{"id":163520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163509,"mutability":"mutable","name":"_localToken","nameLocation":"1681:11:275","nodeType":"VariableDeclaration","scope":163522,"src":"1673:19:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163508,"name":"address","nodeType":"ElementaryTypeName","src":"1673:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163511,"mutability":"mutable","name":"_remoteToken","nameLocation":"1710:12:275","nodeType":"VariableDeclaration","scope":163522,"src":"1702:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163510,"name":"address","nodeType":"ElementaryTypeName","src":"1702:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163513,"mutability":"mutable","name":"_from","nameLocation":"1740:5:275","nodeType":"VariableDeclaration","scope":163522,"src":"1732:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163512,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163515,"mutability":"mutable","name":"_to","nameLocation":"1763:3:275","nodeType":"VariableDeclaration","scope":163522,"src":"1755:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163514,"name":"address","nodeType":"ElementaryTypeName","src":"1755:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163517,"mutability":"mutable","name":"_amount","nameLocation":"1784:7:275","nodeType":"VariableDeclaration","scope":163522,"src":"1776:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163519,"mutability":"mutable","name":"_extraData","nameLocation":"1816:10:275","nodeType":"VariableDeclaration","scope":163522,"src":"1801:25:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163518,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1663:169:275"},"returnParameters":{"id":163521,"nodeType":"ParameterList","parameters":[],"src":"1849:0:275"},"scope":163523,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1ERC721Bridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163523],"name":"IL1ERC721Bridge","nameLocation":"1413:15:275","scope":163545,"usedErrors":[]},{"id":163544,"nodeType":"ContractDefinition","src":"1854:334:275","nodes":[{"id":163538,"nodeType":"FunctionDefinition","src":"1894:222:275","nodes":[],"functionSelector":"d764ad0b","implemented":false,"kind":"function","modifiers":[],"name":"relayMessage","nameLocation":"1903:12:275","parameters":{"id":163536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163525,"mutability":"mutable","name":"_nonce","nameLocation":"1933:6:275","nodeType":"VariableDeclaration","scope":163538,"src":"1925:14:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163524,"name":"uint256","nodeType":"ElementaryTypeName","src":"1925:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163527,"mutability":"mutable","name":"_sender","nameLocation":"1957:7:275","nodeType":"VariableDeclaration","scope":163538,"src":"1949:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163526,"name":"address","nodeType":"ElementaryTypeName","src":"1949:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163529,"mutability":"mutable","name":"_target","nameLocation":"1982:7:275","nodeType":"VariableDeclaration","scope":163538,"src":"1974:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163528,"name":"address","nodeType":"ElementaryTypeName","src":"1974:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":163531,"mutability":"mutable","name":"_value","nameLocation":"2007:6:275","nodeType":"VariableDeclaration","scope":163538,"src":"1999:14:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163530,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163533,"mutability":"mutable","name":"_minGasLimit","nameLocation":"2031:12:275","nodeType":"VariableDeclaration","scope":163538,"src":"2023:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":163532,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":163535,"mutability":"mutable","name":"_message","nameLocation":"2068:8:275","nodeType":"VariableDeclaration","scope":163538,"src":"2053:23:275","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":163534,"name":"bytes","nodeType":"ElementaryTypeName","src":"2053:5:275","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1915:167:275"},"returnParameters":{"id":163537,"nodeType":"ParameterList","parameters":[],"src":"2115:0:275"},"scope":163544,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":163543,"nodeType":"FunctionDefinition","src":"2122:64:275","nodes":[],"functionSelector":"6e296e45","implemented":false,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"2131:20:275","parameters":{"id":163539,"nodeType":"ParameterList","parameters":[],"src":"2151:2:275"},"returnParameters":{"id":163542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163543,"src":"2177:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163540,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2176:9:275"},"scope":163544,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL1CrossDomainMessenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[163544],"name":"IL1CrossDomainMessenger","nameLocation":"1864:23:275","scope":163545,"usedErrors":[]}],"license":"MIT"},"id":275}
{"abi":[{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[{"name":"_identifier","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"paused_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"guardian()":"452a9320","pause(string)":"6da66355","paused()":"5c975abb","unpause()":"3f4ba83a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_identifier\",\"type\":\"string\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"paused_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":\"ISuperchainConfig\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"test/kontrol/proofs/interfaces/KontrolInterfaces.sol\":{\"keccak256\":\"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3\",\"dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_identifier","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"paused_","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":"ISuperchainConfig"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"test/kontrol/proofs/interfaces/KontrolInterfaces.sol":{"keccak256":"0x2786fa5112dd70545b90ca93819ffe9ab0803876f085af6fce3fe5da2ad3100d","urls":["bzz-raw://4ba77e26d4755a3f032ce942ee3b0db575f211c18ec709bb5a080debf2a260a3","dweb:/ipfs/Qmay3EDrfkoauZhtKbXjuV2QZUuLiPgSmFSrSFMTUjUFfU"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":292}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"freshWithdrawalProof","inputs":[],"outputs":[{"name":"withdrawalProof","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"kevm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract KontrolCheatsBase"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"freshWithdrawalProof()":"712ec7f0","kevm()":"d6a2ec76"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"freshWithdrawalProof\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"withdrawalProof\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kevm\",\"outputs\":[{\"internalType\":\"contract KontrolCheatsBase\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"freshWithdrawalProof()\":{\"details\":\"Creates a bounded symbolic bytes[] memory representing a withdrawal proof.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Tests inheriting this contract cannot be run with forge\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/utils/KontrolUtils.sol\":\"KontrolUtils\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":{\"keccak256\":\"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4\",\"dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW\"]},\"test/kontrol/proofs/utils/KontrolUtils.sol\":{\"keccak256\":\"0x0dfb4e692cc4c1ac88c305bfa32ba250bb46772e2de85f5f9e29df22cb2d3978\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6aaf16240faa409103202e0afbca92dc5d4e113d0b018efaabaf8b177b9ac51\",\"dweb:/ipfs/QmQ49iqfYxN2dQBkSFnNgzukGccNUuPuD845Nb7QUua7Xp\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"freshWithdrawalProof","outputs":[{"internalType":"bytes[]","name":"withdrawalProof","type":"bytes[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"kevm","outputs":[{"internalType":"contract KontrolCheatsBase","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"freshWithdrawalProof()":{"details":"Creates a bounded symbolic bytes[] memory representing a withdrawal proof."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/utils/KontrolUtils.sol":"KontrolUtils"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"lib/kontrol-cheatcodes/src/KontrolCheats.sol":{"keccak256":"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587","urls":["bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4","dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW"],"license":"MIT"},"test/kontrol/proofs/utils/KontrolUtils.sol":{"keccak256":"0x0dfb4e692cc4c1ac88c305bfa32ba250bb46772e2de85f5f9e29df22cb2d3978","urls":["bzz-raw://e6aaf16240faa409103202e0afbca92dc5d4e113d0b018efaabaf8b177b9ac51","dweb:/ipfs/QmQ49iqfYxN2dQBkSFnNgzukGccNUuPuD845Nb7QUua7Xp"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Tests inheriting this contract cannot be run with forge"},"devdoc":{"version":1,"kind":"dev","methods":{"freshWithdrawalProof()":{"details":"Creates a bounded symbolic bytes[] memory representing a withdrawal proof."}}},"ast":{"absolutePath":"test/kontrol/proofs/utils/KontrolUtils.sol","id":166242,"exportedSymbols":{"GhostBytes":[166012],"GhostBytes10":[166108],"KontrolCheats":[45090],"KontrolUtils":[166241],"Vm":[14428]},"nodeType":"SourceUnit","src":"32:3110:278","nodes":[{"id":166005,"nodeType":"PragmaDirective","src":"32:23:278","nodes":[],"literals":["solidity","0.8",".15"]},{"id":166007,"nodeType":"ImportDirective","src":"57:38:278","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"forge-std/Vm.sol","nameLocation":"-1:-1:-1","scope":166242,"sourceUnit":14429,"symbolAliases":[{"foreign":{"id":166006,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14428,"src":"66:2:278","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":166009,"nodeType":"ImportDirective","src":"96:69:278","nodes":[],"absolutePath":"lib/kontrol-cheatcodes/src/KontrolCheats.sol","file":"kontrol-cheatcodes/KontrolCheats.sol","nameLocation":"-1:-1:-1","scope":166242,"sourceUnit":45091,"symbolAliases":[{"foreign":{"id":166008,"name":"KontrolCheats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45090,"src":"105:13:278","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":166012,"nodeType":"ContractDefinition","src":"381:52:278","nodes":[{"id":166011,"nodeType":"VariableDeclaration","src":"407:23:278","nodes":[],"constant":false,"functionSelector":"baca8f9d","mutability":"mutable","name":"ghostBytes","nameLocation":"420:10:278","scope":166012,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":166010,"name":"bytes","nodeType":"ElementaryTypeName","src":"407:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"GhostBytes","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[166012],"name":"GhostBytes","nameLocation":"390:10:278","scope":166242,"usedErrors":[]},{"id":166108,"nodeType":"ContractDefinition","src":"435:752:278","nodes":[{"id":166014,"nodeType":"VariableDeclaration","src":"463:24:278","nodes":[],"constant":false,"functionSelector":"d30afd19","mutability":"mutable","name":"ghostBytes0","nameLocation":"476:11:278","scope":166108,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":166013,"name":"bytes","nodeType":"ElementaryTypeName","src":"463:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"id":166016,"nodeType":"VariableDeclaration","src":"493:24:278","nodes":[],"constant":false,"functionSelector":"4b24e0eb","mutability":"mutable","name":"ghostBytes1","nameLocation":"506:11:278","scope":166108,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":166015,"name":"bytes","nodeType":"ElementaryTypeName","src":"493:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"id":166018,"nodeType":"VariableDeclaration","src":"523:24:278","nodes":[],"constant":false,"functionSelector":"e130465f","mutability":"mutable","name":"ghostBytes2","nameLocation":"536:11:278","scope":166108,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":166017,"name":"bytes","nodeType":"ElementaryTypeName","src":"523:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"id":166020,"nodeType":"VariableDeclaration","src":"553:24:278","nodes":[],"constant":false,"functionSelector":"0edae3a3","mutability":"mutable","name":"ghostBytes3","nameLocation":"566:11:278","scope":166108,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":166019,"name":"bytes","nodeType":"ElementaryTypeName","src":"553:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"id":166022,"nodeType":"VariableDeclaration","src":"583:24:278","nodes":[],"constant":false,"functionSelector":"168d3edd","mutability":"mutable","name":"ghostBytes4","nameLocation":"596:11:278","scope":166108,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":166021,"name":"bytes","nodeType":"ElementaryTypeName","src":"583:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"id":166024,"nodeType":"VariableDeclaration","src":"613:24:278","nodes":[],"constant":false,"functionSelector":"e3c97b52","mutability":"mutable","name":"ghostBytes5","nameLocation":"626:11:278","scope":166108,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":166023,"name":"bytes","nodeType":"ElementaryTypeName","src":"613:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"id":166026,"nodeType":"VariableDeclaration","src":"643:24:278","nodes":[],"constant":false,"functionSelector":"c70408d1","mutability":"mutable","name":"ghostBytes6","nameLocation":"656:11:278","scope":166108,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":166025,"name":"bytes","nodeType":"ElementaryTypeName","src":"643:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"id":166028,"nodeType":"VariableDeclaration","src":"673:24:278","nodes":[],"constant":false,"functionSelector":"2ed4e234","mutability":"mutable","name":"ghostBytes7","nameLocation":"686:11:278","scope":166108,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":166027,"name":"bytes","nodeType":"ElementaryTypeName","src":"673:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"id":166030,"nodeType":"VariableDeclaration","src":"703:24:278","nodes":[],"constant":false,"functionSelector":"99574a4f","mutability":"mutable","name":"ghostBytes8","nameLocation":"716:11:278","scope":166108,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":166029,"name":"bytes","nodeType":"ElementaryTypeName","src":"703:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"id":166032,"nodeType":"VariableDeclaration","src":"733:24:278","nodes":[],"constant":false,"functionSelector":"0e931b98","mutability":"mutable","name":"ghostBytes9","nameLocation":"746:11:278","scope":166108,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":166031,"name":"bytes","nodeType":"ElementaryTypeName","src":"733:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"id":166107,"nodeType":"FunctionDefinition","src":"764:421:278","nodes":[],"body":{"id":166106,"nodeType":"Block","src":"836:349:278","nodes":[],"statements":[{"expression":{"id":166044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":166038,"name":"_arr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166036,"src":"846:4:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3130","id":166042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"865:2:278","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":166041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"853:11:278","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":166039,"name":"bytes","nodeType":"ElementaryTypeName","src":"857:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":166040,"nodeType":"ArrayTypeName","src":"857:7:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":166043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"853:15:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"846:22:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166045,"nodeType":"ExpressionStatement","src":"846:22:278"},{"expression":{"id":166050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":166046,"name":"_arr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166036,"src":"878:4:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166048,"indexExpression":{"hexValue":"30","id":166047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"883:1:278","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"878:7:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":166049,"name":"ghostBytes0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166014,"src":"888:11:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"878:21:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":166051,"nodeType":"ExpressionStatement","src":"878:21:278"},{"expression":{"id":166056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":166052,"name":"_arr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166036,"src":"909:4:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166054,"indexExpression":{"hexValue":"31","id":166053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"914:1:278","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"909:7:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":166055,"name":"ghostBytes1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166016,"src":"919:11:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"909:21:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":166057,"nodeType":"ExpressionStatement","src":"909:21:278"},{"expression":{"id":166062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":166058,"name":"_arr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166036,"src":"940:4:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166060,"indexExpression":{"hexValue":"32","id":166059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"945:1:278","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"940:7:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":166061,"name":"ghostBytes2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166018,"src":"950:11:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"940:21:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":166063,"nodeType":"ExpressionStatement","src":"940:21:278"},{"expression":{"id":166068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":166064,"name":"_arr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166036,"src":"971:4:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166066,"indexExpression":{"hexValue":"33","id":166065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"976:1:278","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"971:7:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":166067,"name":"ghostBytes3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166020,"src":"981:11:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"971:21:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":166069,"nodeType":"ExpressionStatement","src":"971:21:278"},{"expression":{"id":166074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":166070,"name":"_arr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166036,"src":"1002:4:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166072,"indexExpression":{"hexValue":"34","id":166071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1007:1:278","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1002:7:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":166073,"name":"ghostBytes4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166022,"src":"1012:11:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"1002:21:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":166075,"nodeType":"ExpressionStatement","src":"1002:21:278"},{"expression":{"id":166080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":166076,"name":"_arr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166036,"src":"1033:4:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166078,"indexExpression":{"hexValue":"35","id":166077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1038:1:278","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1033:7:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":166079,"name":"ghostBytes5","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166024,"src":"1043:11:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"1033:21:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":166081,"nodeType":"ExpressionStatement","src":"1033:21:278"},{"expression":{"id":166086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":166082,"name":"_arr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166036,"src":"1064:4:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166084,"indexExpression":{"hexValue":"36","id":166083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1069:1:278","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1064:7:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":166085,"name":"ghostBytes6","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166026,"src":"1074:11:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"1064:21:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":166087,"nodeType":"ExpressionStatement","src":"1064:21:278"},{"expression":{"id":166092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":166088,"name":"_arr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166036,"src":"1095:4:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166090,"indexExpression":{"hexValue":"37","id":166089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1100:1:278","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1095:7:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":166091,"name":"ghostBytes7","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166028,"src":"1105:11:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"1095:21:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":166093,"nodeType":"ExpressionStatement","src":"1095:21:278"},{"expression":{"id":166098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":166094,"name":"_arr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166036,"src":"1126:4:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166096,"indexExpression":{"hexValue":"38","id":166095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1131:1:278","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1126:7:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":166097,"name":"ghostBytes8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166030,"src":"1136:11:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"1126:21:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":166099,"nodeType":"ExpressionStatement","src":"1126:21:278"},{"expression":{"id":166104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":166100,"name":"_arr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166036,"src":"1157:4:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166102,"indexExpression":{"hexValue":"39","id":166101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1162:1:278","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1157:7:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":166103,"name":"ghostBytes9","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166032,"src":"1167:11:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"1157:21:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":166105,"nodeType":"ExpressionStatement","src":"1157:21:278"}]},"functionSelector":"7ebda7c8","implemented":true,"kind":"function","modifiers":[],"name":"getGhostBytesArray","nameLocation":"773:18:278","parameters":{"id":166033,"nodeType":"ParameterList","parameters":[],"src":"791:2:278"},"returnParameters":{"id":166037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":166036,"mutability":"mutable","name":"_arr","nameLocation":"830:4:278","nodeType":"VariableDeclaration","scope":166107,"src":"815:19:278","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":166034,"name":"bytes","nodeType":"ElementaryTypeName","src":"815:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":166035,"nodeType":"ArrayTypeName","src":"815:7:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"814:21:278"},"scope":166108,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"GhostBytes10","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[166108],"name":"GhostBytes10","nameLocation":"444:12:278","scope":166242,"usedErrors":[]},{"id":166241,"nodeType":"ContractDefinition","src":"1257:1884:278","nodes":[{"id":166128,"nodeType":"VariableDeclaration","src":"1311:85:278","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1332:2:278","scope":166241,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"},"typeName":{"id":166113,"nodeType":"UserDefinedTypeName","pathNode":{"id":166112,"name":"Vm","nodeType":"IdentifierPath","referencedDeclaration":14428,"src":"1311:2:278"},"referencedDeclaration":14428,"src":"1311:2:278","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":166122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1374:17:278","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":166121,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1364:9:278","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":166123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1364:28:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":166120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1356:7:278","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":166119,"name":"uint256","nodeType":"ElementaryTypeName","src":"1356:7:278","typeDescriptions":{}}},"id":166124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1356:37:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":166118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1348:7:278","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":166117,"name":"uint160","nodeType":"ElementaryTypeName","src":"1348:7:278","typeDescriptions":{}}},"id":166125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1348:46:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":166116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1340:7:278","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":166115,"name":"address","nodeType":"ElementaryTypeName","src":"1340:7:278","typeDescriptions":{}}},"id":166126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1340:55:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":166114,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14428,"src":"1337:2:278","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$14428_$","typeString":"type(contract Vm)"}},"id":166127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1337:59:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"}},"visibility":"internal"},{"id":166199,"nodeType":"FunctionDefinition","src":"1540:646:278","nodes":[],"body":{"id":166198,"nodeType":"Block","src":"1623:563:278","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":166139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":166137,"name":"bytesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166131,"src":"1641:11:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":166138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1656:2:278","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1641:17:278","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536d616c6c206279746573","id":166140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1660:13:278","typeDescriptions":{"typeIdentifier":"t_stringliteral_97e9756935c97b61ca65ddb5f215521d12d4c13ff7f62779ae515217242c1360","typeString":"literal_string \"Small bytes\""},"value":"Small bytes"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_97e9756935c97b61ca65ddb5f215521d12d4c13ff7f62779ae515217242c1360","typeString":"literal_string \"Small bytes\""}],"id":166136,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1633:7:278","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":166141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1633:41:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":166142,"nodeType":"ExpressionStatement","src":"1633:41:278"},{"assignments":[166144],"declarations":[{"constant":false,"id":166144,"mutability":"mutable","name":"bytesSlotValue","nameLocation":"1693:14:278","nodeType":"VariableDeclaration","scope":166198,"src":"1685:22:278","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":166143,"name":"uint256","nodeType":"ElementaryTypeName","src":"1685:7:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":166145,"nodeType":"VariableDeclarationStatement","src":"1685:22:278"},{"id":166154,"nodeType":"UncheckedBlock","src":"1717:71:278","statements":[{"expression":{"id":166152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":166146,"name":"bytesSlotValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166144,"src":"1741:14:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":166151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":166149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":166147,"name":"bytesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166131,"src":"1758:11:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":166148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1772:1:278","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1758:15:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":166150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1776:1:278","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1758:19:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1741:36:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":166153,"nodeType":"ExpressionStatement","src":"1741:36:278"}]},{"assignments":[166157],"declarations":[{"constant":false,"id":166157,"mutability":"mutable","name":"ghostBytes","nameLocation":"1842:10:278","nodeType":"VariableDeclaration","scope":166198,"src":"1831:21:278","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GhostBytes_$166012","typeString":"contract GhostBytes"},"typeName":{"id":166156,"nodeType":"UserDefinedTypeName","pathNode":{"id":166155,"name":"GhostBytes","nodeType":"IdentifierPath","referencedDeclaration":166012,"src":"1831:10:278"},"referencedDeclaration":166012,"src":"1831:10:278","typeDescriptions":{"typeIdentifier":"t_contract$_GhostBytes_$166012","typeString":"contract GhostBytes"}},"visibility":"internal"}],"id":166162,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":166160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1855:14:278","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GhostBytes_$166012_$","typeString":"function () returns (contract GhostBytes)"},"typeName":{"id":166159,"nodeType":"UserDefinedTypeName","pathNode":{"id":166158,"name":"GhostBytes","nodeType":"IdentifierPath","referencedDeclaration":166012,"src":"1859:10:278"},"referencedDeclaration":166012,"src":"1859:10:278","typeDescriptions":{"typeIdentifier":"t_contract$_GhostBytes_$166012","typeString":"contract GhostBytes"}}},"id":166161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1855:16:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GhostBytes_$166012","typeString":"contract GhostBytes"}},"nodeType":"VariableDeclarationStatement","src":"1831:40:278"},{"expression":{"arguments":[{"arguments":[{"id":166168,"name":"ghostBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166157,"src":"1970:10:278","typeDescriptions":{"typeIdentifier":"t_contract$_GhostBytes_$166012","typeString":"contract GhostBytes"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GhostBytes_$166012","typeString":"contract GhostBytes"}],"id":166167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1962:7:278","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":166166,"name":"address","nodeType":"ElementaryTypeName","src":"1962:7:278","typeDescriptions":{}}},"id":166169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1962:19:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":166163,"name":"kevm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45066,"src":"1941:4:278","typeDescriptions":{"typeIdentifier":"t_contract$_KontrolCheatsBase_$45049","typeString":"contract KontrolCheatsBase"}},"id":166165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"symbolicStorage","nodeType":"MemberAccess","referencedDeclaration":45016,"src":"1941:20:278","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":166170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1941:41:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":166171,"nodeType":"ExpressionStatement","src":"1941:41:278"},{"expression":{"arguments":[{"arguments":[{"id":166177,"name":"ghostBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166157,"src":"2078:10:278","typeDescriptions":{"typeIdentifier":"t_contract$_GhostBytes_$166012","typeString":"contract GhostBytes"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GhostBytes_$166012","typeString":"contract GhostBytes"}],"id":166176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2070:7:278","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":166175,"name":"address","nodeType":"ElementaryTypeName","src":"2070:7:278","typeDescriptions":{}}},"id":166178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2070:19:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"hexValue":"30","id":166183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2107:1:278","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":166182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2099:7:278","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":166181,"name":"uint256","nodeType":"ElementaryTypeName","src":"2099:7:278","typeDescriptions":{}}},"id":166184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2099:10:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":166180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2091:7:278","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":166179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2091:7:278","typeDescriptions":{}}},"id":166185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2091:19:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":166188,"name":"bytesSlotValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166144,"src":"2120:14:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":166187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2112:7:278","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":166186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2112:7:278","typeDescriptions":{}}},"id":166189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2112:23:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":166172,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166128,"src":"2061:2:278","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14428","typeString":"contract Vm"}},"id":166174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"store","nodeType":"MemberAccess","referencedDeclaration":14235,"src":"2061:8:278","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":166190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2061:75:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":166191,"nodeType":"ExpressionStatement","src":"2061:75:278"},{"expression":{"id":166196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":166192,"name":"sBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166134,"src":"2147:6:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":166193,"name":"ghostBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166157,"src":"2156:10:278","typeDescriptions":{"typeIdentifier":"t_contract$_GhostBytes_$166012","typeString":"contract GhostBytes"}},"id":166194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ghostBytes","nodeType":"MemberAccess","referencedDeclaration":166011,"src":"2156:21:278","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes_memory_ptr_$","typeString":"function () view external returns (bytes memory)"}},"id":166195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2156:23:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2147:32:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":166197,"nodeType":"ExpressionStatement","src":"2147:32:278"}]},"documentation":{"id":166129,"nodeType":"StructuredDocumentation","src":"1403:132:278","text":"@dev Creates a fresh bytes with length greater than 31\n @param bytesLength: Length of the fresh bytes. Should be concrete"},"implemented":true,"kind":"function","modifiers":[],"name":"freshBigBytes","nameLocation":"1549:13:278","parameters":{"id":166132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":166131,"mutability":"mutable","name":"bytesLength","nameLocation":"1571:11:278","nodeType":"VariableDeclaration","scope":166199,"src":"1563:19:278","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":166130,"name":"uint256","nodeType":"ElementaryTypeName","src":"1563:7:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1562:21:278"},"returnParameters":{"id":166135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":166134,"mutability":"mutable","name":"sBytes","nameLocation":"1615:6:278","nodeType":"VariableDeclaration","scope":166199,"src":"1602:19:278","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":166133,"name":"bytes","nodeType":"ElementaryTypeName","src":"1602:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1601:21:278"},"scope":166241,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":166240,"nodeType":"FunctionDefinition","src":"2280:859:278","nodes":[],"body":{"id":166239,"nodeType":"Block","src":"2360:779:278","nodes":[],"statements":[{"assignments":[166207],"declarations":[{"constant":false,"id":166207,"mutability":"mutable","name":"arrayLength","nameLocation":"2757:11:278","nodeType":"VariableDeclaration","scope":166239,"src":"2749:19:278","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":166206,"name":"uint256","nodeType":"ElementaryTypeName","src":"2749:7:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":166209,"initialValue":{"hexValue":"36","id":166208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2771:1:278","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"nodeType":"VariableDeclarationStatement","src":"2749:23:278"},{"expression":{"id":166216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":166210,"name":"withdrawalProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166204,"src":"2782:15:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":166214,"name":"arrayLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166207,"src":"2812:11:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":166213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2800:11:278","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":166211,"name":"bytes","nodeType":"ElementaryTypeName","src":"2804:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":166212,"nodeType":"ArrayTypeName","src":"2804:7:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":166215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2800:24:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"2782:42:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166217,"nodeType":"ExpressionStatement","src":"2782:42:278"},{"body":{"id":166237,"nodeType":"Block","src":"2888:245:278","statements":[{"expression":{"id":166235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":166229,"name":"withdrawalProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166204,"src":"3083:15:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166231,"indexExpression":{"id":166230,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166219,"src":"3099:1:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3083:18:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"363030","id":166233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3118:3:278","typeDescriptions":{"typeIdentifier":"t_rational_600_by_1","typeString":"int_const 600"},"value":"600"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_600_by_1","typeString":"int_const 600"}],"id":166232,"name":"freshBigBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166199,"src":"3104:13:278","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) returns (bytes memory)"}},"id":166234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3104:18:278","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3083:39:278","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":166236,"nodeType":"ExpressionStatement","src":"3083:39:278"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":166225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":166222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166219,"src":"2855:1:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":166223,"name":"withdrawalProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166204,"src":"2859:15:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":166224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2859:22:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2855:26:278","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":166238,"initializationExpression":{"assignments":[166219],"declarations":[{"constant":false,"id":166219,"mutability":"mutable","name":"i","nameLocation":"2848:1:278","nodeType":"VariableDeclaration","scope":166238,"src":"2840:9:278","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":166218,"name":"uint256","nodeType":"ElementaryTypeName","src":"2840:7:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":166221,"initialValue":{"hexValue":"30","id":166220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2852:1:278","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2840:13:278"},"loopExpression":{"expression":{"id":166227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2883:3:278","subExpression":{"id":166226,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166219,"src":"2885:1:278","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":166228,"nodeType":"ExpressionStatement","src":"2883:3:278"},"nodeType":"ForStatement","src":"2835:298:278"}]},"documentation":{"id":166200,"nodeType":"StructuredDocumentation","src":"2192:83:278","text":"@dev Creates a bounded symbolic bytes[] memory representing a withdrawal proof."},"functionSelector":"712ec7f0","implemented":true,"kind":"function","modifiers":[],"name":"freshWithdrawalProof","nameLocation":"2289:20:278","parameters":{"id":166201,"nodeType":"ParameterList","parameters":[],"src":"2309:2:278"},"returnParameters":{"id":166205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":166204,"mutability":"mutable","name":"withdrawalProof","nameLocation":"2343:15:278","nodeType":"VariableDeclaration","scope":166240,"src":"2328:30:278","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":166202,"name":"bytes","nodeType":"ElementaryTypeName","src":"2328:5:278","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":166203,"nodeType":"ArrayTypeName","src":"2328:7:278","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"2327:32:278"},"scope":166241,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":166110,"name":"KontrolCheats","nodeType":"IdentifierPath","referencedDeclaration":45090,"src":"1291:13:278"},"id":166111,"nodeType":"InheritanceSpecifier","src":"1291:13:278"}],"canonicalName":"KontrolUtils","contractDependencies":[166012],"contractKind":"contract","documentation":{"id":166109,"nodeType":"StructuredDocumentation","src":"1189:68:278","text":"@notice Tests inheriting this contract cannot be run with forge"},"fullyImplemented":true,"linearizedBaseContracts":[166241,45090],"name":"KontrolUtils","nameLocation":"1275:12:278","scope":166242,"usedErrors":[]}],"license":"MIT"},"id":278}
{"abi":[{"type":"function","name":"kevm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract KontrolCheatsBase"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"kevm()":"d6a2ec76"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"kevm\",\"outputs\":[{\"internalType\":\"contract KontrolCheatsBase\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Tests inheriting this contract cannot be run with forge\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/kontrol/proofs/utils/KontrolUtils.sol\":\"KontrolUtils\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"lib/kontrol-cheatcodes/src/KontrolCheats.sol\":{\"keccak256\":\"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4\",\"dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW\"]},\"test/kontrol/proofs/utils/KontrolUtils.sol\":{\"keccak256\":\"0x2654b2bcf2cd24609aa0795d69a4b9693e27d9408c76e64cb54a43c457d2af91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac0ca5fcbd92ee486e69dcba9d3a7df3920a6251dd8ee5ca018336e97407b82a\",\"dweb:/ipfs/QmRAtdRXVA39Nia7V5UMmXiL3rpEB81hSTiEL2hgvReGYf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"kevm","outputs":[{"internalType":"contract KontrolCheatsBase","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/kontrol/proofs/utils/KontrolUtils.sol":"KontrolUtils"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"lib/kontrol-cheatcodes/src/KontrolCheats.sol":{"keccak256":"0xe65618ccde95dddd2dba70093d87221177ff449f18bf38950fe452b3e0e80587","urls":["bzz-raw://d9f3184c9c88a6a36956c294e89140f03a67cd5fee460d340228427f3e2c8ab4","dweb:/ipfs/QmZvPkomWkN8mSFu92zoSUJ5jnzwRQEAACs7pBcdntoeQW"],"license":"MIT"},"test/kontrol/proofs/utils/KontrolUtils.sol":{"keccak256":"0x2654b2bcf2cd24609aa0795d69a4b9693e27d9408c76e64cb54a43c457d2af91","urls":["bzz-raw://ac0ca5fcbd92ee486e69dcba9d3a7df3920a6251dd8ee5ca018336e97407b82a","dweb:/ipfs/QmRAtdRXVA39Nia7V5UMmXiL3rpEB81hSTiEL2hgvReGYf"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Tests inheriting this contract cannot be run with forge"},"devdoc":{"version":1,"kind":"dev"},"id":295}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"DEPOSITOR_ACCOUNT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"baseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"basefee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batcherHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"hash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"l1FeeOverhead","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"l1FeeScalar","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"number","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"sequenceNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"setL1BlockValues","inputs":[{"name":"_number","type":"uint64","internalType":"uint64"},{"name":"_timestamp","type":"uint64","internalType":"uint64"},{"name":"_basefee","type":"uint256","internalType":"uint256"},{"name":"_hash","type":"bytes32","internalType":"bytes32"},{"name":"_sequenceNumber","type":"uint64","internalType":"uint64"},{"name":"_batcherHash","type":"bytes32","internalType":"bytes32"},{"name":"_l1FeeOverhead","type":"uint256","internalType":"uint256"},{"name":"_l1FeeScalar","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setL1BlockValuesEcotone","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"timestamp","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061053e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638381f58a11610097578063c598591811610066578063c598591814610229578063e591b28214610249578063e81b2c6d14610289578063f82061401461029257600080fd5b80638381f58a146101e35780638b239f73146101f75780639e8c496614610200578063b80777ea1461020957600080fd5b806354fd4d50116100d357806354fd4d50146101335780635cf249691461017c57806364ca23ef1461018557806368d5dca6146101b257600080fd5b8063015d8eb9146100fa57806309bd5a601461010f578063440a5e201461012b575b600080fd5b61010d61010836600461044c565b61029b565b005b61011860025481565b6040519081526020015b60405180910390f35b61010d6103da565b61016f6040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161012291906104be565b61011860015481565b6003546101999067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610122565b6003546101ce9068010000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610122565b6000546101999067ffffffffffffffff1681565b61011860055481565b61011860065481565b6000546101999068010000000000000000900467ffffffffffffffff1681565b6003546101ce906c01000000000000000000000000900463ffffffff1681565b61026473deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b61011860045481565b61011860075481565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461040357633cc50b456000526004601cfd5b60043560801c60035560143560801c600055602435600155604435600755606435600255608435600455565b803567ffffffffffffffff8116811461044757600080fd5b919050565b600080600080600080600080610100898b03121561046957600080fd5b6104728961042f565b975061048060208a0161042f565b9650604089013595506060890135945061049c60808a0161042f565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600060208083528351808285015260005b818110156104eb578581018301518582016040015282016104cf565b818111156104fd576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"588:4256:136:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638381f58a11610097578063c598591811610066578063c598591814610229578063e591b28214610249578063e81b2c6d14610289578063f82061401461029257600080fd5b80638381f58a146101e35780638b239f73146101f75780639e8c496614610200578063b80777ea1461020957600080fd5b806354fd4d50116100d357806354fd4d50146101335780635cf249691461017c57806364ca23ef1461018557806368d5dca6146101b257600080fd5b8063015d8eb9146100fa57806309bd5a601461010f578063440a5e201461012b575b600080fd5b61010d61010836600461044c565b61029b565b005b61011860025481565b6040519081526020015b60405180910390f35b61010d6103da565b61016f6040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161012291906104be565b61011860015481565b6003546101999067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610122565b6003546101ce9068010000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610122565b6000546101999067ffffffffffffffff1681565b61011860055481565b61011860065481565b6000546101999068010000000000000000900467ffffffffffffffff1681565b6003546101ce906c01000000000000000000000000900463ffffffff1681565b61026473deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b61011860045481565b61011860075481565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461040357633cc50b456000526004601cfd5b60043560801c60035560143560801c600055602435600155604435600755606435600255608435600455565b803567ffffffffffffffff8116811461044757600080fd5b919050565b600080600080600080600080610100898b03121561046957600080fd5b6104728961042f565b975061048060208a0161042f565b9650604089013595506060890135945061049c60808a0161042f565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600060208083528351808285015260005b818110156104eb578581018301518582016040015282016104cf565b818111156104fd576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"588:4256:136:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2494:660;;;;;;:::i;:::-;;:::i;:::-;;1071:19;;;;;;;;;1014:25:334;;;1002:2;987:18;1071:19:136;;;;;;;;3886:956;;;:::i;1961:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1001:22::-;;;;;;1156:28;;;;;;;;;;;;2067:18:334;2055:31;;;2037:50;;2025:2;2010:18;1156:28:136;1893:200:334;1298:31:136;;;;;;;;;;;;;;;2272:10:334;2260:23;;;2242:42;;2230:2;2215:18;1298:31:136;2098:192:334;840:20:136;;;;;;;;;1680:28;;;;;;1821:26;;;;;;931:23;;;;;;;;;;;;1438:27;;;;;;;;;;;;680:86;;724:42;680:86;;;;;2471:42:334;2459:55;;;2441:74;;2429:2;2414:18;680:86:136;2295:226:334;1539:26:136;;;;;;1899;;;;;;2494:660;2789:10;724:42;2789:31;2781:103;;;;;;;2728:2:334;2781:103:136;;;2710:21:334;2767:2;2747:18;;;2740:30;2806:34;2786:18;;;2779:62;2877:29;2857:18;;;2850:57;2924:19;;2781:103:136;;;;;;;;2895:6;:16;;;2921:22;;;;;;;;;2895:16;;;2921:22;;;;;;;;;;;2895:16;2953:18;;;;2981:4;:12;;;;3003:14;:32;;;;;;2895:16;3003:32;;;;;;;;3045:11;:26;;;;3081:13;:30;3121:11;:26;2494:660::o;3886:956::-;4036:8;4046:17;4029:233;;;4096:10;4090:4;4083:24;4194:4;4188;4181:18;4029:233;4453:1;4440:15;4435:3;4431:25;4410:19;4403:54;4566:2;4553:16;4548:3;4544:26;4531:11;4524:47;4618:2;4605:16;4591:12;4584:38;4684:2;4671:16;4653;4646:42;4743:3;4730:17;4719:9;4712:36;4810:3;4797:17;4779:16;4772:43;3886:956::o;14:171:334:-;81:20;;141:18;130:30;;120:41;;110:69;;175:1;172;165:12;110:69;14:171;;;:::o;190:673::-;309:6;317;325;333;341;349;357;365;418:3;406:9;397:7;393:23;389:33;386:53;;;435:1;432;425:12;386:53;458:28;476:9;458:28;:::i;:::-;448:38;;505:37;538:2;527:9;523:18;505:37;:::i;:::-;495:47;;589:2;578:9;574:18;561:32;551:42;;640:2;629:9;625:18;612:32;602:42;;663:38;696:3;685:9;681:19;663:38;:::i;:::-;190:673;;;;-1:-1:-1;190:673:334;;;;653:48;748:3;733:19;;720:33;;-1:-1:-1;800:3:334;785:19;;772:33;;852:3;837:19;824:33;;-1:-1:-1;190:673:334;-1:-1:-1;;190:673:334:o;1050:656::-;1162:4;1191:2;1220;1209:9;1202:21;1252:6;1246:13;1295:6;1290:2;1279:9;1275:18;1268:34;1320:1;1330:140;1344:6;1341:1;1338:13;1330:140;;;1439:14;;;1435:23;;1429:30;1405:17;;;1424:2;1401:26;1394:66;1359:10;;1330:140;;;1488:6;1485:1;1482:13;1479:91;;;1558:1;1553:2;1544:6;1533:9;1529:22;1525:31;1518:42;1479:91;-1:-1:-1;1622:2:334;1610:15;1627:66;1606:88;1591:104;;;;1697:2;1587:113;;1050:656;-1:-1:-1;;;1050:656:334:o","linkReferences":{}},"methodIdentifiers":{"DEPOSITOR_ACCOUNT()":"e591b282","baseFeeScalar()":"c5985918","basefee()":"5cf24969","batcherHash()":"e81b2c6d","blobBaseFee()":"f8206140","blobBaseFeeScalar()":"68d5dca6","hash()":"09bd5a60","l1FeeOverhead()":"8b239f73","l1FeeScalar()":"9e8c4966","number()":"8381f58a","sequenceNumber()":"64ca23ef","setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":"015d8eb9","setL1BlockValuesEcotone()":"440a5e20","timestamp()":"b80777ea","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DEPOSITOR_ACCOUNT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseFeeScalar\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"basefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batcherHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blobBaseFeeScalar\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1FeeOverhead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1FeeScalar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"number\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_number\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_basefee\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batcherHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_l1FeeOverhead\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_l1FeeScalar\",\"type\":\"uint256\"}],\"name\":\"setL1BlockValues\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setL1BlockValuesEcotone\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000015\",\"kind\":\"dev\",\"methods\":{\"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)\":{\"custom:legacy\":\"@notice Updates the L1 block values.\",\"params\":{\"_basefee\":\"L1 basefee.\",\"_batcherHash\":\"Versioned hash to authenticate batcher by.\",\"_hash\":\"L1 blockhash.\",\"_l1FeeOverhead\":\"L1 fee overhead.\",\"_l1FeeScalar\":\"L1 fee scalar.\",\"_number\":\"L1 blocknumber.\",\"_sequenceNumber\":\"Number of L2 blocks since epoch start.\",\"_timestamp\":\"L1 timestamp.\"}}},\"stateVariables\":{\"l1FeeOverhead\":{\"custom:legacy\":\"\"},\"l1FeeScalar\":{\"custom:legacy\":\"\"},\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"L1Block\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DEPOSITOR_ACCOUNT()\":{\"notice\":\"Address of the special depositor account.\"},\"baseFeeScalar()\":{\"notice\":\"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func.\"},\"basefee()\":{\"notice\":\"The latest L1 base fee.\"},\"batcherHash()\":{\"notice\":\"The versioned hash to authenticate the batcher by.\"},\"blobBaseFee()\":{\"notice\":\"The latest L1 blob base fee.\"},\"blobBaseFeeScalar()\":{\"notice\":\"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func.\"},\"hash()\":{\"notice\":\"The latest L1 blockhash.\"},\"l1FeeOverhead()\":{\"notice\":\"The overhead value applied to the L1 portion of the transaction fee.\"},\"l1FeeScalar()\":{\"notice\":\"The scalar value applied to the L1 portion of the transaction fee.\"},\"number()\":{\"notice\":\"The latest L1 block number known by the L2 system.\"},\"sequenceNumber()\":{\"notice\":\"The number of L2 blocks in the same epoch.\"},\"setL1BlockValuesEcotone()\":{\"notice\":\"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by.\"},\"timestamp()\":{\"notice\":\"The latest L1 timestamp known by the L2 system.\"}},\"notice\":\"The L1Block predeploy gives users access to information about the last known L1 block. Values within this contract are updated once per epoch (every L1 block) and can only be set by the \\\"depositor\\\" account, a special system address. Depositor account transactions are created by the protocol whenever we move to a new epoch.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L1Block.sol\":\"L1Block\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/L2/L1Block.sol\":{\"keccak256\":\"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7\",\"dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_ACCOUNT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"basefee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"batcherHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeOverhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeScalar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"number","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"sequenceNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"_number","type":"uint64"},{"internalType":"uint64","name":"_timestamp","type":"uint64"},{"internalType":"uint256","name":"_basefee","type":"uint256"},{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"uint64","name":"_sequenceNumber","type":"uint64"},{"internalType":"bytes32","name":"_batcherHash","type":"bytes32"},{"internalType":"uint256","name":"_l1FeeOverhead","type":"uint256"},{"internalType":"uint256","name":"_l1FeeScalar","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setL1BlockValues"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setL1BlockValuesEcotone"},{"inputs":[],"stateMutability":"view","type":"function","name":"timestamp","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":{"custom:legacy":"@notice Updates the L1 block values.","params":{"_basefee":"L1 basefee.","_batcherHash":"Versioned hash to authenticate batcher by.","_hash":"L1 blockhash.","_l1FeeOverhead":"L1 fee overhead.","_l1FeeScalar":"L1 fee scalar.","_number":"L1 blocknumber.","_sequenceNumber":"Number of L2 blocks since epoch start.","_timestamp":"L1 timestamp."}}},"version":1},"userdoc":{"kind":"user","methods":{"DEPOSITOR_ACCOUNT()":{"notice":"Address of the special depositor account."},"baseFeeScalar()":{"notice":"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"basefee()":{"notice":"The latest L1 base fee."},"batcherHash()":{"notice":"The versioned hash to authenticate the batcher by."},"blobBaseFee()":{"notice":"The latest L1 blob base fee."},"blobBaseFeeScalar()":{"notice":"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"hash()":{"notice":"The latest L1 blockhash."},"l1FeeOverhead()":{"notice":"The overhead value applied to the L1 portion of the transaction fee."},"l1FeeScalar()":{"notice":"The scalar value applied to the L1 portion of the transaction fee."},"number()":{"notice":"The latest L1 block number known by the L2 system."},"sequenceNumber()":{"notice":"The number of L2 blocks in the same epoch."},"setL1BlockValuesEcotone()":{"notice":"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by."},"timestamp()":{"notice":"The latest L1 timestamp known by the L2 system."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L1Block.sol":"L1Block"},"evmVersion":"london","libraries":{}},"sources":{"src/L2/L1Block.sol":{"keccak256":"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6","urls":["bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7","dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":81800,"contract":"src/L2/L1Block.sol:L1Block","label":"number","offset":0,"slot":"0","type":"t_uint64"},{"astId":81803,"contract":"src/L2/L1Block.sol:L1Block","label":"timestamp","offset":8,"slot":"0","type":"t_uint64"},{"astId":81806,"contract":"src/L2/L1Block.sol:L1Block","label":"basefee","offset":0,"slot":"1","type":"t_uint256"},{"astId":81809,"contract":"src/L2/L1Block.sol:L1Block","label":"hash","offset":0,"slot":"2","type":"t_bytes32"},{"astId":81812,"contract":"src/L2/L1Block.sol:L1Block","label":"sequenceNumber","offset":0,"slot":"3","type":"t_uint64"},{"astId":81815,"contract":"src/L2/L1Block.sol:L1Block","label":"blobBaseFeeScalar","offset":8,"slot":"3","type":"t_uint32"},{"astId":81818,"contract":"src/L2/L1Block.sol:L1Block","label":"baseFeeScalar","offset":12,"slot":"3","type":"t_uint32"},{"astId":81821,"contract":"src/L2/L1Block.sol:L1Block","label":"batcherHash","offset":0,"slot":"4","type":"t_bytes32"},{"astId":81824,"contract":"src/L2/L1Block.sol:L1Block","label":"l1FeeOverhead","offset":0,"slot":"5","type":"t_uint256"},{"astId":81827,"contract":"src/L2/L1Block.sol:L1Block","label":"l1FeeScalar","offset":0,"slot":"6","type":"t_uint256"},{"astId":81830,"contract":"src/L2/L1Block.sol:L1Block","label":"blobBaseFee","offset":0,"slot":"7","type":"t_uint256"}],"types":{"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"version":1,"kind":"user","methods":{"DEPOSITOR_ACCOUNT()":{"notice":"Address of the special depositor account."},"baseFeeScalar()":{"notice":"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"basefee()":{"notice":"The latest L1 base fee."},"batcherHash()":{"notice":"The versioned hash to authenticate the batcher by."},"blobBaseFee()":{"notice":"The latest L1 blob base fee."},"blobBaseFeeScalar()":{"notice":"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"hash()":{"notice":"The latest L1 blockhash."},"l1FeeOverhead()":{"notice":"The overhead value applied to the L1 portion of the transaction fee."},"l1FeeScalar()":{"notice":"The scalar value applied to the L1 portion of the transaction fee."},"number()":{"notice":"The latest L1 block number known by the L2 system."},"sequenceNumber()":{"notice":"The number of L2 blocks in the same epoch."},"setL1BlockValuesEcotone()":{"notice":"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by."},"timestamp()":{"notice":"The latest L1 timestamp known by the L2 system."}},"notice":"The L1Block predeploy gives users access to information about the last known L1 block. Values within this contract are updated once per epoch (every L1 block) and can only be set by the \"depositor\" account, a special system address. Depositor account transactions are created by the protocol whenever we move to a new epoch."},"devdoc":{"version":1,"kind":"dev","methods":{"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":{"params":{"_basefee":"L1 basefee.","_batcherHash":"Versioned hash to authenticate batcher by.","_hash":"L1 blockhash.","_l1FeeOverhead":"L1 fee overhead.","_l1FeeScalar":"L1 fee scalar.","_number":"L1 blocknumber.","_sequenceNumber":"Number of L2 blocks since epoch start.","_timestamp":"L1 timestamp."}}},"title":"L1Block"},"ast":{"absolutePath":"src/L2/L1Block.sol","id":81903,"exportedSymbols":{"ISemver":[99149],"L1Block":[81902]},"nodeType":"SourceUnit","src":"32:4813:136","nodes":[{"id":81788,"nodeType":"PragmaDirective","src":"32:23:136","nodes":[],"literals":["solidity","0.8",".15"]},{"id":81790,"nodeType":"ImportDirective","src":"57:52:136","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":81903,"sourceUnit":99150,"symbolAliases":[{"foreign":{"id":81789,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99149,"src":"66:7:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81902,"nodeType":"ContractDefinition","src":"588:4256:136","nodes":[{"id":81797,"nodeType":"VariableDeclaration","src":"680:86:136","nodes":[],"constant":true,"documentation":{"id":81794,"nodeType":"StructuredDocumentation","src":"622:53:136","text":"@notice Address of the special depositor account."},"functionSelector":"e591b282","mutability":"constant","name":"DEPOSITOR_ACCOUNT","nameLocation":"704:17:136","scope":81902,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81795,"name":"address","nodeType":"ElementaryTypeName","src":"680:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307844656144444561444465416444654164444541644445616464654164644541644445416430303031","id":81796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"724:42:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xDeaDDEaDDeAdDeAdDEAdDEaddeAddEAdDEAd0001"},"visibility":"public"},{"id":81800,"nodeType":"VariableDeclaration","src":"840:20:136","nodes":[],"constant":false,"documentation":{"id":81798,"nodeType":"StructuredDocumentation","src":"773:62:136","text":"@notice The latest L1 block number known by the L2 system."},"functionSelector":"8381f58a","mutability":"mutable","name":"number","nameLocation":"854:6:136","scope":81902,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":81799,"name":"uint64","nodeType":"ElementaryTypeName","src":"840:6:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":81803,"nodeType":"VariableDeclaration","src":"931:23:136","nodes":[],"constant":false,"documentation":{"id":81801,"nodeType":"StructuredDocumentation","src":"867:59:136","text":"@notice The latest L1 timestamp known by the L2 system."},"functionSelector":"b80777ea","mutability":"mutable","name":"timestamp","nameLocation":"945:9:136","scope":81902,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":81802,"name":"uint64","nodeType":"ElementaryTypeName","src":"931:6:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":81806,"nodeType":"VariableDeclaration","src":"1001:22:136","nodes":[],"constant":false,"documentation":{"id":81804,"nodeType":"StructuredDocumentation","src":"961:35:136","text":"@notice The latest L1 base fee."},"functionSelector":"5cf24969","mutability":"mutable","name":"basefee","nameLocation":"1016:7:136","scope":81902,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81805,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":81809,"nodeType":"VariableDeclaration","src":"1071:19:136","nodes":[],"constant":false,"documentation":{"id":81807,"nodeType":"StructuredDocumentation","src":"1030:36:136","text":"@notice The latest L1 blockhash."},"functionSelector":"09bd5a60","mutability":"mutable","name":"hash","nameLocation":"1086:4:136","scope":81902,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81808,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1071:7:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":81812,"nodeType":"VariableDeclaration","src":"1156:28:136","nodes":[],"constant":false,"documentation":{"id":81810,"nodeType":"StructuredDocumentation","src":"1097:54:136","text":"@notice The number of L2 blocks in the same epoch."},"functionSelector":"64ca23ef","mutability":"mutable","name":"sequenceNumber","nameLocation":"1170:14:136","scope":81902,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":81811,"name":"uint64","nodeType":"ElementaryTypeName","src":"1156:6:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":81815,"nodeType":"VariableDeclaration","src":"1298:31:136","nodes":[],"constant":false,"documentation":{"id":81813,"nodeType":"StructuredDocumentation","src":"1191:102:136","text":"@notice The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"functionSelector":"68d5dca6","mutability":"mutable","name":"blobBaseFeeScalar","nameLocation":"1312:17:136","scope":81902,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":81814,"name":"uint32","nodeType":"ElementaryTypeName","src":"1298:6:136","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"public"},{"id":81818,"nodeType":"VariableDeclaration","src":"1438:27:136","nodes":[],"constant":false,"documentation":{"id":81816,"nodeType":"StructuredDocumentation","src":"1336:97:136","text":"@notice The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"functionSelector":"c5985918","mutability":"mutable","name":"baseFeeScalar","nameLocation":"1452:13:136","scope":81902,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":81817,"name":"uint32","nodeType":"ElementaryTypeName","src":"1438:6:136","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"public"},{"id":81821,"nodeType":"VariableDeclaration","src":"1539:26:136","nodes":[],"constant":false,"documentation":{"id":81819,"nodeType":"StructuredDocumentation","src":"1472:62:136","text":"@notice The versioned hash to authenticate the batcher by."},"functionSelector":"e81b2c6d","mutability":"mutable","name":"batcherHash","nameLocation":"1554:11:136","scope":81902,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81820,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1539:7:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":81824,"nodeType":"VariableDeclaration","src":"1680:28:136","nodes":[],"constant":false,"documentation":{"id":81822,"nodeType":"StructuredDocumentation","src":"1572:103:136","text":"@notice The overhead value applied to the L1 portion of the transaction fee.\n @custom:legacy"},"functionSelector":"8b239f73","mutability":"mutable","name":"l1FeeOverhead","nameLocation":"1695:13:136","scope":81902,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81823,"name":"uint256","nodeType":"ElementaryTypeName","src":"1680:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":81827,"nodeType":"VariableDeclaration","src":"1821:26:136","nodes":[],"constant":false,"documentation":{"id":81825,"nodeType":"StructuredDocumentation","src":"1715:101:136","text":"@notice The scalar value applied to the L1 portion of the transaction fee.\n @custom:legacy"},"functionSelector":"9e8c4966","mutability":"mutable","name":"l1FeeScalar","nameLocation":"1836:11:136","scope":81902,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81826,"name":"uint256","nodeType":"ElementaryTypeName","src":"1821:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":81830,"nodeType":"VariableDeclaration","src":"1899:26:136","nodes":[],"constant":false,"documentation":{"id":81828,"nodeType":"StructuredDocumentation","src":"1854:40:136","text":"@notice The latest L1 blob base fee."},"functionSelector":"f8206140","mutability":"mutable","name":"blobBaseFee","nameLocation":"1914:11:136","scope":81902,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81829,"name":"uint256","nodeType":"ElementaryTypeName","src":"1899:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":81834,"nodeType":"VariableDeclaration","src":"1961:40:136","nodes":[],"baseFunctions":[99148],"constant":true,"documentation":{"id":81831,"nodeType":"StructuredDocumentation","src":"1932:24:136","text":"@custom:semver 1.2.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1984:7:136","scope":81902,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":81832,"name":"string","nodeType":"ElementaryTypeName","src":"1961:6:136","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e322e30","id":81833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1994:7:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_e374587661e69268352d25204d81b23ce801573f4b09f3545e69536dc085a37a","typeString":"literal_string \"1.2.0\""},"value":"1.2.0"},"visibility":"public"},{"id":81895,"nodeType":"FunctionDefinition","src":"2494:660:136","nodes":[],"body":{"id":81894,"nodeType":"Block","src":"2771:383:136","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81855,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2789:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2789:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":81857,"name":"DEPOSITOR_ACCOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81797,"src":"2803:17:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2789:31:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f756e742063616e20736574204c3120626c6f636b2076616c756573","id":81859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2822:61:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3c76ba7c08c4e35ee9214a1ee03dd5f5eafa75e54f6dcd9b82029d1cceb0d7b","typeString":"literal_string \"L1Block: only the depositor account can set L1 block values\""},"value":"L1Block: only the depositor account can set L1 block values"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c3c76ba7c08c4e35ee9214a1ee03dd5f5eafa75e54f6dcd9b82029d1cceb0d7b","typeString":"literal_string \"L1Block: only the depositor account can set L1 block values\""}],"id":81854,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2781:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2781:103:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81861,"nodeType":"ExpressionStatement","src":"2781:103:136"},{"expression":{"id":81864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81862,"name":"number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81800,"src":"2895:6:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81863,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81837,"src":"2904:7:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2895:16:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":81865,"nodeType":"ExpressionStatement","src":"2895:16:136"},{"expression":{"id":81868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81866,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81803,"src":"2921:9:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81867,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81839,"src":"2933:10:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2921:22:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":81869,"nodeType":"ExpressionStatement","src":"2921:22:136"},{"expression":{"id":81872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81870,"name":"basefee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81806,"src":"2953:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81871,"name":"_basefee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81841,"src":"2963:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2953:18:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81873,"nodeType":"ExpressionStatement","src":"2953:18:136"},{"expression":{"id":81876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81874,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81809,"src":"2981:4:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81875,"name":"_hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81843,"src":"2988:5:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2981:12:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81877,"nodeType":"ExpressionStatement","src":"2981:12:136"},{"expression":{"id":81880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81878,"name":"sequenceNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81812,"src":"3003:14:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81879,"name":"_sequenceNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81845,"src":"3020:15:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3003:32:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":81881,"nodeType":"ExpressionStatement","src":"3003:32:136"},{"expression":{"id":81884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81882,"name":"batcherHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81821,"src":"3045:11:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81883,"name":"_batcherHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81847,"src":"3059:12:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3045:26:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81885,"nodeType":"ExpressionStatement","src":"3045:26:136"},{"expression":{"id":81888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81886,"name":"l1FeeOverhead","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81824,"src":"3081:13:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81887,"name":"_l1FeeOverhead","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81849,"src":"3097:14:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3081:30:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81889,"nodeType":"ExpressionStatement","src":"3081:30:136"},{"expression":{"id":81892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81890,"name":"l1FeeScalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81827,"src":"3121:11:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81891,"name":"_l1FeeScalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81851,"src":"3135:12:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3121:26:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81893,"nodeType":"ExpressionStatement","src":"3121:26:136"}]},"documentation":{"id":81835,"nodeType":"StructuredDocumentation","src":"2008:481:136","text":"@custom:legacy\n @notice Updates the L1 block values.\n @param _number L1 blocknumber.\n @param _timestamp L1 timestamp.\n @param _basefee L1 basefee.\n @param _hash L1 blockhash.\n @param _sequenceNumber Number of L2 blocks since epoch start.\n @param _batcherHash Versioned hash to authenticate batcher by.\n @param _l1FeeOverhead L1 fee overhead.\n @param _l1FeeScalar L1 fee scalar."},"functionSelector":"015d8eb9","implemented":true,"kind":"function","modifiers":[],"name":"setL1BlockValues","nameLocation":"2503:16:136","parameters":{"id":81852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81837,"mutability":"mutable","name":"_number","nameLocation":"2536:7:136","nodeType":"VariableDeclaration","scope":81895,"src":"2529:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":81836,"name":"uint64","nodeType":"ElementaryTypeName","src":"2529:6:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":81839,"mutability":"mutable","name":"_timestamp","nameLocation":"2560:10:136","nodeType":"VariableDeclaration","scope":81895,"src":"2553:17:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":81838,"name":"uint64","nodeType":"ElementaryTypeName","src":"2553:6:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":81841,"mutability":"mutable","name":"_basefee","nameLocation":"2588:8:136","nodeType":"VariableDeclaration","scope":81895,"src":"2580:16:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81840,"name":"uint256","nodeType":"ElementaryTypeName","src":"2580:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81843,"mutability":"mutable","name":"_hash","nameLocation":"2614:5:136","nodeType":"VariableDeclaration","scope":81895,"src":"2606:13:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81842,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2606:7:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81845,"mutability":"mutable","name":"_sequenceNumber","nameLocation":"2636:15:136","nodeType":"VariableDeclaration","scope":81895,"src":"2629:22:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":81844,"name":"uint64","nodeType":"ElementaryTypeName","src":"2629:6:136","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":81847,"mutability":"mutable","name":"_batcherHash","nameLocation":"2669:12:136","nodeType":"VariableDeclaration","scope":81895,"src":"2661:20:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2661:7:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81849,"mutability":"mutable","name":"_l1FeeOverhead","nameLocation":"2699:14:136","nodeType":"VariableDeclaration","scope":81895,"src":"2691:22:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81848,"name":"uint256","nodeType":"ElementaryTypeName","src":"2691:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81851,"mutability":"mutable","name":"_l1FeeScalar","nameLocation":"2731:12:136","nodeType":"VariableDeclaration","scope":81895,"src":"2723:20:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81850,"name":"uint256","nodeType":"ElementaryTypeName","src":"2723:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2519:230:136"},"returnParameters":{"id":81853,"nodeType":"ParameterList","parameters":[],"src":"2771:0:136"},"scope":81902,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81901,"nodeType":"FunctionDefinition","src":"3886:956:136","nodes":[],"body":{"id":81900,"nodeType":"Block","src":"3930:912:136","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3949:887:136","statements":[{"body":{"nodeType":"YulBlock","src":"4065:197:136","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4090:4:136","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"4096:10:136","type":"","value":"0x3cc50b45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4083:6:136"},"nodeType":"YulFunctionCall","src":"4083:24:136"},"nodeType":"YulExpressionStatement","src":"4083:24:136"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4188:4:136","type":"","value":"0x1C"},{"kind":"number","nodeType":"YulLiteral","src":"4194:4:136","type":"","value":"0x04"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4181:6:136"},"nodeType":"YulFunctionCall","src":"4181:18:136"},"nodeType":"YulExpressionStatement","src":"4181:18:136"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"caller","nodeType":"YulIdentifier","src":"4036:6:136"},"nodeType":"YulFunctionCall","src":"4036:8:136"},{"name":"DEPOSITOR_ACCOUNT","nodeType":"YulIdentifier","src":"4046:17:136"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"4032:3:136"},"nodeType":"YulFunctionCall","src":"4032:32:136"},"nodeType":"YulIf","src":"4029:233:136"},{"nodeType":"YulVariableDeclaration","src":"4275:27:136","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4300:1:136","type":"","value":"4"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4287:12:136"},"nodeType":"YulFunctionCall","src":"4287:15:136"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"4279:4:136","type":""}]},{"expression":{"arguments":[{"name":"sequenceNumber.slot","nodeType":"YulIdentifier","src":"4410:19:136"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4435:3:136","type":"","value":"128"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4453:1:136","type":"","value":"4"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4440:12:136"},"nodeType":"YulFunctionCall","src":"4440:15:136"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4431:3:136"},"nodeType":"YulFunctionCall","src":"4431:25:136"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4403:6:136"},"nodeType":"YulFunctionCall","src":"4403:54:136"},"nodeType":"YulExpressionStatement","src":"4403:54:136"},{"expression":{"arguments":[{"name":"number.slot","nodeType":"YulIdentifier","src":"4531:11:136"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4548:3:136","type":"","value":"128"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4566:2:136","type":"","value":"20"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4553:12:136"},"nodeType":"YulFunctionCall","src":"4553:16:136"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4544:3:136"},"nodeType":"YulFunctionCall","src":"4544:26:136"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4524:6:136"},"nodeType":"YulFunctionCall","src":"4524:47:136"},"nodeType":"YulExpressionStatement","src":"4524:47:136"},{"expression":{"arguments":[{"name":"basefee.slot","nodeType":"YulIdentifier","src":"4591:12:136"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4618:2:136","type":"","value":"36"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4605:12:136"},"nodeType":"YulFunctionCall","src":"4605:16:136"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4584:6:136"},"nodeType":"YulFunctionCall","src":"4584:38:136"},"nodeType":"YulExpressionStatement","src":"4584:38:136"},{"expression":{"arguments":[{"name":"blobBaseFee.slot","nodeType":"YulIdentifier","src":"4653:16:136"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4684:2:136","type":"","value":"68"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4671:12:136"},"nodeType":"YulFunctionCall","src":"4671:16:136"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4646:6:136"},"nodeType":"YulFunctionCall","src":"4646:42:136"},"nodeType":"YulExpressionStatement","src":"4646:42:136"},{"expression":{"arguments":[{"name":"hash.slot","nodeType":"YulIdentifier","src":"4719:9:136"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4743:3:136","type":"","value":"100"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4730:12:136"},"nodeType":"YulFunctionCall","src":"4730:17:136"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4712:6:136"},"nodeType":"YulFunctionCall","src":"4712:36:136"},"nodeType":"YulExpressionStatement","src":"4712:36:136"},{"expression":{"arguments":[{"name":"batcherHash.slot","nodeType":"YulIdentifier","src":"4779:16:136"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4810:3:136","type":"","value":"132"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4797:12:136"},"nodeType":"YulFunctionCall","src":"4797:17:136"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4772:6:136"},"nodeType":"YulFunctionCall","src":"4772:43:136"},"nodeType":"YulExpressionStatement","src":"4772:43:136"}]},"evmVersion":"london","externalReferences":[{"declaration":81797,"isOffset":false,"isSlot":false,"src":"4046:17:136","valueSize":1},{"declaration":81806,"isOffset":false,"isSlot":true,"src":"4591:12:136","suffix":"slot","valueSize":1},{"declaration":81821,"isOffset":false,"isSlot":true,"src":"4779:16:136","suffix":"slot","valueSize":1},{"declaration":81830,"isOffset":false,"isSlot":true,"src":"4653:16:136","suffix":"slot","valueSize":1},{"declaration":81809,"isOffset":false,"isSlot":true,"src":"4719:9:136","suffix":"slot","valueSize":1},{"declaration":81800,"isOffset":false,"isSlot":true,"src":"4531:11:136","suffix":"slot","valueSize":1},{"declaration":81812,"isOffset":false,"isSlot":true,"src":"4410:19:136","suffix":"slot","valueSize":1}],"id":81899,"nodeType":"InlineAssembly","src":"3940:896:136"}]},"documentation":{"id":81896,"nodeType":"StructuredDocumentation","src":"3160:721:136","text":"@notice Updates the L1 block values for an Ecotone upgraded chain.\n Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size.\n Params are expected to be in the following order:\n 1. _baseFeeScalar L1 base fee scalar\n 2. _blobBaseFeeScalar L1 blob base fee scalar\n 3. _sequenceNumber Number of L2 blocks since epoch start.\n 4. _timestamp L1 timestamp.\n 5. _number L1 blocknumber.\n 6. _basefee L1 base fee.\n 7. _blobBaseFee L1 blob base fee.\n 8. _hash L1 blockhash.\n 9. _batcherHash Versioned hash to authenticate batcher by."},"functionSelector":"440a5e20","implemented":true,"kind":"function","modifiers":[],"name":"setL1BlockValuesEcotone","nameLocation":"3895:23:136","parameters":{"id":81897,"nodeType":"ParameterList","parameters":[],"src":"3918:2:136"},"returnParameters":{"id":81898,"nodeType":"ParameterList","parameters":[],"src":"3930:0:136"},"scope":81902,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":81792,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":99149,"src":"608:7:136"},"id":81793,"nodeType":"InheritanceSpecifier","src":"608:7:136"}],"canonicalName":"L1Block","contractDependencies":[],"contractKind":"contract","documentation":{"id":81791,"nodeType":"StructuredDocumentation","src":"111:477:136","text":"@custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000015\n @title L1Block\n @notice The L1Block predeploy gives users access to information about the last known L1 block.\n Values within this contract are updated once per epoch (every L1 block) and can only be\n set by the \"depositor\" account, a special system address. Depositor account transactions\n are created by the protocol whenever we move to a new epoch."},"fullyImplemented":true,"linearizedBaseContracts":[81902,99149],"name":"L1Block","nameLocation":"597:7:136","scope":81903,"usedErrors":[]}],"license":"MIT"},"id":136}
{"abi":[{"type":"function","name":"DEPOSITOR_ACCOUNT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"baseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"basefee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batcherHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"hash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"l1FeeOverhead","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"l1FeeScalar","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"number","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"sequenceNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"setL1BlockValues","inputs":[{"name":"_number","type":"uint64","internalType":"uint64"},{"name":"_timestamp","type":"uint64","internalType":"uint64"},{"name":"_basefee","type":"uint256","internalType":"uint256"},{"name":"_hash","type":"bytes32","internalType":"bytes32"},{"name":"_sequenceNumber","type":"uint64","internalType":"uint64"},{"name":"_batcherHash","type":"bytes32","internalType":"bytes32"},{"name":"_l1FeeOverhead","type":"uint256","internalType":"uint256"},{"name":"_l1FeeScalar","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setL1BlockValuesEcotone","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"timestamp","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061053e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638381f58a11610097578063c598591811610066578063c598591814610229578063e591b28214610249578063e81b2c6d14610289578063f82061401461029257600080fd5b80638381f58a146101e35780638b239f73146101f75780639e8c496614610200578063b80777ea1461020957600080fd5b806354fd4d50116100d357806354fd4d50146101335780635cf249691461017c57806364ca23ef1461018557806368d5dca6146101b257600080fd5b8063015d8eb9146100fa57806309bd5a601461010f578063440a5e201461012b575b600080fd5b61010d61010836600461044c565b61029b565b005b61011860025481565b6040519081526020015b60405180910390f35b61010d6103da565b61016f6040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161012291906104be565b61011860015481565b6003546101999067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610122565b6003546101ce9068010000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610122565b6000546101999067ffffffffffffffff1681565b61011860055481565b61011860065481565b6000546101999068010000000000000000900467ffffffffffffffff1681565b6003546101ce906c01000000000000000000000000900463ffffffff1681565b61026473deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b61011860045481565b61011860075481565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461040357633cc50b456000526004601cfd5b60043560801c60035560143560801c600055602435600155604435600755606435600255608435600455565b803567ffffffffffffffff8116811461044757600080fd5b919050565b600080600080600080600080610100898b03121561046957600080fd5b6104728961042f565b975061048060208a0161042f565b9650604089013595506060890135945061049c60808a0161042f565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600060208083528351808285015260005b818110156104eb578581018301518582016040015282016104cf565b818111156104fd576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"588:4256:141:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638381f58a11610097578063c598591811610066578063c598591814610229578063e591b28214610249578063e81b2c6d14610289578063f82061401461029257600080fd5b80638381f58a146101e35780638b239f73146101f75780639e8c496614610200578063b80777ea1461020957600080fd5b806354fd4d50116100d357806354fd4d50146101335780635cf249691461017c57806364ca23ef1461018557806368d5dca6146101b257600080fd5b8063015d8eb9146100fa57806309bd5a601461010f578063440a5e201461012b575b600080fd5b61010d61010836600461044c565b61029b565b005b61011860025481565b6040519081526020015b60405180910390f35b61010d6103da565b61016f6040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161012291906104be565b61011860015481565b6003546101999067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610122565b6003546101ce9068010000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610122565b6000546101999067ffffffffffffffff1681565b61011860055481565b61011860065481565b6000546101999068010000000000000000900467ffffffffffffffff1681565b6003546101ce906c01000000000000000000000000900463ffffffff1681565b61026473deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b61011860045481565b61011860075481565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461040357633cc50b456000526004601cfd5b60043560801c60035560143560801c600055602435600155604435600755606435600255608435600455565b803567ffffffffffffffff8116811461044757600080fd5b919050565b600080600080600080600080610100898b03121561046957600080fd5b6104728961042f565b975061048060208a0161042f565b9650604089013595506060890135945061049c60808a0161042f565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600060208083528351808285015260005b818110156104eb578581018301518582016040015282016104cf565b818111156104fd576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"588:4256:141:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2494:660;;;;;;:::i;:::-;;:::i;:::-;;1071:19;;;;;;;;;1014:25:350;;;1002:2;987:18;1071:19:141;;;;;;;;3886:956;;;:::i;1961:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1001:22::-;;;;;;1156:28;;;;;;;;;;;;2067:18:350;2055:31;;;2037:50;;2025:2;2010:18;1156:28:141;1893:200:350;1298:31:141;;;;;;;;;;;;;;;2272:10:350;2260:23;;;2242:42;;2230:2;2215:18;1298:31:141;2098:192:350;840:20:141;;;;;;;;;1680:28;;;;;;1821:26;;;;;;931:23;;;;;;;;;;;;1438:27;;;;;;;;;;;;680:86;;724:42;680:86;;;;;2471:42:350;2459:55;;;2441:74;;2429:2;2414:18;680:86:141;2295:226:350;1539:26:141;;;;;;1899;;;;;;2494:660;2789:10;724:42;2789:31;2781:103;;;;;;;2728:2:350;2781:103:141;;;2710:21:350;2767:2;2747:18;;;2740:30;2806:34;2786:18;;;2779:62;2877:29;2857:18;;;2850:57;2924:19;;2781:103:141;;;;;;;;2895:6;:16;;;2921:22;;;;;;;;;2895:16;;;2921:22;;;;;;;;;;;2895:16;2953:18;;;;2981:4;:12;;;;3003:14;:32;;;;;;2895:16;3003:32;;;;;;;;3045:11;:26;;;;3081:13;:30;3121:11;:26;2494:660::o;3886:956::-;4036:8;4046:17;4029:233;;;4096:10;4090:4;4083:24;4194:4;4188;4181:18;4029:233;4453:1;4440:15;4435:3;4431:25;4410:19;4403:54;4566:2;4553:16;4548:3;4544:26;4531:11;4524:47;4618:2;4605:16;4591:12;4584:38;4684:2;4671:16;4653;4646:42;4743:3;4730:17;4719:9;4712:36;4810:3;4797:17;4779:16;4772:43;3886:956::o;14:171:350:-;81:20;;141:18;130:30;;120:41;;110:69;;175:1;172;165:12;110:69;14:171;;;:::o;190:673::-;309:6;317;325;333;341;349;357;365;418:3;406:9;397:7;393:23;389:33;386:53;;;435:1;432;425:12;386:53;458:28;476:9;458:28;:::i;:::-;448:38;;505:37;538:2;527:9;523:18;505:37;:::i;:::-;495:47;;589:2;578:9;574:18;561:32;551:42;;640:2;629:9;625:18;612:32;602:42;;663:38;696:3;685:9;681:19;663:38;:::i;:::-;190:673;;;;-1:-1:-1;190:673:350;;;;653:48;748:3;733:19;;720:33;;-1:-1:-1;800:3:350;785:19;;772:33;;852:3;837:19;824:33;;-1:-1:-1;190:673:350;-1:-1:-1;;190:673:350:o;1050:656::-;1162:4;1191:2;1220;1209:9;1202:21;1252:6;1246:13;1295:6;1290:2;1279:9;1275:18;1268:34;1320:1;1330:140;1344:6;1341:1;1338:13;1330:140;;;1439:14;;;1435:23;;1429:30;1405:17;;;1424:2;1401:26;1394:66;1359:10;;1330:140;;;1488:6;1485:1;1482:13;1479:91;;;1558:1;1553:2;1544:6;1533:9;1529:22;1525:31;1518:42;1479:91;-1:-1:-1;1622:2:350;1610:15;1627:66;1606:88;1591:104;;;;1697:2;1587:113;;1050:656;-1:-1:-1;;;1050:656:350:o","linkReferences":{}},"methodIdentifiers":{"DEPOSITOR_ACCOUNT()":"e591b282","baseFeeScalar()":"c5985918","basefee()":"5cf24969","batcherHash()":"e81b2c6d","blobBaseFee()":"f8206140","blobBaseFeeScalar()":"68d5dca6","hash()":"09bd5a60","l1FeeOverhead()":"8b239f73","l1FeeScalar()":"9e8c4966","number()":"8381f58a","sequenceNumber()":"64ca23ef","setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":"015d8eb9","setL1BlockValuesEcotone()":"440a5e20","timestamp()":"b80777ea","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DEPOSITOR_ACCOUNT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseFeeScalar\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"basefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batcherHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blobBaseFeeScalar\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1FeeOverhead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1FeeScalar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"number\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_number\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_basefee\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_batcherHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_l1FeeOverhead\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_l1FeeScalar\",\"type\":\"uint256\"}],\"name\":\"setL1BlockValues\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setL1BlockValuesEcotone\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000015\",\"kind\":\"dev\",\"methods\":{\"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)\":{\"custom:legacy\":\"@notice Updates the L1 block values.\",\"params\":{\"_basefee\":\"L1 basefee.\",\"_batcherHash\":\"Versioned hash to authenticate batcher by.\",\"_hash\":\"L1 blockhash.\",\"_l1FeeOverhead\":\"L1 fee overhead.\",\"_l1FeeScalar\":\"L1 fee scalar.\",\"_number\":\"L1 blocknumber.\",\"_sequenceNumber\":\"Number of L2 blocks since epoch start.\",\"_timestamp\":\"L1 timestamp.\"}}},\"stateVariables\":{\"l1FeeOverhead\":{\"custom:legacy\":\"\"},\"l1FeeScalar\":{\"custom:legacy\":\"\"},\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"L1Block\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DEPOSITOR_ACCOUNT()\":{\"notice\":\"Address of the special depositor account.\"},\"baseFeeScalar()\":{\"notice\":\"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func.\"},\"basefee()\":{\"notice\":\"The latest L1 base fee.\"},\"batcherHash()\":{\"notice\":\"The versioned hash to authenticate the batcher by.\"},\"blobBaseFee()\":{\"notice\":\"The latest L1 blob base fee.\"},\"blobBaseFeeScalar()\":{\"notice\":\"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func.\"},\"hash()\":{\"notice\":\"The latest L1 blockhash.\"},\"l1FeeOverhead()\":{\"notice\":\"The overhead value applied to the L1 portion of the transaction fee.\"},\"l1FeeScalar()\":{\"notice\":\"The scalar value applied to the L1 portion of the transaction fee.\"},\"number()\":{\"notice\":\"The latest L1 block number known by the L2 system.\"},\"sequenceNumber()\":{\"notice\":\"The number of L2 blocks in the same epoch.\"},\"setL1BlockValuesEcotone()\":{\"notice\":\"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by.\"},\"timestamp()\":{\"notice\":\"The latest L1 timestamp known by the L2 system.\"}},\"notice\":\"The L1Block predeploy gives users access to information about the last known L1 block. Values within this contract are updated once per epoch (every L1 block) and can only be set by the \\\"depositor\\\" account, a special system address. Depositor account transactions are created by the protocol whenever we move to a new epoch.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L1Block.sol\":\"L1Block\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/L2/L1Block.sol\":{\"keccak256\":\"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7\",\"dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_ACCOUNT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"basefee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"batcherHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeOverhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeScalar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"number","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"sequenceNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"_number","type":"uint64"},{"internalType":"uint64","name":"_timestamp","type":"uint64"},{"internalType":"uint256","name":"_basefee","type":"uint256"},{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"uint64","name":"_sequenceNumber","type":"uint64"},{"internalType":"bytes32","name":"_batcherHash","type":"bytes32"},{"internalType":"uint256","name":"_l1FeeOverhead","type":"uint256"},{"internalType":"uint256","name":"_l1FeeScalar","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setL1BlockValues"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setL1BlockValuesEcotone"},{"inputs":[],"stateMutability":"view","type":"function","name":"timestamp","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":{"custom:legacy":"@notice Updates the L1 block values.","params":{"_basefee":"L1 basefee.","_batcherHash":"Versioned hash to authenticate batcher by.","_hash":"L1 blockhash.","_l1FeeOverhead":"L1 fee overhead.","_l1FeeScalar":"L1 fee scalar.","_number":"L1 blocknumber.","_sequenceNumber":"Number of L2 blocks since epoch start.","_timestamp":"L1 timestamp."}}},"version":1},"userdoc":{"kind":"user","methods":{"DEPOSITOR_ACCOUNT()":{"notice":"Address of the special depositor account."},"baseFeeScalar()":{"notice":"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"basefee()":{"notice":"The latest L1 base fee."},"batcherHash()":{"notice":"The versioned hash to authenticate the batcher by."},"blobBaseFee()":{"notice":"The latest L1 blob base fee."},"blobBaseFeeScalar()":{"notice":"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"hash()":{"notice":"The latest L1 blockhash."},"l1FeeOverhead()":{"notice":"The overhead value applied to the L1 portion of the transaction fee."},"l1FeeScalar()":{"notice":"The scalar value applied to the L1 portion of the transaction fee."},"number()":{"notice":"The latest L1 block number known by the L2 system."},"sequenceNumber()":{"notice":"The number of L2 blocks in the same epoch."},"setL1BlockValuesEcotone()":{"notice":"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by."},"timestamp()":{"notice":"The latest L1 timestamp known by the L2 system."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L1Block.sol":"L1Block"},"evmVersion":"london","libraries":{}},"sources":{"src/L2/L1Block.sol":{"keccak256":"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6","urls":["bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7","dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":87271,"contract":"src/L2/L1Block.sol:L1Block","label":"number","offset":0,"slot":"0","type":"t_uint64"},{"astId":87274,"contract":"src/L2/L1Block.sol:L1Block","label":"timestamp","offset":8,"slot":"0","type":"t_uint64"},{"astId":87277,"contract":"src/L2/L1Block.sol:L1Block","label":"basefee","offset":0,"slot":"1","type":"t_uint256"},{"astId":87280,"contract":"src/L2/L1Block.sol:L1Block","label":"hash","offset":0,"slot":"2","type":"t_bytes32"},{"astId":87283,"contract":"src/L2/L1Block.sol:L1Block","label":"sequenceNumber","offset":0,"slot":"3","type":"t_uint64"},{"astId":87286,"contract":"src/L2/L1Block.sol:L1Block","label":"blobBaseFeeScalar","offset":8,"slot":"3","type":"t_uint32"},{"astId":87289,"contract":"src/L2/L1Block.sol:L1Block","label":"baseFeeScalar","offset":12,"slot":"3","type":"t_uint32"},{"astId":87292,"contract":"src/L2/L1Block.sol:L1Block","label":"batcherHash","offset":0,"slot":"4","type":"t_bytes32"},{"astId":87295,"contract":"src/L2/L1Block.sol:L1Block","label":"l1FeeOverhead","offset":0,"slot":"5","type":"t_uint256"},{"astId":87298,"contract":"src/L2/L1Block.sol:L1Block","label":"l1FeeScalar","offset":0,"slot":"6","type":"t_uint256"},{"astId":87301,"contract":"src/L2/L1Block.sol:L1Block","label":"blobBaseFee","offset":0,"slot":"7","type":"t_uint256"}],"types":{"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"version":1,"kind":"user","methods":{"DEPOSITOR_ACCOUNT()":{"notice":"Address of the special depositor account."},"baseFeeScalar()":{"notice":"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"basefee()":{"notice":"The latest L1 base fee."},"batcherHash()":{"notice":"The versioned hash to authenticate the batcher by."},"blobBaseFee()":{"notice":"The latest L1 blob base fee."},"blobBaseFeeScalar()":{"notice":"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"hash()":{"notice":"The latest L1 blockhash."},"l1FeeOverhead()":{"notice":"The overhead value applied to the L1 portion of the transaction fee."},"l1FeeScalar()":{"notice":"The scalar value applied to the L1 portion of the transaction fee."},"number()":{"notice":"The latest L1 block number known by the L2 system."},"sequenceNumber()":{"notice":"The number of L2 blocks in the same epoch."},"setL1BlockValuesEcotone()":{"notice":"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by."},"timestamp()":{"notice":"The latest L1 timestamp known by the L2 system."}},"notice":"The L1Block predeploy gives users access to information about the last known L1 block. Values within this contract are updated once per epoch (every L1 block) and can only be set by the \"depositor\" account, a special system address. Depositor account transactions are created by the protocol whenever we move to a new epoch."},"devdoc":{"version":1,"kind":"dev","methods":{"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":{"params":{"_basefee":"L1 basefee.","_batcherHash":"Versioned hash to authenticate batcher by.","_hash":"L1 blockhash.","_l1FeeOverhead":"L1 fee overhead.","_l1FeeScalar":"L1 fee scalar.","_number":"L1 blocknumber.","_sequenceNumber":"Number of L2 blocks since epoch start.","_timestamp":"L1 timestamp."}}},"title":"L1Block"},"id":141}

@@ -1,1 +0,1 @@

{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getL1BlockNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610219806100206000396000f3fe60806040526004361061002d5760003560e01c806354fd4d5014610052578063b9b3efe9146100b157610048565b3661004857600061003c6100d4565b90508060005260206000f35b600061003c6100d4565b34801561005e57600080fd5b5061009b6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a89190610168565b60405180910390f35b3480156100bd57600080fd5b506100c66100d4565b6040519081526020016100a8565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015991906101db565b67ffffffffffffffff16905090565b600060208083528351808285015260005b8181101561019557858101830151858201604001528201610179565b818111156101a7576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156101ed57600080fd5b815167ffffffffffffffff8116811461020557600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"668:888:167:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061002d5760003560e01c806354fd4d5014610052578063b9b3efe9146100b157610048565b3661004857600061003c6100d4565b90508060005260206000f35b600061003c6100d4565b34801561005e57600080fd5b5061009b6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a89190610168565b60405180910390f35b3480156100bd57600080fd5b506100c66100d4565b6040519081526020016100a8565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015991906101db565b67ffffffffffffffff16905090565b600060208083528351808285015260005b8181101561019557858101830151858201604001528201610179565b818111156101a7576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156101ed57600080fd5b815167ffffffffffffffff8116811461020557600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"668:888:167:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:21;924:18;:16;:18::i;:::-;900:42;;985:13;982:1;975:24;1022:2;1019:1;1012:13;668:888;1183:21;1207:18;:16;:18::i;771:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;1424:130;;;;;;;;;;;;;:::i;:::-;;;821:25:334;;;809:2;794:18;1424:130:167;675:177:334;1424:130:167;1473:7;1455:42:183;1499:46:167;;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1492:55;;;;1424:130;:::o;14:656:334:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;586:2:334;574:15;591:66;570:88;555:104;;;;661:2;551:113;;14:656;-1:-1:-1;;;14:656:334:o;857:288::-;926:6;979:2;967:9;958:7;954:23;950:32;947:52;;;995:1;992;985:12;947:52;1027:9;1021:16;1077:18;1070:5;1066:30;1059:5;1056:41;1046:69;;1111:1;1108;1101:12;1046:69;1134:5;857:288;-1:-1:-1;;;857:288:334:o","linkReferences":{}},"methodIdentifiers":{"getL1BlockNumber()":"b9b3efe9","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getL1BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:legacy\":\"@custom:proxied\",\"custom:predeploy\":\"0x4200000000000000000000000000000000000013\",\"kind\":\"dev\",\"methods\":{\"getL1BlockNumber()\":{\"returns\":{\"_0\":\"Latest L1 block number.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"L1BlockNumber\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getL1BlockNumber()\":{\"notice\":\"Retrieves the latest L1 block number.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"L1BlockNumber is a legacy contract that fills the roll of the OVM_L1BlockNumber contract in the old version of the Optimism system. Only necessary for backwards compatibility. If you want to access the L1 block number going forward, you should use the L1Block contract instead.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/L1BlockNumber.sol\":\"L1BlockNumber\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/L2/L1Block.sol\":{\"keccak256\":\"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7\",\"dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv\"]},\"src/legacy/L1BlockNumber.sol\":{\"keccak256\":\"0x8e06af231b51f9f03fdc5f75d25b3417ca78b65fb2494bd12d093f85e76293be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271d5d918fdda81ca011113ede99029c6b67630b296fa27c022e7baed9272caa\",\"dweb:/ipfs/QmeoKKv3DtEXPzrddEzibwn4vnEzA9H4Ew7K2zBQbUDtUH\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"getL1BlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getL1BlockNumber()":{"returns":{"_0":"Latest L1 block number."}}},"version":1},"userdoc":{"kind":"user","methods":{"getL1BlockNumber()":{"notice":"Retrieves the latest L1 block number."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/L1BlockNumber.sol":"L1BlockNumber"},"evmVersion":"london","libraries":{}},"sources":{"src/L2/L1Block.sol":{"keccak256":"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6","urls":["bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7","dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv"],"license":"MIT"},"src/legacy/L1BlockNumber.sol":{"keccak256":"0x8e06af231b51f9f03fdc5f75d25b3417ca78b65fb2494bd12d093f85e76293be","urls":["bzz-raw://271d5d918fdda81ca011113ede99029c6b67630b296fa27c022e7baed9272caa","dweb:/ipfs/QmeoKKv3DtEXPzrddEzibwn4vnEzA9H4Ew7K2zBQbUDtUH"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"getL1BlockNumber()":{"notice":"Retrieves the latest L1 block number."},"version()":{"notice":"Semantic version."}},"notice":"L1BlockNumber is a legacy contract that fills the roll of the OVM_L1BlockNumber contract in the old version of the Optimism system. Only necessary for backwards compatibility. If you want to access the L1 block number going forward, you should use the L1Block contract instead."},"devdoc":{"version":1,"kind":"dev","methods":{"getL1BlockNumber()":{"returns":{"_0":"Latest L1 block number."}}},"title":"L1BlockNumber"},"ast":{"absolutePath":"src/legacy/L1BlockNumber.sol","id":91707,"exportedSymbols":{"ISemver":[99149],"L1Block":[81902],"L1BlockNumber":[91706],"Predeploys":[93856]},"nodeType":"SourceUnit","src":"32:1525:167","nodes":[{"id":91656,"nodeType":"PragmaDirective","src":"32:23:167","nodes":[],"literals":["solidity","0.8",".15"]},{"id":91658,"nodeType":"ImportDirective","src":"57:45:167","nodes":[],"absolutePath":"src/L2/L1Block.sol","file":"src/L2/L1Block.sol","nameLocation":"-1:-1:-1","scope":91707,"sourceUnit":81903,"symbolAliases":[{"foreign":{"id":91657,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81902,"src":"66:7:167","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91660,"nodeType":"ImportDirective","src":"103:58:167","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":91707,"sourceUnit":93857,"symbolAliases":[{"foreign":{"id":91659,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93856,"src":"112:10:167","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91662,"nodeType":"ImportDirective","src":"162:52:167","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":91707,"sourceUnit":99150,"symbolAliases":[{"foreign":{"id":91661,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99149,"src":"171:7:167","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91706,"nodeType":"ContractDefinition","src":"668:888:167","nodes":[{"id":91669,"nodeType":"VariableDeclaration","src":"771:40:167","nodes":[],"baseFunctions":[99148],"constant":true,"documentation":{"id":91666,"nodeType":"StructuredDocumentation","src":"708:58:167","text":"@notice Semantic version.\n @custom:semver 1.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"794:7:167","scope":91706,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":91667,"name":"string","nodeType":"ElementaryTypeName","src":"771:6:167","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e312e30","id":91668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"804:7:167","typeDescriptions":{"typeIdentifier":"t_stringliteral_6815ba53416ba06aff1932cc76b3832272bafab9bc8e066be382e32b06ba5546","typeString":"literal_string \"1.1.0\""},"value":"1.1.0"},"visibility":"public"},{"id":91680,"nodeType":"FunctionDefinition","src":"863:178:167","nodes":[],"body":{"id":91679,"nodeType":"Block","src":"890:151:167","nodes":[],"statements":[{"assignments":[91674],"declarations":[{"constant":false,"id":91674,"mutability":"mutable","name":"l1BlockNumber","nameLocation":"908:13:167","nodeType":"VariableDeclaration","scope":91679,"src":"900:21:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91673,"name":"uint256","nodeType":"ElementaryTypeName","src":"900:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":91677,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":91675,"name":"getL1BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91705,"src":"924:16:167","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":91676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"924:18:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"900:42:167"},{"AST":{"nodeType":"YulBlock","src":"961:74:167","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"982:1:167","type":"","value":"0"},{"name":"l1BlockNumber","nodeType":"YulIdentifier","src":"985:13:167"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"975:6:167"},"nodeType":"YulFunctionCall","src":"975:24:167"},"nodeType":"YulExpressionStatement","src":"975:24:167"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1019:1:167","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1022:2:167","type":"","value":"32"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1012:6:167"},"nodeType":"YulFunctionCall","src":"1012:13:167"},"nodeType":"YulExpressionStatement","src":"1012:13:167"}]},"evmVersion":"london","externalReferences":[{"declaration":91674,"isOffset":false,"isSlot":false,"src":"985:13:167","valueSize":1}],"id":91678,"nodeType":"InlineAssembly","src":"952:83:167"}]},"documentation":{"id":91670,"nodeType":"StructuredDocumentation","src":"818:40:167","text":"@notice Returns the L1 block number."},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":91671,"nodeType":"ParameterList","parameters":[],"src":"870:2:167"},"returnParameters":{"id":91672,"nodeType":"ParameterList","parameters":[],"src":"890:0:167"},"scope":91706,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":91691,"nodeType":"FunctionDefinition","src":"1145:179:167","nodes":[],"body":{"id":91690,"nodeType":"Block","src":"1173:151:167","nodes":[],"statements":[{"assignments":[91685],"declarations":[{"constant":false,"id":91685,"mutability":"mutable","name":"l1BlockNumber","nameLocation":"1191:13:167","nodeType":"VariableDeclaration","scope":91690,"src":"1183:21:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91684,"name":"uint256","nodeType":"ElementaryTypeName","src":"1183:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":91688,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":91686,"name":"getL1BlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91705,"src":"1207:16:167","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":91687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1207:18:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1183:42:167"},{"AST":{"nodeType":"YulBlock","src":"1244:74:167","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1265:1:167","type":"","value":"0"},{"name":"l1BlockNumber","nodeType":"YulIdentifier","src":"1268:13:167"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1258:6:167"},"nodeType":"YulFunctionCall","src":"1258:24:167"},"nodeType":"YulExpressionStatement","src":"1258:24:167"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1302:1:167","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1305:2:167","type":"","value":"32"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1295:6:167"},"nodeType":"YulFunctionCall","src":"1295:13:167"},"nodeType":"YulExpressionStatement","src":"1295:13:167"}]},"evmVersion":"london","externalReferences":[{"declaration":91685,"isOffset":false,"isSlot":false,"src":"1268:13:167","valueSize":1}],"id":91689,"nodeType":"InlineAssembly","src":"1235:83:167"}]},"documentation":{"id":91681,"nodeType":"StructuredDocumentation","src":"1047:40:167","text":"@notice Returns the L1 block number."},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":91682,"nodeType":"ParameterList","parameters":[],"src":"1153:2:167"},"returnParameters":{"id":91683,"nodeType":"ParameterList","parameters":[],"src":"1173:0:167"},"scope":91706,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":91705,"nodeType":"FunctionDefinition","src":"1424:130:167","nodes":[],"body":{"id":91704,"nodeType":"Block","src":"1482:72:167","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":91698,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93856,"src":"1507:10:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$93856_$","typeString":"type(library Predeploys)"}},"id":91699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":93759,"src":"1507:30:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":91697,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81902,"src":"1499:7:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$81902_$","typeString":"type(contract L1Block)"}},"id":91700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1499:39:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$81902","typeString":"contract L1Block"}},"id":91701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":81800,"src":"1499:46:167","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":91702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1499:48:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":91696,"id":91703,"nodeType":"Return","src":"1492:55:167"}]},"documentation":{"id":91692,"nodeType":"StructuredDocumentation","src":"1330:89:167","text":"@notice Retrieves the latest L1 block number.\n @return Latest L1 block number."},"functionSelector":"b9b3efe9","implemented":true,"kind":"function","modifiers":[],"name":"getL1BlockNumber","nameLocation":"1433:16:167","parameters":{"id":91693,"nodeType":"ParameterList","parameters":[],"src":"1449:2:167"},"returnParameters":{"id":91696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":91705,"src":"1473:7:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91694,"name":"uint256","nodeType":"ElementaryTypeName","src":"1473:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1472:9:167"},"scope":91706,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":91664,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":99149,"src":"694:7:167"},"id":91665,"nodeType":"InheritanceSpecifier","src":"694:7:167"}],"canonicalName":"L1BlockNumber","contractDependencies":[],"contractKind":"contract","documentation":{"id":91663,"nodeType":"StructuredDocumentation","src":"216:452:167","text":"@custom:legacy\n @custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000013\n @title L1BlockNumber\n @notice L1BlockNumber is a legacy contract that fills the roll of the OVM_L1BlockNumber contract\n in the old version of the Optimism system. Only necessary for backwards compatibility.\n If you want to access the L1 block number going forward, you should use the L1Block\n contract instead."},"fullyImplemented":true,"linearizedBaseContracts":[91706,99149],"name":"L1BlockNumber","nameLocation":"677:13:167","scope":91707,"usedErrors":[]}],"license":"MIT"},"id":167}
{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getL1BlockNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610219806100206000396000f3fe60806040526004361061002d5760003560e01c806354fd4d5014610052578063b9b3efe9146100b157610048565b3661004857600061003c6100d4565b90508060005260206000f35b600061003c6100d4565b34801561005e57600080fd5b5061009b6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a89190610168565b60405180910390f35b3480156100bd57600080fd5b506100c66100d4565b6040519081526020016100a8565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015991906101db565b67ffffffffffffffff16905090565b600060208083528351808285015260005b8181101561019557858101830151858201604001528201610179565b818111156101a7576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156101ed57600080fd5b815167ffffffffffffffff8116811461020557600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"668:835:179:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061002d5760003560e01c806354fd4d5014610052578063b9b3efe9146100b157610048565b3661004857600061003c6100d4565b90508060005260206000f35b600061003c6100d4565b34801561005e57600080fd5b5061009b6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100a89190610168565b60405180910390f35b3480156100bd57600080fd5b506100c66100d4565b6040519081526020016100a8565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015991906101db565b67ffffffffffffffff16905090565b600060208083528351808285015260005b8181101561019557858101830151858201604001528201610179565b818111156101a7576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156101ed57600080fd5b815167ffffffffffffffff8116811461020557600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"668:835:179:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:21;924:18;:16;:18::i;:::-;900:42;;985:13;982:1;975:24;1022:2;1019:1;1012:13;668:835;1130:21;1154:18;:16;:18::i;771:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;1371:130;;;;;;;;;;;;;:::i;:::-;;;821:25:350;;;809:2;794:18;1371:130:179;675:177:350;1371:130:179;1420:7;1455:42:194;1446:46:179;;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1439:55;;;;1371:130;:::o;14:656:350:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;586:2:350;574:15;591:66;570:88;555:104;;;;661:2;551:113;;14:656;-1:-1:-1;;;14:656:350:o;857:288::-;926:6;979:2;967:9;958:7;954:23;950:32;947:52;;;995:1;992;985:12;947:52;1027:9;1021:16;1077:18;1070:5;1066:30;1059:5;1056:41;1046:69;;1111:1;1108;1101:12;1046:69;1134:5;857:288;-1:-1:-1;;;857:288:350:o","linkReferences":{}},"methodIdentifiers":{"getL1BlockNumber()":"b9b3efe9","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getL1BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:legacy\":\"@custom:proxied\",\"custom:predeploy\":\"0x4200000000000000000000000000000000000013\",\"kind\":\"dev\",\"methods\":{\"getL1BlockNumber()\":{\"returns\":{\"_0\":\"Latest L1 block number.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"L1BlockNumber\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getL1BlockNumber()\":{\"notice\":\"Retrieves the latest L1 block number.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"L1BlockNumber is a legacy contract that fills the roll of the OVM_L1BlockNumber contract in the old version of the Optimism system. Only necessary for backwards compatibility. If you want to access the L1 block number going forward, you should use the L1Block contract instead.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/L1BlockNumber.sol\":\"L1BlockNumber\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/L2/L1Block.sol\":{\"keccak256\":\"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7\",\"dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv\"]},\"src/legacy/L1BlockNumber.sol\":{\"keccak256\":\"0x2dd4a5de9e4a07b51efeeec033ecbdd20cd36e66d6f7574695f9567d1c984aa8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b47b978705f520b5a2732ca5bf0d0a4e24619e479eb96c25bbde44e20f7f4e7\",\"dweb:/ipfs/QmaX8jeYUtB4FSvGrGWrnXRafLrDuESiYukAuJigUoTUyX\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"getL1BlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getL1BlockNumber()":{"returns":{"_0":"Latest L1 block number."}}},"version":1},"userdoc":{"kind":"user","methods":{"getL1BlockNumber()":{"notice":"Retrieves the latest L1 block number."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/L1BlockNumber.sol":"L1BlockNumber"},"evmVersion":"london","libraries":{}},"sources":{"src/L2/L1Block.sol":{"keccak256":"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6","urls":["bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7","dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv"],"license":"MIT"},"src/legacy/L1BlockNumber.sol":{"keccak256":"0x2dd4a5de9e4a07b51efeeec033ecbdd20cd36e66d6f7574695f9567d1c984aa8","urls":["bzz-raw://6b47b978705f520b5a2732ca5bf0d0a4e24619e479eb96c25bbde44e20f7f4e7","dweb:/ipfs/QmaX8jeYUtB4FSvGrGWrnXRafLrDuESiYukAuJigUoTUyX"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"getL1BlockNumber()":{"notice":"Retrieves the latest L1 block number."},"version()":{"notice":"Semantic version."}},"notice":"L1BlockNumber is a legacy contract that fills the roll of the OVM_L1BlockNumber contract in the old version of the Optimism system. Only necessary for backwards compatibility. If you want to access the L1 block number going forward, you should use the L1Block contract instead."},"devdoc":{"version":1,"kind":"dev","methods":{"getL1BlockNumber()":{"returns":{"_0":"Latest L1 block number."}}},"title":"L1BlockNumber"},"id":179}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_minWithdrawalAmount","type":"uint256","internalType":"uint256"},{"name":"_withdrawalNetwork","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MIN_WITHDRAWAL_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WITHDRAWAL_NETWORK","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"view"},{"type":"function","name":"totalProcessed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawalNetwork","type":"uint8","indexed":false,"internalType":"enum FeeVault.WithdrawalNetwork"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561001057600080fd5b506040516108d13803806108d183398101604081905261002f91610079565b6001600160a01b03831660a0526080829052828282806001811115610056576100566100cc565b60c081600181111561006a5761006a6100cc565b815250505050505050506100e2565b60008060006060848603121561008e57600080fd5b83516001600160a01b03811681146100a557600080fd5b602085015160408601519194509250600281106100c157600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60805160a05160c051610790610141600039600081816101760152818161038901526103c40152600081816087015281816102d801528181610367015281816103fd01526105640152600081816101b701526101db01526107906000f3fe6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"352:645:137:-:0;;;787:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2429:22:209;;;;2461:44;;;;934:10:137;946:20;968:18;;2515:39:209;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2319:242;;;787:208:137;;;352:645;;14:517:334;125:6;133;141;194:2;182:9;173:7;169:23;165:32;162:52;;;210:1;207;200:12;162:52;236:16;;-1:-1:-1;;;;;281:31:334;;271:42;;261:70;;327:1;324;317:12;261:70;395:2;380:18;;374:25;444:2;429:18;;423:25;350:5;;-1:-1:-1;374:25:334;-1:-1:-1;479:1:334;467:14;;457:42;;495:1;492;485:12;457:42;518:7;508:17;;;14:517;;;;;:::o;536:127::-;597:10;592:3;588:20;585:1;578:31;628:4;625:1;618:15;652:4;649:1;642:15;536:127;352:645:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"352:645:137:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:34:209;;;;;;;;;;;;;;;;;;190:42:334;178:55;;;160:74;;148:2;133:18;820:34:209;;;;;;;;2732:832;;;;;;;;;;;;;:::i;:::-;;462:40:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1188:29:209:-;;;;;;;;;;;;;;;;;;;1152:25:334;;;1140:2;1125:18;1188:29:209;1006:177:334;927:53:209;;;;;;;;;;;;;;;;;;;;;;:::i;716:46::-;;;;;;;;;;;;;;;2732:832;2817:21;2792;:46;;2771:167;;;;;;;2116:2:334;2771:167:209;;;2098:21:334;2155:2;2135:18;;;2128:30;2194:34;2174:18;;;2167:62;2265:34;2245:18;;;2238:62;2337:12;2316:19;;;2309:41;2367:19;;2771:167:209;;;;;;;;;2949:13;2965:21;2949:37;;3014:5;2996:14;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;3035:40:209;;;2886:25:334;;;3053:9:209;2930:42:334;3008:15;3003:2;2988:18;;2981:43;3064:10:209;3040:18:334;;;3033:43;3035:40:209;;;;;;;2874:2:334;3035:40:209;;;3090:60;3101:5;3108:9;3119:10;3131:18;3090:60;;;;;;;;;:::i;:::-;;;;;;;;3187:20;3165:18;:42;;;;;;;;:::i;:::-;;3161:397;;3224:12;3241:9;:14;;3264:5;3241:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3223:55;;;3300:7;3292:68;;;;;;;4022:2:334;3292:68:209;;;4004:21:334;4061:2;4041:18;;;4034:30;4100:34;4080:18;;;4073:62;4171:18;4151;;;4144:46;4207:19;;3292:68:209;3820:412:334;3292:68:209;3209:162;2761:803;2732:832::o;3161:397::-;3524:9;;;;;;;;-1:-1:-1;3524:9:209;;3391:156;;;;;635:42:183;;3391:68:209;;3468:5;;3391:156;;3493:9;;1112:6;;3391:156;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:803;2732:832::o;245:531:334:-;287:3;325:5;319:12;352:6;347:3;340:19;377:1;387:162;401:6;398:1;395:13;387:162;;;463:4;519:13;;;515:22;;509:29;491:11;;;487:20;;480:59;416:12;387:162;;;567:6;564:1;561:13;558:87;;;633:1;626:4;617:6;612:3;608:16;604:27;597:38;558:87;-1:-1:-1;690:2:334;678:15;695:66;674:88;665:98;;;;765:4;661:109;;245:531;-1:-1:-1;;245:531:334:o;781:220::-;930:2;919:9;912:21;893:4;950:45;991:2;980:9;976:18;968:6;950:45;:::i;:::-;942:53;781:220;-1:-1:-1;;;781:220:334:o;1188:184::-;1240:77;1237:1;1230:88;1337:4;1334:1;1327:15;1361:4;1358:1;1351:15;1377:302;1466:1;1459:5;1456:12;1446:200;;1502:77;1499:1;1492:88;1603:4;1600:1;1593:15;1631:4;1628:1;1621:15;1446:200;1655:18;;1377:302::o;1684:225::-;1839:2;1824:18;;1851:52;1828:9;1885:6;1851:52;:::i;:::-;1684:225;;;;:::o;2397:282::-;2437:3;2468:1;2464:6;2461:1;2458:13;2455:193;;;2504:77;2501:1;2494:88;2605:4;2602:1;2595:15;2633:4;2630:1;2623:15;2455:193;-1:-1:-1;2664:9:334;;2397:282::o;3087:518::-;3339:25;;;3383:42;3461:15;;;3456:2;3441:18;;3434:43;3513:15;;3508:2;3493:18;;3486:43;3326:3;3311:19;;3538:61;3595:2;3580:18;;3572:6;3538:61;:::i;:::-;3087:518;;;;;;;:::o;4237:424::-;4450:42;4442:6;4438:55;4427:9;4420:74;4542:10;4534:6;4530:23;4525:2;4514:9;4510:18;4503:51;4590:2;4585;4574:9;4570:18;4563:30;4401:4;4610:45;4651:2;4640:9;4636:18;4628:6;4610:45;:::i","linkReferences":{},"immutableReferences":{"98863":[{"start":439,"length":32},{"start":475,"length":32}],"98866":[{"start":135,"length":32},{"start":728,"length":32},{"start":871,"length":32},{"start":1021,"length":32},{"start":1380,"length":32}],"98870":[{"start":374,"length":32},{"start":905,"length":32},{"start":964,"length":32}]}},"methodIdentifiers":{"MIN_WITHDRAWAL_AMOUNT()":"d3e5792b","RECIPIENT()":"0d9019e1","WITHDRAWAL_NETWORK()":"d0e12f90","totalProcessed()":"84411d65","version()":"54fd4d50","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"_withdrawalNetwork\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"withdrawalNetwork\",\"type\":\"uint8\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_WITHDRAWAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECIPIENT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWAL_NETWORK\",\"outputs\":[{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProcessed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x420000000000000000000000000000000000001A\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_minWithdrawalAmount\":\"Minimum balance for withdrawals.\",\"_recipient\":\"Wallet that will receive the fees.\",\"_withdrawalNetwork\":\"Network which the recipient will receive fees on.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.4.1\"}},\"title\":\"L1FeeVault\",\"version\":1},\"userdoc\":{\"events\":{\"Withdrawal(uint256,address,address)\":{\"notice\":\"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter.\"},\"Withdrawal(uint256,address,address,uint8)\":{\"notice\":\"Emitted each time a withdrawal occurs.\"}},\"kind\":\"user\",\"methods\":{\"MIN_WITHDRAWAL_AMOUNT()\":{\"notice\":\"Minimum balance before a withdrawal can be triggered.\"},\"RECIPIENT()\":{\"notice\":\"Wallet that will receive the fees.\"},\"WITHDRAWAL_NETWORK()\":{\"notice\":\"Network which the RECIPIENT will receive fees on.\"},\"constructor\":{\"notice\":\"Constructs the L1FeeVault contract.\"},\"totalProcessed()\":{\"notice\":\"Total amount of wei processed by the contract.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"withdraw()\":{\"notice\":\"Triggers a withdrawal of funds to the fee wallet on L1 or L2.\"}},\"notice\":\"The L1FeeVault accumulates the L1 portion of the transaction fees.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L1FeeVault.sol\":\"L1FeeVault\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145\",\"dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7\"]},\"src/L2/L1FeeVault.sol\":{\"keccak256\":\"0xcd6d7f824aee4a4036717c8da17b38e0a2084c463bd6c819ae5cfb3009824198\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fcfd9ff16a0a7f95c9d9b1d0007b5f1cc9f9f0bb24bc16d38ec97557526335b\",\"dweb:/ipfs/QmXddm8QyZw7STd2sJCCR8ahaS7Y7fChHDLQxbXEQpjBNW\"]},\"src/L2/L2StandardBridge.sol\":{\"keccak256\":\"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570\",\"dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xdd186cc21cfd5eb4404e02382a60674283b55a7fd488d5a3b5e902772644d6f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a03255efeec621c48e60316f38bfd919744c1379c36072e6990d14f20e2186fd\",\"dweb:/ipfs/QmbWjAZXN7sBzZuypMXrH92zKbMtq376NXxGAK1xj5VssB\"]},\"src/universal/FeeVault.sol\":{\"keccak256\":\"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9\",\"dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0xa3755ba03080d3c01c905c0d4d4d9b5105982c3553e7bc512a9df7a9754754a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://218aad18881bfeef187c2cdc132036976310f785b55dc63d7df9034aaff536c5\",\"dweb:/ipfs/QmSDRyWV8nD99Nwp12zMvM4iKRqd7f4sNgkzXYHx7V79Ep\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_minWithdrawalAmount","type":"uint256"},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"_withdrawalNetwork","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"withdrawalNetwork","type":"uint8","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_WITHDRAWAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECIPIENT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WITHDRAWAL_NETWORK","outputs":[{"internalType":"enum FeeVault.WithdrawalNetwork","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalProcessed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"version":1},"userdoc":{"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the L1FeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L1FeeVault.sol":"L1FeeVault"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330","urls":["bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145","dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7"],"license":"MIT"},"src/L2/L1FeeVault.sol":{"keccak256":"0xcd6d7f824aee4a4036717c8da17b38e0a2084c463bd6c819ae5cfb3009824198","urls":["bzz-raw://9fcfd9ff16a0a7f95c9d9b1d0007b5f1cc9f9f0bb24bc16d38ec97557526335b","dweb:/ipfs/QmXddm8QyZw7STd2sJCCR8ahaS7Y7fChHDLQxbXEQpjBNW"],"license":"MIT"},"src/L2/L2StandardBridge.sol":{"keccak256":"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629","urls":["bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570","dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xdd186cc21cfd5eb4404e02382a60674283b55a7fd488d5a3b5e902772644d6f4","urls":["bzz-raw://a03255efeec621c48e60316f38bfd919744c1379c36072e6990d14f20e2186fd","dweb:/ipfs/QmbWjAZXN7sBzZuypMXrH92zKbMtq376NXxGAK1xj5VssB"],"license":"MIT"},"src/universal/FeeVault.sol":{"keccak256":"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe","urls":["bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9","dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0xa3755ba03080d3c01c905c0d4d4d9b5105982c3553e7bc512a9df7a9754754a1","urls":["bzz-raw://218aad18881bfeef187c2cdc132036976310f785b55dc63d7df9034aaff536c5","dweb:/ipfs/QmSDRyWV8nD99Nwp12zMvM4iKRqd7f4sNgkzXYHx7V79Ep"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":98877,"contract":"src/L2/L1FeeVault.sol:L1FeeVault","label":"totalProcessed","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the L1FeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"events":{"Withdrawal(uint256,address,address)":{"notice":"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter."},"Withdrawal(uint256,address,address,uint8)":{"notice":"Emitted each time a withdrawal occurs."}},"notice":"The L1FeeVault accumulates the L1 portion of the transaction fees."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"title":"L1FeeVault"},"ast":{"absolutePath":"src/L2/L1FeeVault.sol","id":81936,"exportedSymbols":{"FeeVault":[99010],"ISemver":[99149],"L1FeeVault":[81935]},"nodeType":"SourceUnit","src":"32:966:137","nodes":[{"id":81904,"nodeType":"PragmaDirective","src":"32:23:137","nodes":[],"literals":["solidity","0.8",".15"]},{"id":81906,"nodeType":"ImportDirective","src":"57:52:137","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":81936,"sourceUnit":99150,"symbolAliases":[{"foreign":{"id":81905,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99149,"src":"66:7:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81908,"nodeType":"ImportDirective","src":"110:54:137","nodes":[],"absolutePath":"src/universal/FeeVault.sol","file":"src/universal/FeeVault.sol","nameLocation":"-1:-1:-1","scope":81936,"sourceUnit":99011,"symbolAliases":[{"foreign":{"id":81907,"name":"FeeVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99010,"src":"119:8:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81935,"nodeType":"ContractDefinition","src":"352:645:137","nodes":[{"id":81917,"nodeType":"VariableDeclaration","src":"462:40:137","nodes":[],"baseFunctions":[99148],"constant":true,"documentation":{"id":81914,"nodeType":"StructuredDocumentation","src":"399:58:137","text":"@notice Semantic version.\n @custom:semver 1.4.1"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"485:7:137","scope":81935,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":81915,"name":"string","nodeType":"ElementaryTypeName","src":"462:6:137","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e342e31","id":81916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"495:7:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_7015c1a48403d132ad83884b326109f1b309c42f752b2abd1db79522ee074673","typeString":"literal_string \"1.4.1\""},"value":"1.4.1"},"visibility":"public"},{"id":81934,"nodeType":"FunctionDefinition","src":"787:208:137","nodes":[],"body":{"id":81933,"nodeType":"Block","src":"992:3:137","nodes":[],"statements":[]},"documentation":{"id":81918,"nodeType":"StructuredDocumentation","src":"509:273:137","text":"@notice Constructs the L1FeeVault contract.\n @param _recipient Wallet that will receive the fees.\n @param _minWithdrawalAmount Minimum balance for withdrawals.\n @param _withdrawalNetwork Network which the recipient will receive fees on."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":81928,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81920,"src":"934:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81929,"name":"_minWithdrawalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81922,"src":"946:20:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81930,"name":"_withdrawalNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81925,"src":"968:18:137","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$98860","typeString":"enum FeeVault.WithdrawalNetwork"}}],"id":81931,"kind":"baseConstructorSpecifier","modifierName":{"id":81927,"name":"FeeVault","nodeType":"IdentifierPath","referencedDeclaration":99010,"src":"925:8:137"},"nodeType":"ModifierInvocation","src":"925:62:137"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":81926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81920,"mutability":"mutable","name":"_recipient","nameLocation":"816:10:137","nodeType":"VariableDeclaration","scope":81934,"src":"808:18:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81919,"name":"address","nodeType":"ElementaryTypeName","src":"808:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81922,"mutability":"mutable","name":"_minWithdrawalAmount","nameLocation":"844:20:137","nodeType":"VariableDeclaration","scope":81934,"src":"836:28:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81921,"name":"uint256","nodeType":"ElementaryTypeName","src":"836:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81925,"mutability":"mutable","name":"_withdrawalNetwork","nameLocation":"892:18:137","nodeType":"VariableDeclaration","scope":81934,"src":"874:36:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$98860","typeString":"enum FeeVault.WithdrawalNetwork"},"typeName":{"id":81924,"nodeType":"UserDefinedTypeName","pathNode":{"id":81923,"name":"WithdrawalNetwork","nodeType":"IdentifierPath","referencedDeclaration":98860,"src":"874:17:137"},"referencedDeclaration":98860,"src":"874:17:137","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$98860","typeString":"enum FeeVault.WithdrawalNetwork"}},"visibility":"internal"}],"src":"798:118:137"},"returnParameters":{"id":81932,"nodeType":"ParameterList","parameters":[],"src":"992:0:137"},"scope":81935,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":81910,"name":"FeeVault","nodeType":"IdentifierPath","referencedDeclaration":99010,"src":"375:8:137"},"id":81911,"nodeType":"InheritanceSpecifier","src":"375:8:137"},{"baseName":{"id":81912,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":99149,"src":"385:7:137"},"id":81913,"nodeType":"InheritanceSpecifier","src":"385:7:137"}],"canonicalName":"L1FeeVault","contractDependencies":[],"contractKind":"contract","documentation":{"id":81909,"nodeType":"StructuredDocumentation","src":"166:186:137","text":"@custom:proxied\n @custom:predeploy 0x420000000000000000000000000000000000001A\n @title L1FeeVault\n @notice The L1FeeVault accumulates the L1 portion of the transaction fees."},"fullyImplemented":true,"linearizedBaseContracts":[81935,99149,99010],"name":"L1FeeVault","nameLocation":"361:10:137","scope":81936,"usedErrors":[]}],"license":"MIT"},"id":137}
{"abi":[{"type":"constructor","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_minWithdrawalAmount","type":"uint256","internalType":"uint256"},{"name":"_withdrawalNetwork","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MIN_WITHDRAWAL_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WITHDRAWAL_NETWORK","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"view"},{"type":"function","name":"totalProcessed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawalNetwork","type":"uint8","indexed":false,"internalType":"enum FeeVault.WithdrawalNetwork"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561001057600080fd5b506040516108d13803806108d183398101604081905261002f91610079565b6001600160a01b03831660a0526080829052828282806001811115610056576100566100cc565b60c081600181111561006a5761006a6100cc565b815250505050505050506100e2565b60008060006060848603121561008e57600080fd5b83516001600160a01b03811681146100a557600080fd5b602085015160408601519194509250600281106100c157600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60805160a05160c051610790610141600039600081816101760152818161038901526103c40152600081816087015281816102d801528181610367015281816103fd01526105640152600081816101b701526101db01526107906000f3fe6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"352:645:142:-:0;;;787:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2429:22:220;;;;2461:44;;;;934:10:142;946:20;968:18;;2515:39:220;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2319:242;;;787:208:142;;;352:645;;14:518:350;126:6;134;142;195:2;183:9;174:7;170:23;166:32;163:52;;;211:1;208;201:12;163:52;237:16;;-1:-1:-1;;;;;282:31:350;;272:42;;262:70;;328:1;325;318:12;262:70;396:2;381:18;;375:25;445:2;430:18;;424:25;351:5;;-1:-1:-1;375:25:350;-1:-1:-1;480:1:350;468:14;;458:42;;496:1;493;486:12;458:42;519:7;509:17;;;14:518;;;;;:::o;537:127::-;598:10;593:3;589:20;586:1;579:31;629:4;626:1;619:15;653:4;650:1;643:15;537:127;352:645:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100695760003560e01c806384411d651161004357806384411d6514610140578063d0e12f9014610164578063d3e5792b146101a557600080fd5b80630d9019e1146100755780633ccfd60b146100d357806354fd4d50146100ea57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b506100a97f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100df57600080fd5b506100e86101d9565b005b3480156100f657600080fd5b506101336040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100ca9190610630565b34801561014c57600080fd5b5061015660005481565b6040519081526020016100ca565b34801561017057600080fd5b506101987f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ca91906106b4565b3480156101b157600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000004710156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546102ca91906106c8565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103b89493929190610707565b60405180910390a160017f000000000000000000000000000000000000000000000000000000000000000060018111156103f4576103f461064a565b0361050d5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050905080610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102ab565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd918491610590917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610748565b6000604051808303818588803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156105eb576020818501810151868301820152016105cf565b818111156105fd576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061064360208301846105c5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b602081016106c28284610679565b92915050565b60008219821115610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161073f6060830184610679565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061073f60608301846105c556fea164736f6c634300080f000a","sourceMap":"352:645:142:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:34:220;;;;;;;;;;;;;;;;;;190:42:350;178:55;;;160:74;;148:2;133:18;820:34:220;;;;;;;;2732:832;;;;;;;;;;;;;:::i;:::-;;462:40:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1188:29:220:-;;;;;;;;;;;;;;;;;;;1152:25:350;;;1140:2;1125:18;1188:29:220;1006:177:350;927:53:220;;;;;;;;;;;;;;;;;;;;;;:::i;716:46::-;;;;;;;;;;;;;;;2732:832;2817:21;2792;:46;;2771:167;;;;;;;2117:2:350;2771:167:220;;;2099:21:350;2156:2;2136:18;;;2129:30;2195:34;2175:18;;;2168:62;2266:34;2246:18;;;2239:62;2338:12;2317:19;;;2310:41;2368:19;;2771:167:220;;;;;;;;;2949:13;2965:21;2949:37;;3014:5;2996:14;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;3035:40:220;;;2887:25:350;;;3053:9:220;2931:42:350;3009:15;3004:2;2989:18;;2982:43;3064:10:220;3041:18:350;;;3034:43;3035:40:220;;;;;;;2875:2:350;3035:40:220;;;3090:60;3101:5;3108:9;3119:10;3131:18;3090:60;;;;;;;;;:::i;:::-;;;;;;;;3187:20;3165:18;:42;;;;;;;;:::i;:::-;;3161:397;;3224:12;3241:9;:14;;3264:5;3241:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3223:55;;;3300:7;3292:68;;;;;;;4024:2:350;3292:68:220;;;4006:21:350;4063:2;4043:18;;;4036:30;4102:34;4082:18;;;4075:62;4173:18;4153;;;4146:46;4209:19;;3292:68:220;3822:412:350;3292:68:220;3209:162;2761:803;2732:832::o;3161:397::-;3524:9;;;;;;;;-1:-1:-1;3524:9:220;;3391:156;;;;;635:42:194;;3391:68:220;;3468:5;;3391:156;;3493:9;;1112:6;;3391:156;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:803;2732:832::o;245:531:350:-;287:3;325:5;319:12;352:6;347:3;340:19;377:1;387:162;401:6;398:1;395:13;387:162;;;463:4;519:13;;;515:22;;509:29;491:11;;;487:20;;480:59;416:12;387:162;;;567:6;564:1;561:13;558:87;;;633:1;626:4;617:6;612:3;608:16;604:27;597:38;558:87;-1:-1:-1;690:2:350;678:15;695:66;674:88;665:98;;;;765:4;661:109;;245:531;-1:-1:-1;;245:531:350:o;781:220::-;930:2;919:9;912:21;893:4;950:45;991:2;980:9;976:18;968:6;950:45;:::i;:::-;942:53;781:220;-1:-1:-1;;;781:220:350:o;1188:184::-;1240:77;1237:1;1230:88;1337:4;1334:1;1327:15;1361:4;1358:1;1351:15;1377:302;1466:1;1459:5;1456:12;1446:200;;1502:77;1499:1;1492:88;1603:4;1600:1;1593:15;1631:4;1628:1;1621:15;1446:200;1655:18;;1377:302::o;1684:226::-;1840:2;1825:18;;1852:52;1829:9;1886:6;1852:52;:::i;:::-;1684:226;;;;:::o;2398:282::-;2438:3;2469:1;2465:6;2462:1;2459:13;2456:193;;;2505:77;2502:1;2495:88;2606:4;2603:1;2596:15;2634:4;2631:1;2624:15;2456:193;-1:-1:-1;2665:9:350;;2398:282::o;3088:519::-;3341:25;;;3385:42;3463:15;;;3458:2;3443:18;;3436:43;3515:15;;3510:2;3495:18;;3488:43;3328:3;3313:19;;3540:61;3597:2;3582:18;;3574:6;3540:61;:::i;:::-;3088:519;;;;;;;:::o;4239:424::-;4452:42;4444:6;4440:55;4429:9;4422:74;4544:10;4536:6;4532:23;4527:2;4516:9;4512:18;4505:51;4592:2;4587;4576:9;4572:18;4565:30;4403:4;4612:45;4653:2;4642:9;4638:18;4630:6;4612:45;:::i","linkReferences":{},"immutableReferences":{"105741":[{"start":439,"length":32},{"start":475,"length":32}],"105744":[{"start":135,"length":32},{"start":728,"length":32},{"start":871,"length":32},{"start":1021,"length":32},{"start":1380,"length":32}],"105748":[{"start":374,"length":32},{"start":905,"length":32},{"start":964,"length":32}]}},"methodIdentifiers":{"MIN_WITHDRAWAL_AMOUNT()":"d3e5792b","RECIPIENT()":"0d9019e1","WITHDRAWAL_NETWORK()":"d0e12f90","totalProcessed()":"84411d65","version()":"54fd4d50","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"_withdrawalNetwork\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"withdrawalNetwork\",\"type\":\"uint8\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_WITHDRAWAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECIPIENT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWAL_NETWORK\",\"outputs\":[{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProcessed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x420000000000000000000000000000000000001A\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_minWithdrawalAmount\":\"Minimum balance for withdrawals.\",\"_recipient\":\"Wallet that will receive the fees.\",\"_withdrawalNetwork\":\"Network which the recipient will receive fees on.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.4.1\"}},\"title\":\"L1FeeVault\",\"version\":1},\"userdoc\":{\"events\":{\"Withdrawal(uint256,address,address)\":{\"notice\":\"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter.\"},\"Withdrawal(uint256,address,address,uint8)\":{\"notice\":\"Emitted each time a withdrawal occurs.\"}},\"kind\":\"user\",\"methods\":{\"MIN_WITHDRAWAL_AMOUNT()\":{\"notice\":\"Minimum balance before a withdrawal can be triggered.\"},\"RECIPIENT()\":{\"notice\":\"Wallet that will receive the fees.\"},\"WITHDRAWAL_NETWORK()\":{\"notice\":\"Network which the RECIPIENT will receive fees on.\"},\"constructor\":{\"notice\":\"Constructs the L1FeeVault contract.\"},\"totalProcessed()\":{\"notice\":\"Total amount of wei processed by the contract.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"withdraw()\":{\"notice\":\"Triggers a withdrawal of funds to the fee wallet on L1 or L2.\"}},\"notice\":\"The L1FeeVault accumulates the L1 portion of the transaction fees.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/L1FeeVault.sol\":\"L1FeeVault\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/L2/L1FeeVault.sol\":{\"keccak256\":\"0xcd6d7f824aee4a4036717c8da17b38e0a2084c463bd6c819ae5cfb3009824198\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fcfd9ff16a0a7f95c9d9b1d0007b5f1cc9f9f0bb24bc16d38ec97557526335b\",\"dweb:/ipfs/QmXddm8QyZw7STd2sJCCR8ahaS7Y7fChHDLQxbXEQpjBNW\"]},\"src/L2/L2StandardBridge.sol\":{\"keccak256\":\"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570\",\"dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776\",\"dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo\"]},\"src/universal/FeeVault.sol\":{\"keccak256\":\"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9\",\"dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x361e734aa5ac5701e87aaca3c6bd4b78c85c1d4fca2b5e0bfe72ab2ee6ceaf90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25a5a0f8b38600ef006b0c21093727d4d87f6517d428295bee4034a38ae08da4\",\"dweb:/ipfs/Qmb678AjEGt8tWGrzybn7MTvVWBFLuHEzQG2uHqTjCpNPC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_minWithdrawalAmount","type":"uint256"},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"_withdrawalNetwork","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"withdrawalNetwork","type":"uint8","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_WITHDRAWAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECIPIENT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WITHDRAWAL_NETWORK","outputs":[{"internalType":"enum FeeVault.WithdrawalNetwork","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalProcessed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"version":1},"userdoc":{"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the L1FeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L1FeeVault.sol":"L1FeeVault"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/L2/L1FeeVault.sol":{"keccak256":"0xcd6d7f824aee4a4036717c8da17b38e0a2084c463bd6c819ae5cfb3009824198","urls":["bzz-raw://9fcfd9ff16a0a7f95c9d9b1d0007b5f1cc9f9f0bb24bc16d38ec97557526335b","dweb:/ipfs/QmXddm8QyZw7STd2sJCCR8ahaS7Y7fChHDLQxbXEQpjBNW"],"license":"MIT"},"src/L2/L2StandardBridge.sol":{"keccak256":"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629","urls":["bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570","dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd","urls":["bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776","dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo"],"license":"MIT"},"src/universal/FeeVault.sol":{"keccak256":"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe","urls":["bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9","dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x361e734aa5ac5701e87aaca3c6bd4b78c85c1d4fca2b5e0bfe72ab2ee6ceaf90","urls":["bzz-raw://25a5a0f8b38600ef006b0c21093727d4d87f6517d428295bee4034a38ae08da4","dweb:/ipfs/Qmb678AjEGt8tWGrzybn7MTvVWBFLuHEzQG2uHqTjCpNPC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":105755,"contract":"src/L2/L1FeeVault.sol:L1FeeVault","label":"totalProcessed","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the L1FeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"version()":{"notice":"Semantic version."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"events":{"Withdrawal(uint256,address,address)":{"notice":"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter."},"Withdrawal(uint256,address,address,uint8)":{"notice":"Emitted each time a withdrawal occurs."}},"notice":"The L1FeeVault accumulates the L1 portion of the transaction fees."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}}},"title":"L1FeeVault"},"id":142}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"331:749:182:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;331:749:182;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"331:749:182:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LegacyCrossDomainUtils\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/LegacyCrossDomainUtils.sol\":\"LegacyCrossDomainUtils\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/LegacyCrossDomainUtils.sol\":{\"keccak256\":\"0xc5a6b35f5d67f424bb852d7c9d1930dfc676ed02fcf3d4ccc1171c1b2abafd19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://930a43172e6d9c649cddda5b971fed2c8edbc74fdb2d92ba2a7dfceba448e3e6\",\"dweb:/ipfs/QmcSpWrz8Vk5u37mMSegnNhUhGyuWvVi5qS9A9HWCFTFB5\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/LegacyCrossDomainUtils.sol":"LegacyCrossDomainUtils"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/LegacyCrossDomainUtils.sol":{"keccak256":"0xc5a6b35f5d67f424bb852d7c9d1930dfc676ed02fcf3d4ccc1171c1b2abafd19","urls":["bzz-raw://930a43172e6d9c649cddda5b971fed2c8edbc74fdb2d92ba2a7dfceba448e3e6","dweb:/ipfs/QmcSpWrz8Vk5u37mMSegnNhUhGyuWvVi5qS9A9HWCFTFB5"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","title":"LegacyCrossDomainUtils"},"ast":{"absolutePath":"src/libraries/LegacyCrossDomainUtils.sol","id":93726,"exportedSymbols":{"LegacyCrossDomainUtils":[93725]},"nodeType":"SourceUnit","src":"32:1049:182","nodes":[{"id":93699,"nodeType":"PragmaDirective","src":"32:23:182","nodes":[],"literals":["solidity","^","0.8",".9"]},{"id":93725,"nodeType":"ContractDefinition","src":"331:749:182","nodes":[{"id":93724,"nodeType":"FunctionDefinition","src":"705:373:182","nodes":[],"body":{"id":93723,"nodeType":"Block","src":"919:159:182","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"72656c61794d65737361676528616464726573732c616464726573732c62797465732c75696e7432353629","id":93716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"973:45:182","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbd4ece909957cc1dd89405b09b9838fb740ff058af3432bb6de0c5c84b205ce","typeString":"literal_string \"relayMessage(address,address,bytes,uint256)\""},"value":"relayMessage(address,address,bytes,uint256)"},{"id":93717,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93703,"src":"1020:7:182","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":93718,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93705,"src":"1029:7:182","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":93719,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93707,"src":"1038:8:182","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":93720,"name":"_messageNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93709,"src":"1048:13:182","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cbd4ece909957cc1dd89405b09b9838fb740ff058af3432bb6de0c5c84b205ce","typeString":"literal_string \"relayMessage(address,address,bytes,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":93714,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"936:3:182","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":93715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"936:23:182","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":93721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"936:135:182","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":93713,"id":93722,"nodeType":"Return","src":"929:142:182"}]},"documentation":{"id":93701,"nodeType":"StructuredDocumentation","src":"368:332:182","text":"@notice Generates the correct cross domain calldata for a message.\n @param _target Target contract address.\n @param _sender Message sender address.\n @param _message Message to send to the target.\n @param _messageNonce Nonce for the provided message.\n @return ABI encoded cross domain calldata."},"implemented":true,"kind":"function","modifiers":[],"name":"encodeXDomainCalldata","nameLocation":"714:21:182","parameters":{"id":93710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93703,"mutability":"mutable","name":"_target","nameLocation":"753:7:182","nodeType":"VariableDeclaration","scope":93724,"src":"745:15:182","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93702,"name":"address","nodeType":"ElementaryTypeName","src":"745:7:182","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":93705,"mutability":"mutable","name":"_sender","nameLocation":"778:7:182","nodeType":"VariableDeclaration","scope":93724,"src":"770:15:182","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93704,"name":"address","nodeType":"ElementaryTypeName","src":"770:7:182","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":93707,"mutability":"mutable","name":"_message","nameLocation":"808:8:182","nodeType":"VariableDeclaration","scope":93724,"src":"795:21:182","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":93706,"name":"bytes","nodeType":"ElementaryTypeName","src":"795:5:182","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":93709,"mutability":"mutable","name":"_messageNonce","nameLocation":"834:13:182","nodeType":"VariableDeclaration","scope":93724,"src":"826:21:182","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93708,"name":"uint256","nodeType":"ElementaryTypeName","src":"826:7:182","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"735:118:182"},"returnParameters":{"id":93713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":93724,"src":"901:12:182","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":93711,"name":"bytes","nodeType":"ElementaryTypeName","src":"901:5:182","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"900:14:182"},"scope":93725,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LegacyCrossDomainUtils","contractDependencies":[],"contractKind":"library","documentation":{"id":93700,"nodeType":"StructuredDocumentation","src":"297:34:182","text":"@title LegacyCrossDomainUtils"},"fullyImplemented":true,"linearizedBaseContracts":[93725],"name":"LegacyCrossDomainUtils","nameLocation":"339:22:182","scope":93726,"usedErrors":[]}],"license":"MIT"},"id":182}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"331:749:193:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;331:749:193;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"331:749:193:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LegacyCrossDomainUtils\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/LegacyCrossDomainUtils.sol\":\"LegacyCrossDomainUtils\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/LegacyCrossDomainUtils.sol\":{\"keccak256\":\"0xc5a6b35f5d67f424bb852d7c9d1930dfc676ed02fcf3d4ccc1171c1b2abafd19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://930a43172e6d9c649cddda5b971fed2c8edbc74fdb2d92ba2a7dfceba448e3e6\",\"dweb:/ipfs/QmcSpWrz8Vk5u37mMSegnNhUhGyuWvVi5qS9A9HWCFTFB5\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/LegacyCrossDomainUtils.sol":"LegacyCrossDomainUtils"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/LegacyCrossDomainUtils.sol":{"keccak256":"0xc5a6b35f5d67f424bb852d7c9d1930dfc676ed02fcf3d4ccc1171c1b2abafd19","urls":["bzz-raw://930a43172e6d9c649cddda5b971fed2c8edbc74fdb2d92ba2a7dfceba448e3e6","dweb:/ipfs/QmcSpWrz8Vk5u37mMSegnNhUhGyuWvVi5qS9A9HWCFTFB5"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","title":"LegacyCrossDomainUtils"},"id":193}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"passMessageToL1","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sentMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061035a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806382e3702d14610098578063cafa81dc146100cb575b600080fd5b6100826040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f919061019b565b60405180910390f35b6100bb6100a63660046101ec565b60006020819052908152604090205460ff1681565b604051901515815260200161008f565b6100de6100d9366004610234565b6100e0565b005b600160008083336040516020016100f8929190610303565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291815281516020928301208352908201929092520160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550565b60005b8381101561018657818101518382015260200161016e565b83811115610195576000848401525b50505050565b60208152600082518060208401526101ba81604085016020870161016b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156101fe57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561024657600080fd5b813567ffffffffffffffff8082111561025e57600080fd5b818401915084601f83011261027257600080fd5b81358181111561028457610284610205565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156102ca576102ca610205565b816040528281528760208487010111156102e357600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000835161031581846020880161016b565b60609390931b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016919092019081526014019291505056fea164736f6c634300080f000a","sourceMap":"442:506:170:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806382e3702d14610098578063cafa81dc146100cb575b600080fd5b6100826040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f919061019b565b60405180910390f35b6100bb6100a63660046101ec565b60006020819052908152604090205460ff1681565b604051901515815260200161008f565b6100de6100d9366004610234565b6100e0565b005b600160008083336040516020016100f8929190610303565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291815281516020928301208352908201929092520160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550565b60005b8381101561018657818101518382015260200161016e565b83811115610195576000848401525b50505050565b60208152600082518060208401526101ba81604085016020870161016b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156101fe57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561024657600080fd5b813567ffffffffffffffff8082111561025e57600080fd5b818401915084601f83011261027257600080fd5b81358181111561028457610284610205565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156102ca576102ca610205565b816040528281528760208487010111156102e357600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000835161031581846020880161016b565b60609390931b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016919092019081526014019291505056fea164736f6c634300080f000a","sourceMap":"442:506:170:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;554:44;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1074:14:334;;1067:22;1049:41;;1037:2;1022:18;554:44:170;909:187:334;802:144:170;;;;;;:::i;:::-;;:::i;:::-;;;935:4;869:12;:63;909:8;919:10;892:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;882:49;;892:38;882:49;;;;869:63;;;;;;;;;;-1:-1:-1;869:63:170;:70;;;;;;;;;;;;;-1:-1:-1;802:144:170:o;14:258:334:-;86:1;96:113;110:6;107:1;104:13;96:113;;;186:11;;;180:18;167:11;;;160:39;132:2;125:10;96:113;;;227:6;224:1;221:13;218:48;;;262:1;253:6;248:3;244:16;237:27;218:48;;14:258;;;:::o;277:442::-;426:2;415:9;408:21;389:4;458:6;452:13;501:6;496:2;485:9;481:18;474:34;517:66;576:6;571:2;560:9;556:18;551:2;543:6;539:15;517:66;:::i;:::-;635:2;623:15;640:66;619:88;604:104;;;;710:2;600:113;;277:442;-1:-1:-1;;277:442:334:o;724:180::-;783:6;836:2;824:9;815:7;811:23;807:32;804:52;;;852:1;849;842:12;804:52;-1:-1:-1;875:23:334;;724:180;-1:-1:-1;724:180:334:o;1101:184::-;1153:77;1150:1;1143:88;1250:4;1247:1;1240:15;1274:4;1271:1;1264:15;1290:980;1358:6;1411:2;1399:9;1390:7;1386:23;1382:32;1379:52;;;1427:1;1424;1417:12;1379:52;1467:9;1454:23;1496:18;1537:2;1529:6;1526:14;1523:34;;;1553:1;1550;1543:12;1523:34;1591:6;1580:9;1576:22;1566:32;;1636:7;1629:4;1625:2;1621:13;1617:27;1607:55;;1658:1;1655;1648:12;1607:55;1694:2;1681:16;1716:2;1712;1709:10;1706:36;;;1722:18;;:::i;:::-;1856:2;1850:9;1918:4;1910:13;;1761:66;1906:22;;;1930:2;1902:31;1898:40;1886:53;;;1954:18;;;1974:22;;;1951:46;1948:72;;;2000:18;;:::i;:::-;2040:10;2036:2;2029:22;2075:2;2067:6;2060:18;2115:7;2110:2;2105;2101;2097:11;2093:20;2090:33;2087:53;;;2136:1;2133;2126:12;2087:53;2192:2;2187;2183;2179:11;2174:2;2166:6;2162:15;2149:46;2237:1;2215:15;;;2232:2;2211:24;2204:35;;;;-1:-1:-1;2219:6:334;1290:980;-1:-1:-1;;;;;1290:980:334:o;2275:450::-;2432:3;2470:6;2464:13;2486:53;2532:6;2527:3;2520:4;2512:6;2508:17;2486:53;:::i;:::-;2608:2;2604:15;;;;2621:66;2600:88;2561:16;;;;2586:103;;;2716:2;2705:14;;2275:450;-1:-1:-1;;2275:450:334:o","linkReferences":{}},"methodIdentifiers":{"passMessageToL1(bytes)":"cafa81dc","sentMessages(bytes32)":"82e3702d","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"passMessageToL1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"sentMessages\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@custom:proxied\",\"custom:predeploy\":\"0x4200000000000000000000000000000000000000\",\"kind\":\"dev\",\"methods\":{\"passMessageToL1(bytes)\":{\"params\":{\"_message\":\"Message to pass to L1.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"LegacyMessagePasser\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"passMessageToL1(bytes)\":{\"notice\":\"Passes a message to L1.\"},\"sentMessages(bytes32)\":{\"notice\":\"Mapping of sent message hashes to boolean status.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The LegacyMessagePasser was the low-level mechanism used to send messages from L2 to L1 before the Bedrock upgrade. It is now deprecated in favor of the new MessagePasser.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/LegacyMessagePasser.sol\":\"LegacyMessagePasser\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/legacy/LegacyMessagePasser.sol\":{\"keccak256\":\"0xd452c7d68bb62080b5e6816199137533dfc19eb5fd483ce8a884b513d2eab803\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02fcd6b3db93a597cbd7534a9c0cc995f7e552abbbaed03ec19f702043002e99\",\"dweb:/ipfs/QmQFxgaw7vh5uFWrWUcWBBCUWaLaiFAYXNtdBwagtx7iA1\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"passMessageToL1"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"sentMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"passMessageToL1(bytes)":{"params":{"_message":"Message to pass to L1."}}},"version":1},"userdoc":{"kind":"user","methods":{"passMessageToL1(bytes)":{"notice":"Passes a message to L1."},"sentMessages(bytes32)":{"notice":"Mapping of sent message hashes to boolean status."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/LegacyMessagePasser.sol":"LegacyMessagePasser"},"evmVersion":"london","libraries":{}},"sources":{"src/legacy/LegacyMessagePasser.sol":{"keccak256":"0xd452c7d68bb62080b5e6816199137533dfc19eb5fd483ce8a884b513d2eab803","urls":["bzz-raw://02fcd6b3db93a597cbd7534a9c0cc995f7e552abbbaed03ec19f702043002e99","dweb:/ipfs/QmQFxgaw7vh5uFWrWUcWBBCUWaLaiFAYXNtdBwagtx7iA1"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":92185,"contract":"src/legacy/LegacyMessagePasser.sol:LegacyMessagePasser","label":"sentMessages","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_bool)"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"}}},"userdoc":{"version":1,"kind":"user","methods":{"passMessageToL1(bytes)":{"notice":"Passes a message to L1."},"sentMessages(bytes32)":{"notice":"Mapping of sent message hashes to boolean status."},"version()":{"notice":"Semantic version."}},"notice":"The LegacyMessagePasser was the low-level mechanism used to send messages from L2 to L1 before the Bedrock upgrade. It is now deprecated in favor of the new MessagePasser."},"devdoc":{"version":1,"kind":"dev","methods":{"passMessageToL1(bytes)":{"params":{"_message":"Message to pass to L1."}}},"title":"LegacyMessagePasser"},"ast":{"absolutePath":"src/legacy/LegacyMessagePasser.sol","id":92211,"exportedSymbols":{"ISemver":[99149],"LegacyMessagePasser":[92210]},"nodeType":"SourceUnit","src":"32:917:170","nodes":[{"id":92175,"nodeType":"PragmaDirective","src":"32:23:170","nodes":[],"literals":["solidity","0.8",".15"]},{"id":92177,"nodeType":"ImportDirective","src":"57:52:170","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":92211,"sourceUnit":99150,"symbolAliases":[{"foreign":{"id":92176,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99149,"src":"66:7:170","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92210,"nodeType":"ContractDefinition","src":"442:506:170","nodes":[{"id":92185,"nodeType":"VariableDeclaration","src":"554:44:170","nodes":[],"constant":false,"documentation":{"id":92181,"nodeType":"StructuredDocumentation","src":"488:61:170","text":"@notice Mapping of sent message hashes to boolean status."},"functionSelector":"82e3702d","mutability":"mutable","name":"sentMessages","nameLocation":"586:12:170","scope":92210,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":92184,"keyType":{"id":92182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"562:7:170","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"554:24:170","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":92183,"name":"bool","nodeType":"ElementaryTypeName","src":"573:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":92189,"nodeType":"VariableDeclaration","src":"668:40:170","nodes":[],"baseFunctions":[99148],"constant":true,"documentation":{"id":92186,"nodeType":"StructuredDocumentation","src":"605:58:170","text":"@notice Semantic version.\n @custom:semver 1.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"691:7:170","scope":92210,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":92187,"name":"string","nodeType":"ElementaryTypeName","src":"668:6:170","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e312e30","id":92188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"701:7:170","typeDescriptions":{"typeIdentifier":"t_stringliteral_6815ba53416ba06aff1932cc76b3832272bafab9bc8e066be382e32b06ba5546","typeString":"literal_string \"1.1.0\""},"value":"1.1.0"},"visibility":"public"},{"id":92209,"nodeType":"FunctionDefinition","src":"802:144:170","nodes":[],"body":{"id":92208,"nodeType":"Block","src":"859:87:170","nodes":[],"statements":[{"expression":{"id":92206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":92195,"name":"sentMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92185,"src":"869:12:170","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":92204,"indexExpression":{"arguments":[{"arguments":[{"id":92199,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92192,"src":"909:8:170","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":92200,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"919:3:170","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":92201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"919:10:170","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":92197,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"892:3:170","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":92198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"892:16:170","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":92202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"892:38:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":92196,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"882:9:170","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":92203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"882:49:170","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"869:63:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":92205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"935:4:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"869:70:170","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":92207,"nodeType":"ExpressionStatement","src":"869:70:170"}]},"documentation":{"id":92190,"nodeType":"StructuredDocumentation","src":"715:82:170","text":"@notice Passes a message to L1.\n @param _message Message to pass to L1."},"functionSelector":"cafa81dc","implemented":true,"kind":"function","modifiers":[],"name":"passMessageToL1","nameLocation":"811:15:170","parameters":{"id":92193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92192,"mutability":"mutable","name":"_message","nameLocation":"840:8:170","nodeType":"VariableDeclaration","scope":92209,"src":"827:21:170","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":92191,"name":"bytes","nodeType":"ElementaryTypeName","src":"827:5:170","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"826:23:170"},"returnParameters":{"id":92194,"nodeType":"ParameterList","parameters":[],"src":"859:0:170"},"scope":92210,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":92179,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":99149,"src":"474:7:170"},"id":92180,"nodeType":"InheritanceSpecifier","src":"474:7:170"}],"canonicalName":"LegacyMessagePasser","contractDependencies":[],"contractKind":"contract","documentation":{"id":92178,"nodeType":"StructuredDocumentation","src":"111:331:170","text":"@custom:legacy\n @custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000000\n @title LegacyMessagePasser\n @notice The LegacyMessagePasser was the low-level mechanism used to send messages from L2 to L1\n before the Bedrock upgrade. It is now deprecated in favor of the new MessagePasser."},"fullyImplemented":true,"linearizedBaseContracts":[92210,99149],"name":"LegacyMessagePasser","nameLocation":"451:19:170","scope":92211,"usedErrors":[]}],"license":"MIT"},"id":170}
{"abi":[{"type":"function","name":"passMessageToL1","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sentMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061035a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806382e3702d14610098578063cafa81dc146100cb575b600080fd5b6100826040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f919061019b565b60405180910390f35b6100bb6100a63660046101ec565b60006020819052908152604090205460ff1681565b604051901515815260200161008f565b6100de6100d9366004610234565b6100e0565b005b600160008083336040516020016100f8929190610303565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291815281516020928301208352908201929092520160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550565b60005b8381101561018657818101518382015260200161016e565b83811115610195576000848401525b50505050565b60208152600082518060208401526101ba81604085016020870161016b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156101fe57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561024657600080fd5b813567ffffffffffffffff8082111561025e57600080fd5b818401915084601f83011261027257600080fd5b81358181111561028457610284610205565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156102ca576102ca610205565b816040528281528760208487010111156102e357600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000835161031581846020880161016b565b60609390931b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016919092019081526014019291505056fea164736f6c634300080f000a","sourceMap":"442:506:181:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806382e3702d14610098578063cafa81dc146100cb575b600080fd5b6100826040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f919061019b565b60405180910390f35b6100bb6100a63660046101ec565b60006020819052908152604090205460ff1681565b604051901515815260200161008f565b6100de6100d9366004610234565b6100e0565b005b600160008083336040516020016100f8929190610303565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291815281516020928301208352908201929092520160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550565b60005b8381101561018657818101518382015260200161016e565b83811115610195576000848401525b50505050565b60208152600082518060208401526101ba81604085016020870161016b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156101fe57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561024657600080fd5b813567ffffffffffffffff8082111561025e57600080fd5b818401915084601f83011261027257600080fd5b81358181111561028457610284610205565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156102ca576102ca610205565b816040528281528760208487010111156102e357600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000835161031581846020880161016b565b60609390931b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016919092019081526014019291505056fea164736f6c634300080f000a","sourceMap":"442:506:181:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;554:44;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1074:14:350;;1067:22;1049:41;;1037:2;1022:18;554:44:181;909:187:350;802:144:181;;;;;;:::i;:::-;;:::i;:::-;;;935:4;869:12;:63;909:8;919:10;892:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;882:49;;892:38;882:49;;;;869:63;;;;;;;;;;-1:-1:-1;869:63:181;:70;;;;;;;;;;;;;-1:-1:-1;802:144:181:o;14:258:350:-;86:1;96:113;110:6;107:1;104:13;96:113;;;186:11;;;180:18;167:11;;;160:39;132:2;125:10;96:113;;;227:6;224:1;221:13;218:48;;;262:1;253:6;248:3;244:16;237:27;218:48;;14:258;;;:::o;277:442::-;426:2;415:9;408:21;389:4;458:6;452:13;501:6;496:2;485:9;481:18;474:34;517:66;576:6;571:2;560:9;556:18;551:2;543:6;539:15;517:66;:::i;:::-;635:2;623:15;640:66;619:88;604:104;;;;710:2;600:113;;277:442;-1:-1:-1;;277:442:350:o;724:180::-;783:6;836:2;824:9;815:7;811:23;807:32;804:52;;;852:1;849;842:12;804:52;-1:-1:-1;875:23:350;;724:180;-1:-1:-1;724:180:350:o;1101:184::-;1153:77;1150:1;1143:88;1250:4;1247:1;1240:15;1274:4;1271:1;1264:15;1290:980;1358:6;1411:2;1399:9;1390:7;1386:23;1382:32;1379:52;;;1427:1;1424;1417:12;1379:52;1467:9;1454:23;1496:18;1537:2;1529:6;1526:14;1523:34;;;1553:1;1550;1543:12;1523:34;1591:6;1580:9;1576:22;1566:32;;1636:7;1629:4;1625:2;1621:13;1617:27;1607:55;;1658:1;1655;1648:12;1607:55;1694:2;1681:16;1716:2;1712;1709:10;1706:36;;;1722:18;;:::i;:::-;1856:2;1850:9;1918:4;1910:13;;1761:66;1906:22;;;1930:2;1902:31;1898:40;1886:53;;;1954:18;;;1974:22;;;1951:46;1948:72;;;2000:18;;:::i;:::-;2040:10;2036:2;2029:22;2075:2;2067:6;2060:18;2115:7;2110:2;2105;2101;2097:11;2093:20;2090:33;2087:53;;;2136:1;2133;2126:12;2087:53;2192:2;2187;2183;2179:11;2174:2;2166:6;2162:15;2149:46;2237:1;2215:15;;;2232:2;2211:24;2204:35;;;;-1:-1:-1;2219:6:350;1290:980;-1:-1:-1;;;;;1290:980:350:o;2275:450::-;2432:3;2470:6;2464:13;2486:53;2532:6;2527:3;2520:4;2512:6;2508:17;2486:53;:::i;:::-;2608:2;2604:15;;;;2621:66;2600:88;2561:16;;;;2586:103;;;2716:2;2705:14;;2275:450;-1:-1:-1;;2275:450:350:o","linkReferences":{}},"methodIdentifiers":{"passMessageToL1(bytes)":"cafa81dc","sentMessages(bytes32)":"82e3702d","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"passMessageToL1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"sentMessages\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:legacy\":\"@custom:proxied\",\"custom:predeploy\":\"0x4200000000000000000000000000000000000000\",\"kind\":\"dev\",\"methods\":{\"passMessageToL1(bytes)\":{\"params\":{\"_message\":\"Message to pass to L1.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.1.0\"}},\"title\":\"LegacyMessagePasser\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"passMessageToL1(bytes)\":{\"notice\":\"Passes a message to L1.\"},\"sentMessages(bytes32)\":{\"notice\":\"Mapping of sent message hashes to boolean status.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The LegacyMessagePasser was the low-level mechanism used to send messages from L2 to L1 before the Bedrock upgrade. It is now deprecated in favor of the new MessagePasser.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/LegacyMessagePasser.sol\":\"LegacyMessagePasser\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/legacy/LegacyMessagePasser.sol\":{\"keccak256\":\"0xd452c7d68bb62080b5e6816199137533dfc19eb5fd483ce8a884b513d2eab803\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02fcd6b3db93a597cbd7534a9c0cc995f7e552abbbaed03ec19f702043002e99\",\"dweb:/ipfs/QmQFxgaw7vh5uFWrWUcWBBCUWaLaiFAYXNtdBwagtx7iA1\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"passMessageToL1"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"sentMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"passMessageToL1(bytes)":{"params":{"_message":"Message to pass to L1."}}},"version":1},"userdoc":{"kind":"user","methods":{"passMessageToL1(bytes)":{"notice":"Passes a message to L1."},"sentMessages(bytes32)":{"notice":"Mapping of sent message hashes to boolean status."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/LegacyMessagePasser.sol":"LegacyMessagePasser"},"evmVersion":"london","libraries":{}},"sources":{"src/legacy/LegacyMessagePasser.sol":{"keccak256":"0xd452c7d68bb62080b5e6816199137533dfc19eb5fd483ce8a884b513d2eab803","urls":["bzz-raw://02fcd6b3db93a597cbd7534a9c0cc995f7e552abbbaed03ec19f702043002e99","dweb:/ipfs/QmQFxgaw7vh5uFWrWUcWBBCUWaLaiFAYXNtdBwagtx7iA1"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":99037,"contract":"src/legacy/LegacyMessagePasser.sol:LegacyMessagePasser","label":"sentMessages","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_bool)"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"}}},"userdoc":{"version":1,"kind":"user","methods":{"passMessageToL1(bytes)":{"notice":"Passes a message to L1."},"sentMessages(bytes32)":{"notice":"Mapping of sent message hashes to boolean status."},"version()":{"notice":"Semantic version."}},"notice":"The LegacyMessagePasser was the low-level mechanism used to send messages from L2 to L1 before the Bedrock upgrade. It is now deprecated in favor of the new MessagePasser."},"devdoc":{"version":1,"kind":"dev","methods":{"passMessageToL1(bytes)":{"params":{"_message":"Message to pass to L1."}}},"title":"LegacyMessagePasser"},"id":181}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"236:1224:159:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;236:1224:159;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"236:1224:159:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibGameId\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Utility functions for packing and unpacking GameIds.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibGameId.sol\":\"LibGameId\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibGameId.sol":"LibGameId"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Utility functions for packing and unpacking GameIds."},"devdoc":{"version":1,"kind":"dev","title":"LibGameId"},"ast":{"absolutePath":"src/dispute/lib/LibGameId.sol","id":90832,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"IDisputeGame":[90515],"LibGameId":[90831],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:1429:159","nodes":[{"id":90791,"nodeType":"PragmaDirective","src":"32:24:159","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":90792,"nodeType":"ImportDirective","src":"58:40:159","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":90832,"sourceUnit":93135,"symbolAliases":[],"unitAlias":""},{"id":90793,"nodeType":"ImportDirective","src":"99:49:159","nodes":[],"absolutePath":"src/dispute/interfaces/IDisputeGame.sol","file":"src/dispute/interfaces/IDisputeGame.sol","nameLocation":"-1:-1:-1","scope":90832,"sourceUnit":90516,"symbolAliases":[],"unitAlias":""},{"id":90831,"nodeType":"ContractDefinition","src":"236:1224:159","nodes":[{"id":90812,"nodeType":"FunctionDefinition","src":"514:299:159","nodes":[],"body":{"id":90811,"nodeType":"Block","src":"692:121:159","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"711:96:159","statements":[{"nodeType":"YulAssignment","src":"725:72:159","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"746:3:159","type":"","value":"224"},{"name":"_gameType","nodeType":"YulIdentifier","src":"751:9:159"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"742:3:159"},"nodeType":"YulFunctionCall","src":"742:19:159"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"767:3:159","type":"","value":"160"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"772:10:159"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"763:3:159"},"nodeType":"YulFunctionCall","src":"763:20:159"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"739:2:159"},"nodeType":"YulFunctionCall","src":"739:45:159"},{"name":"_gameProxy","nodeType":"YulIdentifier","src":"786:10:159"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"736:2:159"},"nodeType":"YulFunctionCall","src":"736:61:159"},"variableNames":[{"name":"gameId_","nodeType":"YulIdentifier","src":"725:7:159"}]}]},"evmVersion":"london","externalReferences":[{"declaration":90804,"isOffset":false,"isSlot":false,"src":"786:10:159","valueSize":1},{"declaration":90798,"isOffset":false,"isSlot":false,"src":"751:9:159","valueSize":1},{"declaration":90801,"isOffset":false,"isSlot":false,"src":"772:10:159","valueSize":1},{"declaration":90808,"isOffset":false,"isSlot":false,"src":"725:7:159","valueSize":1}],"id":90810,"nodeType":"InlineAssembly","src":"702:105:159"}]},"documentation":{"id":90795,"nodeType":"StructuredDocumentation","src":"260:249:159","text":"@notice Packs values into a 32 byte GameId type.\n @param _gameType The game type.\n @param _timestamp The timestamp of the game's creation.\n @param _gameProxy The game proxy address.\n @return gameId_ The packed GameId."},"implemented":true,"kind":"function","modifiers":[],"name":"pack","nameLocation":"523:4:159","parameters":{"id":90805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90798,"mutability":"mutable","name":"_gameType","nameLocation":"546:9:159","nodeType":"VariableDeclaration","scope":90812,"src":"537:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":90797,"nodeType":"UserDefinedTypeName","pathNode":{"id":90796,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"537:8:159"},"referencedDeclaration":93054,"src":"537:8:159","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":90801,"mutability":"mutable","name":"_timestamp","nameLocation":"575:10:159","nodeType":"VariableDeclaration","scope":90812,"src":"565:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":90800,"nodeType":"UserDefinedTypeName","pathNode":{"id":90799,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"565:9:159"},"referencedDeclaration":93044,"src":"565:9:159","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":90804,"mutability":"mutable","name":"_gameProxy","nameLocation":"608:10:159","nodeType":"VariableDeclaration","scope":90812,"src":"595:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$90515","typeString":"contract IDisputeGame"},"typeName":{"id":90803,"nodeType":"UserDefinedTypeName","pathNode":{"id":90802,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":90515,"src":"595:12:159"},"referencedDeclaration":90515,"src":"595:12:159","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$90515","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"src":"527:97:159"},"returnParameters":{"id":90809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90808,"mutability":"mutable","name":"gameId_","nameLocation":"679:7:159","nodeType":"VariableDeclaration","scope":90812,"src":"672:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$93048","typeString":"GameId"},"typeName":{"id":90807,"nodeType":"UserDefinedTypeName","pathNode":{"id":90806,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":93048,"src":"672:6:159"},"referencedDeclaration":93048,"src":"672:6:159","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$93048","typeString":"GameId"}},"visibility":"internal"}],"src":"671:16:159"},"scope":90831,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":90830,"nodeType":"FunctionDefinition","src":"1077:381:159","nodes":[],"body":{"id":90829,"nodeType":"Block","src":"1227:231:159","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1246:206:159","statements":[{"nodeType":"YulAssignment","src":"1260:30:159","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1277:3:159","type":"","value":"224"},{"name":"_gameId","nodeType":"YulIdentifier","src":"1282:7:159"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1273:3:159"},"nodeType":"YulFunctionCall","src":"1273:17:159"},"variableNames":[{"name":"gameType_","nodeType":"YulIdentifier","src":"1260:9:159"}]},{"nodeType":"YulAssignment","src":"1303:56:159","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1325:3:159","type":"","value":"160"},{"name":"_gameId","nodeType":"YulIdentifier","src":"1330:7:159"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1321:3:159"},"nodeType":"YulFunctionCall","src":"1321:17:159"},{"kind":"number","nodeType":"YulLiteral","src":"1340:18:159","type":"","value":"0xFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1317:3:159"},"nodeType":"YulFunctionCall","src":"1317:42:159"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"1303:10:159"}]},{"nodeType":"YulAssignment","src":"1372:70:159","value":{"arguments":[{"name":"_gameId","nodeType":"YulIdentifier","src":"1390:7:159"},{"kind":"number","nodeType":"YulLiteral","src":"1399:42:159","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1386:3:159"},"nodeType":"YulFunctionCall","src":"1386:56:159"},"variableNames":[{"name":"gameProxy_","nodeType":"YulIdentifier","src":"1372:10:159"}]}]},"evmVersion":"london","externalReferences":[{"declaration":90816,"isOffset":false,"isSlot":false,"src":"1282:7:159","valueSize":1},{"declaration":90816,"isOffset":false,"isSlot":false,"src":"1330:7:159","valueSize":1},{"declaration":90816,"isOffset":false,"isSlot":false,"src":"1390:7:159","valueSize":1},{"declaration":90826,"isOffset":false,"isSlot":false,"src":"1372:10:159","valueSize":1},{"declaration":90820,"isOffset":false,"isSlot":false,"src":"1260:9:159","valueSize":1},{"declaration":90823,"isOffset":false,"isSlot":false,"src":"1303:10:159","valueSize":1}],"id":90828,"nodeType":"InlineAssembly","src":"1237:215:159"}]},"documentation":{"id":90813,"nodeType":"StructuredDocumentation","src":"819:253:159","text":"@notice Unpacks values from a 32 byte GameId type.\n @param _gameId The packed GameId.\n @return gameType_ The game type.\n @return timestamp_ The timestamp of the game's creation.\n @return gameProxy_ The game proxy address."},"implemented":true,"kind":"function","modifiers":[],"name":"unpack","nameLocation":"1086:6:159","parameters":{"id":90817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90816,"mutability":"mutable","name":"_gameId","nameLocation":"1100:7:159","nodeType":"VariableDeclaration","scope":90830,"src":"1093:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$93048","typeString":"GameId"},"typeName":{"id":90815,"nodeType":"UserDefinedTypeName","pathNode":{"id":90814,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":93048,"src":"1093:6:159"},"referencedDeclaration":93048,"src":"1093:6:159","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$93048","typeString":"GameId"}},"visibility":"internal"}],"src":"1092:16:159"},"returnParameters":{"id":90827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90820,"mutability":"mutable","name":"gameType_","nameLocation":"1165:9:159","nodeType":"VariableDeclaration","scope":90830,"src":"1156:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":90819,"nodeType":"UserDefinedTypeName","pathNode":{"id":90818,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"1156:8:159"},"referencedDeclaration":93054,"src":"1156:8:159","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":90823,"mutability":"mutable","name":"timestamp_","nameLocation":"1186:10:159","nodeType":"VariableDeclaration","scope":90830,"src":"1176:20:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":90822,"nodeType":"UserDefinedTypeName","pathNode":{"id":90821,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"1176:9:159"},"referencedDeclaration":93044,"src":"1176:9:159","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":90826,"mutability":"mutable","name":"gameProxy_","nameLocation":"1211:10:159","nodeType":"VariableDeclaration","scope":90830,"src":"1198:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$90515","typeString":"contract IDisputeGame"},"typeName":{"id":90825,"nodeType":"UserDefinedTypeName","pathNode":{"id":90824,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":90515,"src":"1198:12:159"},"referencedDeclaration":90515,"src":"1198:12:159","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$90515","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"src":"1155:67:159"},"scope":90831,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameId","contractDependencies":[],"contractKind":"library","documentation":{"id":90794,"nodeType":"StructuredDocumentation","src":"150:86:159","text":"@title LibGameId\n @notice Utility functions for packing and unpacking GameIds."},"fullyImplemented":true,"linearizedBaseContracts":[90831],"name":"LibGameId","nameLocation":"244:9:159","scope":90832,"usedErrors":[]}],"license":"MIT"},"id":159}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"236:1224:169:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;236:1224:169;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"236:1224:169:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibGameId\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Utility functions for packing and unpacking GameIds.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibGameId.sol\":\"LibGameId\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibGameId.sol":"LibGameId"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Utility functions for packing and unpacking GameIds."},"devdoc":{"version":1,"kind":"dev","title":"LibGameId"},"id":169}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"212:740:160:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;212:740:160;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"212:740:160:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Hashing\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains all of the hashing utilities used in the Cannon contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibHashing.sol\":\"LibHashing\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibHashing.sol":"LibHashing"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains all of the hashing utilities used in the Cannon contracts."},"devdoc":{"version":1,"kind":"dev","title":"Hashing"},"ast":{"absolutePath":"src/dispute/lib/LibHashing.sol","id":90854,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"LibHashing":[90853],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:921:160","nodes":[{"id":90833,"nodeType":"PragmaDirective","src":"32:24:160","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":90834,"nodeType":"ImportDirective","src":"58:40:160","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":90854,"sourceUnit":93135,"symbolAliases":[],"unitAlias":""},{"id":90853,"nodeType":"ContractDefinition","src":"212:740:160","nodes":[{"id":90852,"nodeType":"FunctionDefinition","src":"541:409:160","nodes":[],"body":{"id":90851,"nodeType":"Block","src":"725:225:160","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"744:200:160","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"765:4:160","type":"","value":"0x00"},{"name":"_claim","nodeType":"YulIdentifier","src":"771:6:160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"758:6:160"},"nodeType":"YulFunctionCall","src":"758:20:160"},"nodeType":"YulExpressionStatement","src":"758:20:160"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"798:4:160","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"811:3:160","type":"","value":"128"},{"name":"_position","nodeType":"YulIdentifier","src":"816:9:160"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"807:3:160"},"nodeType":"YulFunctionCall","src":"807:19:160"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"832:34:160","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"name":"_challengeIndex","nodeType":"YulIdentifier","src":"868:15:160"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"828:3:160"},"nodeType":"YulFunctionCall","src":"828:56:160"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"804:2:160"},"nodeType":"YulFunctionCall","src":"804:81:160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"791:6:160"},"nodeType":"YulFunctionCall","src":"791:95:160"},"nodeType":"YulExpressionStatement","src":"791:95:160"},{"nodeType":"YulAssignment","src":"899:35:160","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"923:4:160","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"929:4:160","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"913:9:160"},"nodeType":"YulFunctionCall","src":"913:21:160"},"variableNames":[{"name":"claimHash_","nodeType":"YulIdentifier","src":"899:10:160"}]}]},"evmVersion":"london","externalReferences":[{"declaration":90844,"isOffset":false,"isSlot":false,"src":"868:15:160","valueSize":1},{"declaration":90839,"isOffset":false,"isSlot":false,"src":"771:6:160","valueSize":1},{"declaration":90842,"isOffset":false,"isSlot":false,"src":"816:9:160","valueSize":1},{"declaration":90848,"isOffset":false,"isSlot":false,"src":"899:10:160","valueSize":1}],"id":90850,"nodeType":"InlineAssembly","src":"735:209:160"}]},"documentation":{"id":90836,"nodeType":"StructuredDocumentation","src":"237:299:160","text":"@notice Hashes a claim and a position together.\n @param _claim A Claim type.\n @param _position The position of `claim`.\n @param _challengeIndex The index of the claim being moved against.\n @return claimHash_ A hash of abi.encodePacked(claim, position|challengeIndex);"},"implemented":true,"kind":"function","modifiers":[],"name":"hashClaimPos","nameLocation":"550:12:160","parameters":{"id":90845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90839,"mutability":"mutable","name":"_claim","nameLocation":"578:6:160","nodeType":"VariableDeclaration","scope":90852,"src":"572:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":90838,"nodeType":"UserDefinedTypeName","pathNode":{"id":90837,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"572:5:160"},"referencedDeclaration":93038,"src":"572:5:160","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":90842,"mutability":"mutable","name":"_position","nameLocation":"603:9:160","nodeType":"VariableDeclaration","scope":90852,"src":"594:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$93052","typeString":"Position"},"typeName":{"id":90841,"nodeType":"UserDefinedTypeName","pathNode":{"id":90840,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":93052,"src":"594:8:160"},"referencedDeclaration":93052,"src":"594:8:160","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Position_$93052","typeString":"Position"}},"visibility":"internal"},{"constant":false,"id":90844,"mutability":"mutable","name":"_challengeIndex","nameLocation":"630:15:160","nodeType":"VariableDeclaration","scope":90852,"src":"622:23:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90843,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"562:89:160"},"returnParameters":{"id":90849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90848,"mutability":"mutable","name":"claimHash_","nameLocation":"709:10:160","nodeType":"VariableDeclaration","scope":90852,"src":"699:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ClaimHash_$93040","typeString":"ClaimHash"},"typeName":{"id":90847,"nodeType":"UserDefinedTypeName","pathNode":{"id":90846,"name":"ClaimHash","nodeType":"IdentifierPath","referencedDeclaration":93040,"src":"699:9:160"},"referencedDeclaration":93040,"src":"699:9:160","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ClaimHash_$93040","typeString":"ClaimHash"}},"visibility":"internal"}],"src":"698:22:160"},"scope":90853,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHashing","contractDependencies":[],"contractKind":"library","documentation":{"id":90835,"nodeType":"StructuredDocumentation","src":"100:112:160","text":"@title Hashing\n @notice This library contains all of the hashing utilities used in the Cannon contracts."},"fullyImplemented":true,"linearizedBaseContracts":[90853],"name":"LibHashing","nameLocation":"220:10:160","scope":90854,"usedErrors":[]}],"license":"MIT"},"id":160}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"212:740:170:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;212:740:170;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"212:740:170:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Hashing\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains all of the hashing utilities used in the Cannon contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibHashing.sol\":\"LibHashing\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibHashing.sol":"LibHashing"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains all of the hashing utilities used in the Cannon contracts."},"devdoc":{"version":1,"kind":"dev","title":"Hashing"},"id":170}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"155:3104:186:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;155:3104:186;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"155:3104:186:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Types\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains various types used throughout the Optimism contract system.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Types.sol\":\"Types\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Types.sol":"Types"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Contains various types used throughout the Optimism contract system."},"devdoc":{"version":1,"kind":"dev","title":"Types"},"ast":{"absolutePath":"src/libraries/Types.sol","id":94082,"exportedSymbols":{"Types":[94081]},"nodeType":"SourceUnit","src":"32:3228:186","nodes":[{"id":94031,"nodeType":"PragmaDirective","src":"32:23:186","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":94081,"nodeType":"ContractDefinition","src":"155:3104:186","nodes":[{"id":94039,"nodeType":"StructDefinition","src":"699:115:186","nodes":[],"canonicalName":"Types.OutputProposal","members":[{"constant":false,"id":94034,"mutability":"mutable","name":"outputRoot","nameLocation":"739:10:186","nodeType":"VariableDeclaration","scope":94039,"src":"731:18:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"731:7:186","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":94036,"mutability":"mutable","name":"timestamp","nameLocation":"767:9:186","nodeType":"VariableDeclaration","scope":94039,"src":"759:17:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":94035,"name":"uint128","nodeType":"ElementaryTypeName","src":"759:7:186","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":94038,"mutability":"mutable","name":"l2BlockNumber","nameLocation":"794:13:186","nodeType":"VariableDeclaration","scope":94039,"src":"786:21:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":94037,"name":"uint128","nodeType":"ElementaryTypeName","src":"786:7:186","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"OutputProposal","nameLocation":"706:14:186","scope":94081,"visibility":"public"},{"id":94048,"nodeType":"StructDefinition","src":"1348:157:186","nodes":[],"canonicalName":"Types.OutputRootProof","members":[{"constant":false,"id":94041,"mutability":"mutable","name":"version","nameLocation":"1389:7:186","nodeType":"VariableDeclaration","scope":94048,"src":"1381:15:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94040,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1381:7:186","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":94043,"mutability":"mutable","name":"stateRoot","nameLocation":"1414:9:186","nodeType":"VariableDeclaration","scope":94048,"src":"1406:17:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94042,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1406:7:186","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":94045,"mutability":"mutable","name":"messagePasserStorageRoot","nameLocation":"1441:24:186","nodeType":"VariableDeclaration","scope":94048,"src":"1433:32:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94044,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1433:7:186","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":94047,"mutability":"mutable","name":"latestBlockhash","nameLocation":"1483:15:186","nodeType":"VariableDeclaration","scope":94048,"src":"1475:23:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1475:7:186","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"OutputRootProof","nameLocation":"1355:15:186","scope":94081,"visibility":"public"},{"id":94067,"nodeType":"StructDefinition","src":"2368:249:186","nodes":[],"canonicalName":"Types.UserDepositTransaction","members":[{"constant":false,"id":94050,"mutability":"mutable","name":"from","nameLocation":"2416:4:186","nodeType":"VariableDeclaration","scope":94067,"src":"2408:12:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":94049,"name":"address","nodeType":"ElementaryTypeName","src":"2408:7:186","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":94052,"mutability":"mutable","name":"to","nameLocation":"2438:2:186","nodeType":"VariableDeclaration","scope":94067,"src":"2430:10:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":94051,"name":"address","nodeType":"ElementaryTypeName","src":"2430:7:186","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":94054,"mutability":"mutable","name":"isCreation","nameLocation":"2455:10:186","nodeType":"VariableDeclaration","scope":94067,"src":"2450:15:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":94053,"name":"bool","nodeType":"ElementaryTypeName","src":"2450:4:186","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":94056,"mutability":"mutable","name":"value","nameLocation":"2483:5:186","nodeType":"VariableDeclaration","scope":94067,"src":"2475:13:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94055,"name":"uint256","nodeType":"ElementaryTypeName","src":"2475:7:186","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":94058,"mutability":"mutable","name":"mint","nameLocation":"2506:4:186","nodeType":"VariableDeclaration","scope":94067,"src":"2498:12:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94057,"name":"uint256","nodeType":"ElementaryTypeName","src":"2498:7:186","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":94060,"mutability":"mutable","name":"gasLimit","nameLocation":"2527:8:186","nodeType":"VariableDeclaration","scope":94067,"src":"2520:15:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":94059,"name":"uint64","nodeType":"ElementaryTypeName","src":"2520:6:186","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":94062,"mutability":"mutable","name":"data","nameLocation":"2551:4:186","nodeType":"VariableDeclaration","scope":94067,"src":"2545:10:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":94061,"name":"bytes","nodeType":"ElementaryTypeName","src":"2545:5:186","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":94064,"mutability":"mutable","name":"l1BlockHash","nameLocation":"2573:11:186","nodeType":"VariableDeclaration","scope":94067,"src":"2565:19:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2565:7:186","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":94066,"mutability":"mutable","name":"logIndex","nameLocation":"2602:8:186","nodeType":"VariableDeclaration","scope":94067,"src":"2594:16:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94065,"name":"uint256","nodeType":"ElementaryTypeName","src":"2594:7:186","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"UserDepositTransaction","nameLocation":"2375:22:186","scope":94081,"visibility":"public"},{"id":94080,"nodeType":"StructDefinition","src":"3081:176:186","nodes":[],"canonicalName":"Types.WithdrawalTransaction","members":[{"constant":false,"id":94069,"mutability":"mutable","name":"nonce","nameLocation":"3128:5:186","nodeType":"VariableDeclaration","scope":94080,"src":"3120:13:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94068,"name":"uint256","nodeType":"ElementaryTypeName","src":"3120:7:186","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":94071,"mutability":"mutable","name":"sender","nameLocation":"3151:6:186","nodeType":"VariableDeclaration","scope":94080,"src":"3143:14:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":94070,"name":"address","nodeType":"ElementaryTypeName","src":"3143:7:186","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":94073,"mutability":"mutable","name":"target","nameLocation":"3175:6:186","nodeType":"VariableDeclaration","scope":94080,"src":"3167:14:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":94072,"name":"address","nodeType":"ElementaryTypeName","src":"3167:7:186","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":94075,"mutability":"mutable","name":"value","nameLocation":"3199:5:186","nodeType":"VariableDeclaration","scope":94080,"src":"3191:13:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94074,"name":"uint256","nodeType":"ElementaryTypeName","src":"3191:7:186","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":94077,"mutability":"mutable","name":"gasLimit","nameLocation":"3222:8:186","nodeType":"VariableDeclaration","scope":94080,"src":"3214:16:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94076,"name":"uint256","nodeType":"ElementaryTypeName","src":"3214:7:186","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":94079,"mutability":"mutable","name":"data","nameLocation":"3246:4:186","nodeType":"VariableDeclaration","scope":94080,"src":"3240:10:186","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":94078,"name":"bytes","nodeType":"ElementaryTypeName","src":"3240:5:186","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"WithdrawalTransaction","nameLocation":"3088:21:186","scope":94081,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Types","contractDependencies":[],"contractKind":"library","documentation":{"id":94032,"nodeType":"StructuredDocumentation","src":"57:98:186","text":"@title Types\n @notice Contains various types used throughout the Optimism contract system."},"fullyImplemented":true,"linearizedBaseContracts":[94081],"name":"Types","nameLocation":"163:5:186","scope":94082,"usedErrors":[]}],"license":"MIT"},"id":186}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"155:3104:197:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;155:3104:197;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"155:3104:197:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Types\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains various types used throughout the Optimism contract system.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Types.sol\":\"Types\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Types.sol":"Types"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Contains various types used throughout the Optimism contract system."},"devdoc":{"version":1,"kind":"dev","title":"Types"},"id":197}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"2134:375:162:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;2134:375:162;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"2134:375:162:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibClaim\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Claim` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibClaim\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibClaim"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Claim` type."},"devdoc":{"version":1,"kind":"dev","title":"LibClaim"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":91201,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"LibClaim":[91135],"LibClock":[91122],"LibDuration":[91148],"LibGameType":[91200],"LibHash":[91161],"LibTimestamp":[91174],"LibVMStatus":[91187],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:5031:162","nodes":[{"id":91069,"nodeType":"PragmaDirective","src":"32:24:162","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":91070,"nodeType":"ImportDirective","src":"58:40:162","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":91201,"sourceUnit":93135,"symbolAliases":[],"unitAlias":""},{"id":91122,"nodeType":"ContractDefinition","src":"206:1820:162","nodes":[{"id":91086,"nodeType":"FunctionDefinition","src":"525:188:162","nodes":[],"body":{"id":91085,"nodeType":"Block","src":"618:95:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"637:70:162","statements":[{"nodeType":"YulAssignment","src":"651:46:162","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"668:4:162","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"674:9:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"664:3:162"},"nodeType":"YulFunctionCall","src":"664:20:162"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"686:10:162"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"661:2:162"},"nodeType":"YulFunctionCall","src":"661:36:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"651:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91075,"isOffset":false,"isSlot":false,"src":"674:9:162","valueSize":1},{"declaration":91078,"isOffset":false,"isSlot":false,"src":"686:10:162","valueSize":1},{"declaration":91082,"isOffset":false,"isSlot":false,"src":"651:6:162","valueSize":1}],"id":91084,"nodeType":"InlineAssembly","src":"628:79:162"}]},"documentation":{"id":91072,"nodeType":"StructuredDocumentation","src":"229:291:162","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"534:4:162","parameters":{"id":91079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91075,"mutability":"mutable","name":"_duration","nameLocation":"548:9:162","nodeType":"VariableDeclaration","scope":91086,"src":"539:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91074,"nodeType":"UserDefinedTypeName","pathNode":{"id":91073,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"539:8:162"},"referencedDeclaration":93046,"src":"539:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":91078,"mutability":"mutable","name":"_timestamp","nameLocation":"569:10:162","nodeType":"VariableDeclaration","scope":91086,"src":"559:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91077,"nodeType":"UserDefinedTypeName","pathNode":{"id":91076,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"559:9:162"},"referencedDeclaration":93044,"src":"559:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"538:42:162"},"returnParameters":{"id":91083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91082,"mutability":"mutable","name":"clock_","nameLocation":"610:6:162","nodeType":"VariableDeclaration","scope":91086,"src":"604:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91081,"nodeType":"UserDefinedTypeName","pathNode":{"id":91080,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"604:5:162"},"referencedDeclaration":93050,"src":"604:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"603:14:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91098,"nodeType":"FunctionDefinition","src":"913:251:162","nodes":[],"body":{"id":91097,"nodeType":"Block","src":"988:176:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1104:54:162","statements":[{"nodeType":"YulAssignment","src":"1118:30:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1135:4:162","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"1141:6:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1131:3:162"},"nodeType":"YulFunctionCall","src":"1131:17:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1118:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91090,"isOffset":false,"isSlot":false,"src":"1141:6:162","valueSize":1},{"declaration":91094,"isOffset":false,"isSlot":false,"src":"1118:9:162","valueSize":1}],"id":91096,"nodeType":"InlineAssembly","src":"1095:63:162"}]},"documentation":{"id":91087,"nodeType":"StructuredDocumentation","src":"719:189:162","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"922:8:162","parameters":{"id":91091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91090,"mutability":"mutable","name":"_clock","nameLocation":"937:6:162","nodeType":"VariableDeclaration","scope":91098,"src":"931:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91089,"nodeType":"UserDefinedTypeName","pathNode":{"id":91088,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"931:5:162"},"referencedDeclaration":93050,"src":"931:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"930:14:162"},"returnParameters":{"id":91095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91094,"mutability":"mutable","name":"duration_","nameLocation":"977:9:162","nodeType":"VariableDeclaration","scope":91098,"src":"968:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91093,"nodeType":"UserDefinedTypeName","pathNode":{"id":91092,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"968:8:162"},"referencedDeclaration":93046,"src":"968:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"967:20:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91110,"nodeType":"FunctionDefinition","src":"1368:300:162","nodes":[],"body":{"id":91109,"nodeType":"Block","src":"1446:222:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1596:66:162","statements":[{"nodeType":"YulAssignment","src":"1610:42:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1628:4:162","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1638:4:162","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"1644:6:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1634:3:162"},"nodeType":"YulFunctionCall","src":"1634:17:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1624:3:162"},"nodeType":"YulFunctionCall","src":"1624:28:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"1610:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91102,"isOffset":false,"isSlot":false,"src":"1644:6:162","valueSize":1},{"declaration":91106,"isOffset":false,"isSlot":false,"src":"1610:10:162","valueSize":1}],"id":91108,"nodeType":"InlineAssembly","src":"1587:75:162"}]},"documentation":{"id":91099,"nodeType":"StructuredDocumentation","src":"1170:193:162","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"1377:9:162","parameters":{"id":91103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91102,"mutability":"mutable","name":"_clock","nameLocation":"1393:6:162","nodeType":"VariableDeclaration","scope":91110,"src":"1387:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91101,"nodeType":"UserDefinedTypeName","pathNode":{"id":91100,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1387:5:162"},"referencedDeclaration":93050,"src":"1387:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1386:14:162"},"returnParameters":{"id":91107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91106,"mutability":"mutable","name":"timestamp_","nameLocation":"1434:10:162","nodeType":"VariableDeclaration","scope":91110,"src":"1424:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91105,"nodeType":"UserDefinedTypeName","pathNode":{"id":91104,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"1424:9:162"},"referencedDeclaration":93044,"src":"1424:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1423:22:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91121,"nodeType":"FunctionDefinition","src":"1893:131:162","nodes":[],"body":{"id":91120,"nodeType":"Block","src":"1959:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1978:40:162","statements":[{"nodeType":"YulAssignment","src":"1992:16:162","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2002:6:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1992:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91114,"isOffset":false,"isSlot":false,"src":"2002:6:162","valueSize":1},{"declaration":91117,"isOffset":false,"isSlot":false,"src":"1992:6:162","valueSize":1}],"id":91119,"nodeType":"InlineAssembly","src":"1969:49:162"}]},"documentation":{"id":91111,"nodeType":"StructuredDocumentation","src":"1674:214:162","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"1902:3:162","parameters":{"id":91115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91114,"mutability":"mutable","name":"_clock","nameLocation":"1912:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1906:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91113,"nodeType":"UserDefinedTypeName","pathNode":{"id":91112,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1906:5:162"},"referencedDeclaration":93050,"src":"1906:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1905:14:162"},"returnParameters":{"id":91118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91117,"mutability":"mutable","name":"clock_","nameLocation":"1951:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1943:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":91116,"name":"uint128","nodeType":"ElementaryTypeName","src":"1943:7:162","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1942:16:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":91071,"nodeType":"StructuredDocumentation","src":"100:106:162","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[91122],"name":"LibClock","nameLocation":"214:8:162","scope":91201,"usedErrors":[]},{"id":91135,"nodeType":"ContractDefinition","src":"2134:375:162","nodes":[{"id":91134,"nodeType":"FunctionDefinition","src":"2376:131:162","nodes":[],"body":{"id":91133,"nodeType":"Block","src":"2442:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2461:40:162","statements":[{"nodeType":"YulAssignment","src":"2475:16:162","value":{"name":"_claim","nodeType":"YulIdentifier","src":"2485:6:162"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"2475:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91127,"isOffset":false,"isSlot":false,"src":"2485:6:162","valueSize":1},{"declaration":91130,"isOffset":false,"isSlot":false,"src":"2475:6:162","valueSize":1}],"id":91132,"nodeType":"InlineAssembly","src":"2452:49:162"}]},"documentation":{"id":91124,"nodeType":"StructuredDocumentation","src":"2157:214:162","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2385:3:162","parameters":{"id":91128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91127,"mutability":"mutable","name":"_claim","nameLocation":"2395:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2389:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":91126,"nodeType":"UserDefinedTypeName","pathNode":{"id":91125,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"2389:5:162"},"referencedDeclaration":93038,"src":"2389:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"}],"src":"2388:14:162"},"returnParameters":{"id":91131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91130,"mutability":"mutable","name":"claim_","nameLocation":"2434:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2426:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2426:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2425:16:162"},"scope":91135,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":91123,"nodeType":"StructuredDocumentation","src":"2028:106:162","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[91135],"name":"LibClaim","nameLocation":"2142:8:162","scope":91201,"usedErrors":[]},{"id":91148,"nodeType":"ContractDefinition","src":"2623:405:162","nodes":[{"id":91147,"nodeType":"FunctionDefinition","src":"2881:145:162","nodes":[],"body":{"id":91146,"nodeType":"Block","src":"2955:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2974:46:162","statements":[{"nodeType":"YulAssignment","src":"2988:22:162","value":{"name":"_duration","nodeType":"YulIdentifier","src":"3001:9:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"2988:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91140,"isOffset":false,"isSlot":false,"src":"3001:9:162","valueSize":1},{"declaration":91143,"isOffset":false,"isSlot":false,"src":"2988:9:162","valueSize":1}],"id":91145,"nodeType":"InlineAssembly","src":"2965:55:162"}]},"documentation":{"id":91137,"nodeType":"StructuredDocumentation","src":"2649:227:162","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2890:3:162","parameters":{"id":91141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91140,"mutability":"mutable","name":"_duration","nameLocation":"2903:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2894:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91139,"nodeType":"UserDefinedTypeName","pathNode":{"id":91138,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"2894:8:162"},"referencedDeclaration":93046,"src":"2894:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"2893:20:162"},"returnParameters":{"id":91144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91143,"mutability":"mutable","name":"duration_","nameLocation":"2944:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2937:16:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91142,"name":"uint64","nodeType":"ElementaryTypeName","src":"2937:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2936:18:162"},"scope":91148,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":91136,"nodeType":"StructuredDocumentation","src":"2511:112:162","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[91148],"name":"LibDuration","nameLocation":"2631:11:162","scope":91201,"usedErrors":[]},{"id":91161,"nodeType":"ContractDefinition","src":"3134:364:162","nodes":[{"id":91160,"nodeType":"FunctionDefinition","src":"3370:126:162","nodes":[],"body":{"id":91159,"nodeType":"Block","src":"3433:63:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3452:38:162","statements":[{"nodeType":"YulAssignment","src":"3466:14:162","value":{"name":"_hash","nodeType":"YulIdentifier","src":"3475:5:162"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"3466:5:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91153,"isOffset":false,"isSlot":false,"src":"3475:5:162","valueSize":1},{"declaration":91156,"isOffset":false,"isSlot":false,"src":"3466:5:162","valueSize":1}],"id":91158,"nodeType":"InlineAssembly","src":"3443:47:162"}]},"documentation":{"id":91150,"nodeType":"StructuredDocumentation","src":"3156:209:162","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3379:3:162","parameters":{"id":91154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91153,"mutability":"mutable","name":"_hash","nameLocation":"3388:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3383:10:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"},"typeName":{"id":91152,"nodeType":"UserDefinedTypeName","pathNode":{"id":91151,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":93036,"src":"3383:4:162"},"referencedDeclaration":93036,"src":"3383:4:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"}},"visibility":"internal"}],"src":"3382:12:162"},"returnParameters":{"id":91157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91156,"mutability":"mutable","name":"hash_","nameLocation":"3426:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3418:13:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3418:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3417:15:162"},"scope":91161,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":91149,"nodeType":"StructuredDocumentation","src":"3030:104:162","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[91161],"name":"LibHash","nameLocation":"3142:7:162","scope":91201,"usedErrors":[]},{"id":91174,"nodeType":"ContractDefinition","src":"3614:416:162","nodes":[{"id":91173,"nodeType":"FunctionDefinition","src":"3878:150:162","nodes":[],"body":{"id":91172,"nodeType":"Block","src":"3955:73:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3974:48:162","statements":[{"nodeType":"YulAssignment","src":"3988:24:162","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"4002:10:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"3988:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91166,"isOffset":false,"isSlot":false,"src":"4002:10:162","valueSize":1},{"declaration":91169,"isOffset":false,"isSlot":false,"src":"3988:10:162","valueSize":1}],"id":91171,"nodeType":"InlineAssembly","src":"3965:57:162"}]},"documentation":{"id":91163,"nodeType":"StructuredDocumentation","src":"3641:232:162","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3887:3:162","parameters":{"id":91167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91166,"mutability":"mutable","name":"_timestamp","nameLocation":"3901:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3891:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91165,"nodeType":"UserDefinedTypeName","pathNode":{"id":91164,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"3891:9:162"},"referencedDeclaration":93044,"src":"3891:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"3890:22:162"},"returnParameters":{"id":91170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91169,"mutability":"mutable","name":"timestamp_","nameLocation":"3943:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3936:17:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91168,"name":"uint64","nodeType":"ElementaryTypeName","src":"3936:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3935:19:162"},"scope":91174,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":91162,"nodeType":"StructuredDocumentation","src":"3500:114:162","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[91174],"name":"LibTimestamp","nameLocation":"3622:12:162","scope":91201,"usedErrors":[]},{"id":91187,"nodeType":"ContractDefinition","src":"4144:402:162","nodes":[{"id":91186,"nodeType":"FunctionDefinition","src":"4400:144:162","nodes":[],"body":{"id":91185,"nodeType":"Block","src":"4473:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4492:46:162","statements":[{"nodeType":"YulAssignment","src":"4506:22:162","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"4519:9:162"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"4506:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91179,"isOffset":false,"isSlot":false,"src":"4519:9:162","valueSize":1},{"declaration":91182,"isOffset":false,"isSlot":false,"src":"4506:9:162","valueSize":1}],"id":91184,"nodeType":"InlineAssembly","src":"4483:55:162"}]},"documentation":{"id":91176,"nodeType":"StructuredDocumentation","src":"4170:225:162","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4409:3:162","parameters":{"id":91180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91179,"mutability":"mutable","name":"_vmstatus","nameLocation":"4422:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4413:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":91178,"nodeType":"UserDefinedTypeName","pathNode":{"id":91177,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4413:8:162"},"referencedDeclaration":93056,"src":"4413:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"}],"src":"4412:20:162"},"returnParameters":{"id":91183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91182,"mutability":"mutable","name":"vmstatus_","nameLocation":"4462:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4456:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91181,"name":"uint8","nodeType":"ElementaryTypeName","src":"4456:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4455:17:162"},"scope":91187,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":91175,"nodeType":"StructuredDocumentation","src":"4032:112:162","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[91187],"name":"LibVMStatus","nameLocation":"4152:11:162","scope":91201,"usedErrors":[]},{"id":91200,"nodeType":"ContractDefinition","src":"4660:402:162","nodes":[{"id":91199,"nodeType":"FunctionDefinition","src":"4916:144:162","nodes":[],"body":{"id":91198,"nodeType":"Block","src":"4989:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5008:46:162","statements":[{"nodeType":"YulAssignment","src":"5022:22:162","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"5035:9:162"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"5022:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91192,"isOffset":false,"isSlot":false,"src":"5035:9:162","valueSize":1},{"declaration":91195,"isOffset":false,"isSlot":false,"src":"5022:9:162","valueSize":1}],"id":91197,"nodeType":"InlineAssembly","src":"4999:55:162"}]},"documentation":{"id":91189,"nodeType":"StructuredDocumentation","src":"4686:225:162","text":"@notice Get the value of a `GameType` type in the form of the underlying uint8.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4925:3:162","parameters":{"id":91193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91192,"mutability":"mutable","name":"_gametype","nameLocation":"4938:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4929:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":91191,"nodeType":"UserDefinedTypeName","pathNode":{"id":91190,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"4929:8:162"},"referencedDeclaration":93054,"src":"4929:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"}],"src":"4928:20:162"},"returnParameters":{"id":91196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91195,"mutability":"mutable","name":"gametype_","nameLocation":"4978:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4972:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91194,"name":"uint8","nodeType":"ElementaryTypeName","src":"4972:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4971:17:162"},"scope":91200,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":91188,"nodeType":"StructuredDocumentation","src":"4548:112:162","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[91200],"name":"LibGameType","nameLocation":"4668:11:162","scope":91201,"usedErrors":[]}],"license":"MIT"},"id":162}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"2134:375:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;2134:375:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"2134:375:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibClaim\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Claim` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibClaim\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibClaim"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Claim` type."},"devdoc":{"version":1,"kind":"dev","title":"LibClaim"},"id":172}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"206:1820:162:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;206:1820:162;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"206:1820:162:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibClock\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Clock` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibClock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibClock"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Clock` type."},"devdoc":{"version":1,"kind":"dev","title":"LibClock"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":91201,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"LibClaim":[91135],"LibClock":[91122],"LibDuration":[91148],"LibGameType":[91200],"LibHash":[91161],"LibTimestamp":[91174],"LibVMStatus":[91187],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:5031:162","nodes":[{"id":91069,"nodeType":"PragmaDirective","src":"32:24:162","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":91070,"nodeType":"ImportDirective","src":"58:40:162","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":91201,"sourceUnit":93135,"symbolAliases":[],"unitAlias":""},{"id":91122,"nodeType":"ContractDefinition","src":"206:1820:162","nodes":[{"id":91086,"nodeType":"FunctionDefinition","src":"525:188:162","nodes":[],"body":{"id":91085,"nodeType":"Block","src":"618:95:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"637:70:162","statements":[{"nodeType":"YulAssignment","src":"651:46:162","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"668:4:162","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"674:9:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"664:3:162"},"nodeType":"YulFunctionCall","src":"664:20:162"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"686:10:162"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"661:2:162"},"nodeType":"YulFunctionCall","src":"661:36:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"651:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91075,"isOffset":false,"isSlot":false,"src":"674:9:162","valueSize":1},{"declaration":91078,"isOffset":false,"isSlot":false,"src":"686:10:162","valueSize":1},{"declaration":91082,"isOffset":false,"isSlot":false,"src":"651:6:162","valueSize":1}],"id":91084,"nodeType":"InlineAssembly","src":"628:79:162"}]},"documentation":{"id":91072,"nodeType":"StructuredDocumentation","src":"229:291:162","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"534:4:162","parameters":{"id":91079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91075,"mutability":"mutable","name":"_duration","nameLocation":"548:9:162","nodeType":"VariableDeclaration","scope":91086,"src":"539:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91074,"nodeType":"UserDefinedTypeName","pathNode":{"id":91073,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"539:8:162"},"referencedDeclaration":93046,"src":"539:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":91078,"mutability":"mutable","name":"_timestamp","nameLocation":"569:10:162","nodeType":"VariableDeclaration","scope":91086,"src":"559:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91077,"nodeType":"UserDefinedTypeName","pathNode":{"id":91076,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"559:9:162"},"referencedDeclaration":93044,"src":"559:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"538:42:162"},"returnParameters":{"id":91083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91082,"mutability":"mutable","name":"clock_","nameLocation":"610:6:162","nodeType":"VariableDeclaration","scope":91086,"src":"604:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91081,"nodeType":"UserDefinedTypeName","pathNode":{"id":91080,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"604:5:162"},"referencedDeclaration":93050,"src":"604:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"603:14:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91098,"nodeType":"FunctionDefinition","src":"913:251:162","nodes":[],"body":{"id":91097,"nodeType":"Block","src":"988:176:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1104:54:162","statements":[{"nodeType":"YulAssignment","src":"1118:30:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1135:4:162","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"1141:6:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1131:3:162"},"nodeType":"YulFunctionCall","src":"1131:17:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1118:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91090,"isOffset":false,"isSlot":false,"src":"1141:6:162","valueSize":1},{"declaration":91094,"isOffset":false,"isSlot":false,"src":"1118:9:162","valueSize":1}],"id":91096,"nodeType":"InlineAssembly","src":"1095:63:162"}]},"documentation":{"id":91087,"nodeType":"StructuredDocumentation","src":"719:189:162","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"922:8:162","parameters":{"id":91091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91090,"mutability":"mutable","name":"_clock","nameLocation":"937:6:162","nodeType":"VariableDeclaration","scope":91098,"src":"931:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91089,"nodeType":"UserDefinedTypeName","pathNode":{"id":91088,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"931:5:162"},"referencedDeclaration":93050,"src":"931:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"930:14:162"},"returnParameters":{"id":91095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91094,"mutability":"mutable","name":"duration_","nameLocation":"977:9:162","nodeType":"VariableDeclaration","scope":91098,"src":"968:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91093,"nodeType":"UserDefinedTypeName","pathNode":{"id":91092,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"968:8:162"},"referencedDeclaration":93046,"src":"968:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"967:20:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91110,"nodeType":"FunctionDefinition","src":"1368:300:162","nodes":[],"body":{"id":91109,"nodeType":"Block","src":"1446:222:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1596:66:162","statements":[{"nodeType":"YulAssignment","src":"1610:42:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1628:4:162","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1638:4:162","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"1644:6:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1634:3:162"},"nodeType":"YulFunctionCall","src":"1634:17:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1624:3:162"},"nodeType":"YulFunctionCall","src":"1624:28:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"1610:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91102,"isOffset":false,"isSlot":false,"src":"1644:6:162","valueSize":1},{"declaration":91106,"isOffset":false,"isSlot":false,"src":"1610:10:162","valueSize":1}],"id":91108,"nodeType":"InlineAssembly","src":"1587:75:162"}]},"documentation":{"id":91099,"nodeType":"StructuredDocumentation","src":"1170:193:162","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"1377:9:162","parameters":{"id":91103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91102,"mutability":"mutable","name":"_clock","nameLocation":"1393:6:162","nodeType":"VariableDeclaration","scope":91110,"src":"1387:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91101,"nodeType":"UserDefinedTypeName","pathNode":{"id":91100,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1387:5:162"},"referencedDeclaration":93050,"src":"1387:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1386:14:162"},"returnParameters":{"id":91107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91106,"mutability":"mutable","name":"timestamp_","nameLocation":"1434:10:162","nodeType":"VariableDeclaration","scope":91110,"src":"1424:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91105,"nodeType":"UserDefinedTypeName","pathNode":{"id":91104,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"1424:9:162"},"referencedDeclaration":93044,"src":"1424:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1423:22:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91121,"nodeType":"FunctionDefinition","src":"1893:131:162","nodes":[],"body":{"id":91120,"nodeType":"Block","src":"1959:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1978:40:162","statements":[{"nodeType":"YulAssignment","src":"1992:16:162","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2002:6:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1992:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91114,"isOffset":false,"isSlot":false,"src":"2002:6:162","valueSize":1},{"declaration":91117,"isOffset":false,"isSlot":false,"src":"1992:6:162","valueSize":1}],"id":91119,"nodeType":"InlineAssembly","src":"1969:49:162"}]},"documentation":{"id":91111,"nodeType":"StructuredDocumentation","src":"1674:214:162","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"1902:3:162","parameters":{"id":91115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91114,"mutability":"mutable","name":"_clock","nameLocation":"1912:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1906:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91113,"nodeType":"UserDefinedTypeName","pathNode":{"id":91112,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1906:5:162"},"referencedDeclaration":93050,"src":"1906:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1905:14:162"},"returnParameters":{"id":91118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91117,"mutability":"mutable","name":"clock_","nameLocation":"1951:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1943:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":91116,"name":"uint128","nodeType":"ElementaryTypeName","src":"1943:7:162","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1942:16:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":91071,"nodeType":"StructuredDocumentation","src":"100:106:162","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[91122],"name":"LibClock","nameLocation":"214:8:162","scope":91201,"usedErrors":[]},{"id":91135,"nodeType":"ContractDefinition","src":"2134:375:162","nodes":[{"id":91134,"nodeType":"FunctionDefinition","src":"2376:131:162","nodes":[],"body":{"id":91133,"nodeType":"Block","src":"2442:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2461:40:162","statements":[{"nodeType":"YulAssignment","src":"2475:16:162","value":{"name":"_claim","nodeType":"YulIdentifier","src":"2485:6:162"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"2475:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91127,"isOffset":false,"isSlot":false,"src":"2485:6:162","valueSize":1},{"declaration":91130,"isOffset":false,"isSlot":false,"src":"2475:6:162","valueSize":1}],"id":91132,"nodeType":"InlineAssembly","src":"2452:49:162"}]},"documentation":{"id":91124,"nodeType":"StructuredDocumentation","src":"2157:214:162","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2385:3:162","parameters":{"id":91128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91127,"mutability":"mutable","name":"_claim","nameLocation":"2395:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2389:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":91126,"nodeType":"UserDefinedTypeName","pathNode":{"id":91125,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"2389:5:162"},"referencedDeclaration":93038,"src":"2389:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"}],"src":"2388:14:162"},"returnParameters":{"id":91131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91130,"mutability":"mutable","name":"claim_","nameLocation":"2434:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2426:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2426:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2425:16:162"},"scope":91135,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":91123,"nodeType":"StructuredDocumentation","src":"2028:106:162","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[91135],"name":"LibClaim","nameLocation":"2142:8:162","scope":91201,"usedErrors":[]},{"id":91148,"nodeType":"ContractDefinition","src":"2623:405:162","nodes":[{"id":91147,"nodeType":"FunctionDefinition","src":"2881:145:162","nodes":[],"body":{"id":91146,"nodeType":"Block","src":"2955:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2974:46:162","statements":[{"nodeType":"YulAssignment","src":"2988:22:162","value":{"name":"_duration","nodeType":"YulIdentifier","src":"3001:9:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"2988:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91140,"isOffset":false,"isSlot":false,"src":"3001:9:162","valueSize":1},{"declaration":91143,"isOffset":false,"isSlot":false,"src":"2988:9:162","valueSize":1}],"id":91145,"nodeType":"InlineAssembly","src":"2965:55:162"}]},"documentation":{"id":91137,"nodeType":"StructuredDocumentation","src":"2649:227:162","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2890:3:162","parameters":{"id":91141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91140,"mutability":"mutable","name":"_duration","nameLocation":"2903:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2894:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91139,"nodeType":"UserDefinedTypeName","pathNode":{"id":91138,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"2894:8:162"},"referencedDeclaration":93046,"src":"2894:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"2893:20:162"},"returnParameters":{"id":91144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91143,"mutability":"mutable","name":"duration_","nameLocation":"2944:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2937:16:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91142,"name":"uint64","nodeType":"ElementaryTypeName","src":"2937:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2936:18:162"},"scope":91148,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":91136,"nodeType":"StructuredDocumentation","src":"2511:112:162","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[91148],"name":"LibDuration","nameLocation":"2631:11:162","scope":91201,"usedErrors":[]},{"id":91161,"nodeType":"ContractDefinition","src":"3134:364:162","nodes":[{"id":91160,"nodeType":"FunctionDefinition","src":"3370:126:162","nodes":[],"body":{"id":91159,"nodeType":"Block","src":"3433:63:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3452:38:162","statements":[{"nodeType":"YulAssignment","src":"3466:14:162","value":{"name":"_hash","nodeType":"YulIdentifier","src":"3475:5:162"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"3466:5:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91153,"isOffset":false,"isSlot":false,"src":"3475:5:162","valueSize":1},{"declaration":91156,"isOffset":false,"isSlot":false,"src":"3466:5:162","valueSize":1}],"id":91158,"nodeType":"InlineAssembly","src":"3443:47:162"}]},"documentation":{"id":91150,"nodeType":"StructuredDocumentation","src":"3156:209:162","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3379:3:162","parameters":{"id":91154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91153,"mutability":"mutable","name":"_hash","nameLocation":"3388:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3383:10:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"},"typeName":{"id":91152,"nodeType":"UserDefinedTypeName","pathNode":{"id":91151,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":93036,"src":"3383:4:162"},"referencedDeclaration":93036,"src":"3383:4:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"}},"visibility":"internal"}],"src":"3382:12:162"},"returnParameters":{"id":91157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91156,"mutability":"mutable","name":"hash_","nameLocation":"3426:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3418:13:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3418:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3417:15:162"},"scope":91161,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":91149,"nodeType":"StructuredDocumentation","src":"3030:104:162","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[91161],"name":"LibHash","nameLocation":"3142:7:162","scope":91201,"usedErrors":[]},{"id":91174,"nodeType":"ContractDefinition","src":"3614:416:162","nodes":[{"id":91173,"nodeType":"FunctionDefinition","src":"3878:150:162","nodes":[],"body":{"id":91172,"nodeType":"Block","src":"3955:73:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3974:48:162","statements":[{"nodeType":"YulAssignment","src":"3988:24:162","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"4002:10:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"3988:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91166,"isOffset":false,"isSlot":false,"src":"4002:10:162","valueSize":1},{"declaration":91169,"isOffset":false,"isSlot":false,"src":"3988:10:162","valueSize":1}],"id":91171,"nodeType":"InlineAssembly","src":"3965:57:162"}]},"documentation":{"id":91163,"nodeType":"StructuredDocumentation","src":"3641:232:162","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3887:3:162","parameters":{"id":91167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91166,"mutability":"mutable","name":"_timestamp","nameLocation":"3901:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3891:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91165,"nodeType":"UserDefinedTypeName","pathNode":{"id":91164,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"3891:9:162"},"referencedDeclaration":93044,"src":"3891:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"3890:22:162"},"returnParameters":{"id":91170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91169,"mutability":"mutable","name":"timestamp_","nameLocation":"3943:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3936:17:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91168,"name":"uint64","nodeType":"ElementaryTypeName","src":"3936:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3935:19:162"},"scope":91174,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":91162,"nodeType":"StructuredDocumentation","src":"3500:114:162","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[91174],"name":"LibTimestamp","nameLocation":"3622:12:162","scope":91201,"usedErrors":[]},{"id":91187,"nodeType":"ContractDefinition","src":"4144:402:162","nodes":[{"id":91186,"nodeType":"FunctionDefinition","src":"4400:144:162","nodes":[],"body":{"id":91185,"nodeType":"Block","src":"4473:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4492:46:162","statements":[{"nodeType":"YulAssignment","src":"4506:22:162","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"4519:9:162"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"4506:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91179,"isOffset":false,"isSlot":false,"src":"4519:9:162","valueSize":1},{"declaration":91182,"isOffset":false,"isSlot":false,"src":"4506:9:162","valueSize":1}],"id":91184,"nodeType":"InlineAssembly","src":"4483:55:162"}]},"documentation":{"id":91176,"nodeType":"StructuredDocumentation","src":"4170:225:162","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4409:3:162","parameters":{"id":91180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91179,"mutability":"mutable","name":"_vmstatus","nameLocation":"4422:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4413:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":91178,"nodeType":"UserDefinedTypeName","pathNode":{"id":91177,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4413:8:162"},"referencedDeclaration":93056,"src":"4413:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"}],"src":"4412:20:162"},"returnParameters":{"id":91183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91182,"mutability":"mutable","name":"vmstatus_","nameLocation":"4462:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4456:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91181,"name":"uint8","nodeType":"ElementaryTypeName","src":"4456:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4455:17:162"},"scope":91187,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":91175,"nodeType":"StructuredDocumentation","src":"4032:112:162","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[91187],"name":"LibVMStatus","nameLocation":"4152:11:162","scope":91201,"usedErrors":[]},{"id":91200,"nodeType":"ContractDefinition","src":"4660:402:162","nodes":[{"id":91199,"nodeType":"FunctionDefinition","src":"4916:144:162","nodes":[],"body":{"id":91198,"nodeType":"Block","src":"4989:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5008:46:162","statements":[{"nodeType":"YulAssignment","src":"5022:22:162","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"5035:9:162"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"5022:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91192,"isOffset":false,"isSlot":false,"src":"5035:9:162","valueSize":1},{"declaration":91195,"isOffset":false,"isSlot":false,"src":"5022:9:162","valueSize":1}],"id":91197,"nodeType":"InlineAssembly","src":"4999:55:162"}]},"documentation":{"id":91189,"nodeType":"StructuredDocumentation","src":"4686:225:162","text":"@notice Get the value of a `GameType` type in the form of the underlying uint8.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4925:3:162","parameters":{"id":91193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91192,"mutability":"mutable","name":"_gametype","nameLocation":"4938:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4929:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":91191,"nodeType":"UserDefinedTypeName","pathNode":{"id":91190,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"4929:8:162"},"referencedDeclaration":93054,"src":"4929:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"}],"src":"4928:20:162"},"returnParameters":{"id":91196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91195,"mutability":"mutable","name":"gametype_","nameLocation":"4978:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4972:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91194,"name":"uint8","nodeType":"ElementaryTypeName","src":"4972:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4971:17:162"},"scope":91200,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":91188,"nodeType":"StructuredDocumentation","src":"4548:112:162","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[91200],"name":"LibGameType","nameLocation":"4668:11:162","scope":91201,"usedErrors":[]}],"license":"MIT"},"id":162}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"206:1820:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;206:1820:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"206:1820:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibClock\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Clock` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibClock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibClock"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Clock` type."},"devdoc":{"version":1,"kind":"dev","title":"LibClock"},"id":172}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"2623:405:162:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;2623:405:162;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"2623:405:162:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibDuration\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Duration` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibDuration\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibDuration"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Duration` type."},"devdoc":{"version":1,"kind":"dev","title":"LibDuration"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":91201,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"LibClaim":[91135],"LibClock":[91122],"LibDuration":[91148],"LibGameType":[91200],"LibHash":[91161],"LibTimestamp":[91174],"LibVMStatus":[91187],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:5031:162","nodes":[{"id":91069,"nodeType":"PragmaDirective","src":"32:24:162","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":91070,"nodeType":"ImportDirective","src":"58:40:162","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":91201,"sourceUnit":93135,"symbolAliases":[],"unitAlias":""},{"id":91122,"nodeType":"ContractDefinition","src":"206:1820:162","nodes":[{"id":91086,"nodeType":"FunctionDefinition","src":"525:188:162","nodes":[],"body":{"id":91085,"nodeType":"Block","src":"618:95:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"637:70:162","statements":[{"nodeType":"YulAssignment","src":"651:46:162","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"668:4:162","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"674:9:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"664:3:162"},"nodeType":"YulFunctionCall","src":"664:20:162"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"686:10:162"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"661:2:162"},"nodeType":"YulFunctionCall","src":"661:36:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"651:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91075,"isOffset":false,"isSlot":false,"src":"674:9:162","valueSize":1},{"declaration":91078,"isOffset":false,"isSlot":false,"src":"686:10:162","valueSize":1},{"declaration":91082,"isOffset":false,"isSlot":false,"src":"651:6:162","valueSize":1}],"id":91084,"nodeType":"InlineAssembly","src":"628:79:162"}]},"documentation":{"id":91072,"nodeType":"StructuredDocumentation","src":"229:291:162","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"534:4:162","parameters":{"id":91079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91075,"mutability":"mutable","name":"_duration","nameLocation":"548:9:162","nodeType":"VariableDeclaration","scope":91086,"src":"539:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91074,"nodeType":"UserDefinedTypeName","pathNode":{"id":91073,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"539:8:162"},"referencedDeclaration":93046,"src":"539:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":91078,"mutability":"mutable","name":"_timestamp","nameLocation":"569:10:162","nodeType":"VariableDeclaration","scope":91086,"src":"559:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91077,"nodeType":"UserDefinedTypeName","pathNode":{"id":91076,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"559:9:162"},"referencedDeclaration":93044,"src":"559:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"538:42:162"},"returnParameters":{"id":91083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91082,"mutability":"mutable","name":"clock_","nameLocation":"610:6:162","nodeType":"VariableDeclaration","scope":91086,"src":"604:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91081,"nodeType":"UserDefinedTypeName","pathNode":{"id":91080,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"604:5:162"},"referencedDeclaration":93050,"src":"604:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"603:14:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91098,"nodeType":"FunctionDefinition","src":"913:251:162","nodes":[],"body":{"id":91097,"nodeType":"Block","src":"988:176:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1104:54:162","statements":[{"nodeType":"YulAssignment","src":"1118:30:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1135:4:162","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"1141:6:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1131:3:162"},"nodeType":"YulFunctionCall","src":"1131:17:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1118:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91090,"isOffset":false,"isSlot":false,"src":"1141:6:162","valueSize":1},{"declaration":91094,"isOffset":false,"isSlot":false,"src":"1118:9:162","valueSize":1}],"id":91096,"nodeType":"InlineAssembly","src":"1095:63:162"}]},"documentation":{"id":91087,"nodeType":"StructuredDocumentation","src":"719:189:162","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"922:8:162","parameters":{"id":91091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91090,"mutability":"mutable","name":"_clock","nameLocation":"937:6:162","nodeType":"VariableDeclaration","scope":91098,"src":"931:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91089,"nodeType":"UserDefinedTypeName","pathNode":{"id":91088,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"931:5:162"},"referencedDeclaration":93050,"src":"931:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"930:14:162"},"returnParameters":{"id":91095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91094,"mutability":"mutable","name":"duration_","nameLocation":"977:9:162","nodeType":"VariableDeclaration","scope":91098,"src":"968:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91093,"nodeType":"UserDefinedTypeName","pathNode":{"id":91092,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"968:8:162"},"referencedDeclaration":93046,"src":"968:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"967:20:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91110,"nodeType":"FunctionDefinition","src":"1368:300:162","nodes":[],"body":{"id":91109,"nodeType":"Block","src":"1446:222:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1596:66:162","statements":[{"nodeType":"YulAssignment","src":"1610:42:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1628:4:162","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1638:4:162","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"1644:6:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1634:3:162"},"nodeType":"YulFunctionCall","src":"1634:17:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1624:3:162"},"nodeType":"YulFunctionCall","src":"1624:28:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"1610:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91102,"isOffset":false,"isSlot":false,"src":"1644:6:162","valueSize":1},{"declaration":91106,"isOffset":false,"isSlot":false,"src":"1610:10:162","valueSize":1}],"id":91108,"nodeType":"InlineAssembly","src":"1587:75:162"}]},"documentation":{"id":91099,"nodeType":"StructuredDocumentation","src":"1170:193:162","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"1377:9:162","parameters":{"id":91103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91102,"mutability":"mutable","name":"_clock","nameLocation":"1393:6:162","nodeType":"VariableDeclaration","scope":91110,"src":"1387:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91101,"nodeType":"UserDefinedTypeName","pathNode":{"id":91100,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1387:5:162"},"referencedDeclaration":93050,"src":"1387:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1386:14:162"},"returnParameters":{"id":91107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91106,"mutability":"mutable","name":"timestamp_","nameLocation":"1434:10:162","nodeType":"VariableDeclaration","scope":91110,"src":"1424:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91105,"nodeType":"UserDefinedTypeName","pathNode":{"id":91104,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"1424:9:162"},"referencedDeclaration":93044,"src":"1424:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1423:22:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91121,"nodeType":"FunctionDefinition","src":"1893:131:162","nodes":[],"body":{"id":91120,"nodeType":"Block","src":"1959:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1978:40:162","statements":[{"nodeType":"YulAssignment","src":"1992:16:162","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2002:6:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1992:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91114,"isOffset":false,"isSlot":false,"src":"2002:6:162","valueSize":1},{"declaration":91117,"isOffset":false,"isSlot":false,"src":"1992:6:162","valueSize":1}],"id":91119,"nodeType":"InlineAssembly","src":"1969:49:162"}]},"documentation":{"id":91111,"nodeType":"StructuredDocumentation","src":"1674:214:162","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"1902:3:162","parameters":{"id":91115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91114,"mutability":"mutable","name":"_clock","nameLocation":"1912:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1906:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91113,"nodeType":"UserDefinedTypeName","pathNode":{"id":91112,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1906:5:162"},"referencedDeclaration":93050,"src":"1906:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1905:14:162"},"returnParameters":{"id":91118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91117,"mutability":"mutable","name":"clock_","nameLocation":"1951:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1943:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":91116,"name":"uint128","nodeType":"ElementaryTypeName","src":"1943:7:162","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1942:16:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":91071,"nodeType":"StructuredDocumentation","src":"100:106:162","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[91122],"name":"LibClock","nameLocation":"214:8:162","scope":91201,"usedErrors":[]},{"id":91135,"nodeType":"ContractDefinition","src":"2134:375:162","nodes":[{"id":91134,"nodeType":"FunctionDefinition","src":"2376:131:162","nodes":[],"body":{"id":91133,"nodeType":"Block","src":"2442:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2461:40:162","statements":[{"nodeType":"YulAssignment","src":"2475:16:162","value":{"name":"_claim","nodeType":"YulIdentifier","src":"2485:6:162"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"2475:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91127,"isOffset":false,"isSlot":false,"src":"2485:6:162","valueSize":1},{"declaration":91130,"isOffset":false,"isSlot":false,"src":"2475:6:162","valueSize":1}],"id":91132,"nodeType":"InlineAssembly","src":"2452:49:162"}]},"documentation":{"id":91124,"nodeType":"StructuredDocumentation","src":"2157:214:162","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2385:3:162","parameters":{"id":91128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91127,"mutability":"mutable","name":"_claim","nameLocation":"2395:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2389:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":91126,"nodeType":"UserDefinedTypeName","pathNode":{"id":91125,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"2389:5:162"},"referencedDeclaration":93038,"src":"2389:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"}],"src":"2388:14:162"},"returnParameters":{"id":91131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91130,"mutability":"mutable","name":"claim_","nameLocation":"2434:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2426:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2426:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2425:16:162"},"scope":91135,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":91123,"nodeType":"StructuredDocumentation","src":"2028:106:162","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[91135],"name":"LibClaim","nameLocation":"2142:8:162","scope":91201,"usedErrors":[]},{"id":91148,"nodeType":"ContractDefinition","src":"2623:405:162","nodes":[{"id":91147,"nodeType":"FunctionDefinition","src":"2881:145:162","nodes":[],"body":{"id":91146,"nodeType":"Block","src":"2955:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2974:46:162","statements":[{"nodeType":"YulAssignment","src":"2988:22:162","value":{"name":"_duration","nodeType":"YulIdentifier","src":"3001:9:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"2988:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91140,"isOffset":false,"isSlot":false,"src":"3001:9:162","valueSize":1},{"declaration":91143,"isOffset":false,"isSlot":false,"src":"2988:9:162","valueSize":1}],"id":91145,"nodeType":"InlineAssembly","src":"2965:55:162"}]},"documentation":{"id":91137,"nodeType":"StructuredDocumentation","src":"2649:227:162","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2890:3:162","parameters":{"id":91141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91140,"mutability":"mutable","name":"_duration","nameLocation":"2903:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2894:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91139,"nodeType":"UserDefinedTypeName","pathNode":{"id":91138,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"2894:8:162"},"referencedDeclaration":93046,"src":"2894:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"2893:20:162"},"returnParameters":{"id":91144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91143,"mutability":"mutable","name":"duration_","nameLocation":"2944:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2937:16:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91142,"name":"uint64","nodeType":"ElementaryTypeName","src":"2937:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2936:18:162"},"scope":91148,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":91136,"nodeType":"StructuredDocumentation","src":"2511:112:162","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[91148],"name":"LibDuration","nameLocation":"2631:11:162","scope":91201,"usedErrors":[]},{"id":91161,"nodeType":"ContractDefinition","src":"3134:364:162","nodes":[{"id":91160,"nodeType":"FunctionDefinition","src":"3370:126:162","nodes":[],"body":{"id":91159,"nodeType":"Block","src":"3433:63:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3452:38:162","statements":[{"nodeType":"YulAssignment","src":"3466:14:162","value":{"name":"_hash","nodeType":"YulIdentifier","src":"3475:5:162"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"3466:5:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91153,"isOffset":false,"isSlot":false,"src":"3475:5:162","valueSize":1},{"declaration":91156,"isOffset":false,"isSlot":false,"src":"3466:5:162","valueSize":1}],"id":91158,"nodeType":"InlineAssembly","src":"3443:47:162"}]},"documentation":{"id":91150,"nodeType":"StructuredDocumentation","src":"3156:209:162","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3379:3:162","parameters":{"id":91154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91153,"mutability":"mutable","name":"_hash","nameLocation":"3388:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3383:10:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"},"typeName":{"id":91152,"nodeType":"UserDefinedTypeName","pathNode":{"id":91151,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":93036,"src":"3383:4:162"},"referencedDeclaration":93036,"src":"3383:4:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"}},"visibility":"internal"}],"src":"3382:12:162"},"returnParameters":{"id":91157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91156,"mutability":"mutable","name":"hash_","nameLocation":"3426:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3418:13:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3418:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3417:15:162"},"scope":91161,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":91149,"nodeType":"StructuredDocumentation","src":"3030:104:162","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[91161],"name":"LibHash","nameLocation":"3142:7:162","scope":91201,"usedErrors":[]},{"id":91174,"nodeType":"ContractDefinition","src":"3614:416:162","nodes":[{"id":91173,"nodeType":"FunctionDefinition","src":"3878:150:162","nodes":[],"body":{"id":91172,"nodeType":"Block","src":"3955:73:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3974:48:162","statements":[{"nodeType":"YulAssignment","src":"3988:24:162","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"4002:10:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"3988:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91166,"isOffset":false,"isSlot":false,"src":"4002:10:162","valueSize":1},{"declaration":91169,"isOffset":false,"isSlot":false,"src":"3988:10:162","valueSize":1}],"id":91171,"nodeType":"InlineAssembly","src":"3965:57:162"}]},"documentation":{"id":91163,"nodeType":"StructuredDocumentation","src":"3641:232:162","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3887:3:162","parameters":{"id":91167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91166,"mutability":"mutable","name":"_timestamp","nameLocation":"3901:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3891:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91165,"nodeType":"UserDefinedTypeName","pathNode":{"id":91164,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"3891:9:162"},"referencedDeclaration":93044,"src":"3891:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"3890:22:162"},"returnParameters":{"id":91170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91169,"mutability":"mutable","name":"timestamp_","nameLocation":"3943:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3936:17:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91168,"name":"uint64","nodeType":"ElementaryTypeName","src":"3936:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3935:19:162"},"scope":91174,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":91162,"nodeType":"StructuredDocumentation","src":"3500:114:162","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[91174],"name":"LibTimestamp","nameLocation":"3622:12:162","scope":91201,"usedErrors":[]},{"id":91187,"nodeType":"ContractDefinition","src":"4144:402:162","nodes":[{"id":91186,"nodeType":"FunctionDefinition","src":"4400:144:162","nodes":[],"body":{"id":91185,"nodeType":"Block","src":"4473:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4492:46:162","statements":[{"nodeType":"YulAssignment","src":"4506:22:162","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"4519:9:162"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"4506:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91179,"isOffset":false,"isSlot":false,"src":"4519:9:162","valueSize":1},{"declaration":91182,"isOffset":false,"isSlot":false,"src":"4506:9:162","valueSize":1}],"id":91184,"nodeType":"InlineAssembly","src":"4483:55:162"}]},"documentation":{"id":91176,"nodeType":"StructuredDocumentation","src":"4170:225:162","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4409:3:162","parameters":{"id":91180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91179,"mutability":"mutable","name":"_vmstatus","nameLocation":"4422:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4413:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":91178,"nodeType":"UserDefinedTypeName","pathNode":{"id":91177,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4413:8:162"},"referencedDeclaration":93056,"src":"4413:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"}],"src":"4412:20:162"},"returnParameters":{"id":91183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91182,"mutability":"mutable","name":"vmstatus_","nameLocation":"4462:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4456:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91181,"name":"uint8","nodeType":"ElementaryTypeName","src":"4456:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4455:17:162"},"scope":91187,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":91175,"nodeType":"StructuredDocumentation","src":"4032:112:162","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[91187],"name":"LibVMStatus","nameLocation":"4152:11:162","scope":91201,"usedErrors":[]},{"id":91200,"nodeType":"ContractDefinition","src":"4660:402:162","nodes":[{"id":91199,"nodeType":"FunctionDefinition","src":"4916:144:162","nodes":[],"body":{"id":91198,"nodeType":"Block","src":"4989:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5008:46:162","statements":[{"nodeType":"YulAssignment","src":"5022:22:162","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"5035:9:162"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"5022:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91192,"isOffset":false,"isSlot":false,"src":"5035:9:162","valueSize":1},{"declaration":91195,"isOffset":false,"isSlot":false,"src":"5022:9:162","valueSize":1}],"id":91197,"nodeType":"InlineAssembly","src":"4999:55:162"}]},"documentation":{"id":91189,"nodeType":"StructuredDocumentation","src":"4686:225:162","text":"@notice Get the value of a `GameType` type in the form of the underlying uint8.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4925:3:162","parameters":{"id":91193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91192,"mutability":"mutable","name":"_gametype","nameLocation":"4938:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4929:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":91191,"nodeType":"UserDefinedTypeName","pathNode":{"id":91190,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"4929:8:162"},"referencedDeclaration":93054,"src":"4929:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"}],"src":"4928:20:162"},"returnParameters":{"id":91196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91195,"mutability":"mutable","name":"gametype_","nameLocation":"4978:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4972:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91194,"name":"uint8","nodeType":"ElementaryTypeName","src":"4972:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4971:17:162"},"scope":91200,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":91188,"nodeType":"StructuredDocumentation","src":"4548:112:162","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[91200],"name":"LibGameType","nameLocation":"4668:11:162","scope":91201,"usedErrors":[]}],"license":"MIT"},"id":162}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"2623:405:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;2623:405:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"2623:405:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibDuration\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Duration` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibDuration\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibDuration"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Duration` type."},"devdoc":{"version":1,"kind":"dev","title":"LibDuration"},"id":172}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4660:402:162:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;4660:402:162;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4660:402:162:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibGameType\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `GameType` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibGameType\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibGameType"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `GameType` type."},"devdoc":{"version":1,"kind":"dev","title":"LibGameType"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":91201,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"LibClaim":[91135],"LibClock":[91122],"LibDuration":[91148],"LibGameType":[91200],"LibHash":[91161],"LibTimestamp":[91174],"LibVMStatus":[91187],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:5031:162","nodes":[{"id":91069,"nodeType":"PragmaDirective","src":"32:24:162","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":91070,"nodeType":"ImportDirective","src":"58:40:162","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":91201,"sourceUnit":93135,"symbolAliases":[],"unitAlias":""},{"id":91122,"nodeType":"ContractDefinition","src":"206:1820:162","nodes":[{"id":91086,"nodeType":"FunctionDefinition","src":"525:188:162","nodes":[],"body":{"id":91085,"nodeType":"Block","src":"618:95:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"637:70:162","statements":[{"nodeType":"YulAssignment","src":"651:46:162","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"668:4:162","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"674:9:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"664:3:162"},"nodeType":"YulFunctionCall","src":"664:20:162"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"686:10:162"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"661:2:162"},"nodeType":"YulFunctionCall","src":"661:36:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"651:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91075,"isOffset":false,"isSlot":false,"src":"674:9:162","valueSize":1},{"declaration":91078,"isOffset":false,"isSlot":false,"src":"686:10:162","valueSize":1},{"declaration":91082,"isOffset":false,"isSlot":false,"src":"651:6:162","valueSize":1}],"id":91084,"nodeType":"InlineAssembly","src":"628:79:162"}]},"documentation":{"id":91072,"nodeType":"StructuredDocumentation","src":"229:291:162","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"534:4:162","parameters":{"id":91079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91075,"mutability":"mutable","name":"_duration","nameLocation":"548:9:162","nodeType":"VariableDeclaration","scope":91086,"src":"539:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91074,"nodeType":"UserDefinedTypeName","pathNode":{"id":91073,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"539:8:162"},"referencedDeclaration":93046,"src":"539:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":91078,"mutability":"mutable","name":"_timestamp","nameLocation":"569:10:162","nodeType":"VariableDeclaration","scope":91086,"src":"559:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91077,"nodeType":"UserDefinedTypeName","pathNode":{"id":91076,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"559:9:162"},"referencedDeclaration":93044,"src":"559:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"538:42:162"},"returnParameters":{"id":91083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91082,"mutability":"mutable","name":"clock_","nameLocation":"610:6:162","nodeType":"VariableDeclaration","scope":91086,"src":"604:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91081,"nodeType":"UserDefinedTypeName","pathNode":{"id":91080,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"604:5:162"},"referencedDeclaration":93050,"src":"604:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"603:14:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91098,"nodeType":"FunctionDefinition","src":"913:251:162","nodes":[],"body":{"id":91097,"nodeType":"Block","src":"988:176:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1104:54:162","statements":[{"nodeType":"YulAssignment","src":"1118:30:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1135:4:162","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"1141:6:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1131:3:162"},"nodeType":"YulFunctionCall","src":"1131:17:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1118:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91090,"isOffset":false,"isSlot":false,"src":"1141:6:162","valueSize":1},{"declaration":91094,"isOffset":false,"isSlot":false,"src":"1118:9:162","valueSize":1}],"id":91096,"nodeType":"InlineAssembly","src":"1095:63:162"}]},"documentation":{"id":91087,"nodeType":"StructuredDocumentation","src":"719:189:162","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"922:8:162","parameters":{"id":91091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91090,"mutability":"mutable","name":"_clock","nameLocation":"937:6:162","nodeType":"VariableDeclaration","scope":91098,"src":"931:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91089,"nodeType":"UserDefinedTypeName","pathNode":{"id":91088,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"931:5:162"},"referencedDeclaration":93050,"src":"931:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"930:14:162"},"returnParameters":{"id":91095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91094,"mutability":"mutable","name":"duration_","nameLocation":"977:9:162","nodeType":"VariableDeclaration","scope":91098,"src":"968:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91093,"nodeType":"UserDefinedTypeName","pathNode":{"id":91092,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"968:8:162"},"referencedDeclaration":93046,"src":"968:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"967:20:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91110,"nodeType":"FunctionDefinition","src":"1368:300:162","nodes":[],"body":{"id":91109,"nodeType":"Block","src":"1446:222:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1596:66:162","statements":[{"nodeType":"YulAssignment","src":"1610:42:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1628:4:162","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1638:4:162","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"1644:6:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1634:3:162"},"nodeType":"YulFunctionCall","src":"1634:17:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1624:3:162"},"nodeType":"YulFunctionCall","src":"1624:28:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"1610:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91102,"isOffset":false,"isSlot":false,"src":"1644:6:162","valueSize":1},{"declaration":91106,"isOffset":false,"isSlot":false,"src":"1610:10:162","valueSize":1}],"id":91108,"nodeType":"InlineAssembly","src":"1587:75:162"}]},"documentation":{"id":91099,"nodeType":"StructuredDocumentation","src":"1170:193:162","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"1377:9:162","parameters":{"id":91103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91102,"mutability":"mutable","name":"_clock","nameLocation":"1393:6:162","nodeType":"VariableDeclaration","scope":91110,"src":"1387:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91101,"nodeType":"UserDefinedTypeName","pathNode":{"id":91100,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1387:5:162"},"referencedDeclaration":93050,"src":"1387:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1386:14:162"},"returnParameters":{"id":91107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91106,"mutability":"mutable","name":"timestamp_","nameLocation":"1434:10:162","nodeType":"VariableDeclaration","scope":91110,"src":"1424:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91105,"nodeType":"UserDefinedTypeName","pathNode":{"id":91104,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"1424:9:162"},"referencedDeclaration":93044,"src":"1424:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1423:22:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91121,"nodeType":"FunctionDefinition","src":"1893:131:162","nodes":[],"body":{"id":91120,"nodeType":"Block","src":"1959:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1978:40:162","statements":[{"nodeType":"YulAssignment","src":"1992:16:162","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2002:6:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1992:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91114,"isOffset":false,"isSlot":false,"src":"2002:6:162","valueSize":1},{"declaration":91117,"isOffset":false,"isSlot":false,"src":"1992:6:162","valueSize":1}],"id":91119,"nodeType":"InlineAssembly","src":"1969:49:162"}]},"documentation":{"id":91111,"nodeType":"StructuredDocumentation","src":"1674:214:162","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"1902:3:162","parameters":{"id":91115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91114,"mutability":"mutable","name":"_clock","nameLocation":"1912:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1906:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91113,"nodeType":"UserDefinedTypeName","pathNode":{"id":91112,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1906:5:162"},"referencedDeclaration":93050,"src":"1906:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1905:14:162"},"returnParameters":{"id":91118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91117,"mutability":"mutable","name":"clock_","nameLocation":"1951:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1943:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":91116,"name":"uint128","nodeType":"ElementaryTypeName","src":"1943:7:162","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1942:16:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":91071,"nodeType":"StructuredDocumentation","src":"100:106:162","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[91122],"name":"LibClock","nameLocation":"214:8:162","scope":91201,"usedErrors":[]},{"id":91135,"nodeType":"ContractDefinition","src":"2134:375:162","nodes":[{"id":91134,"nodeType":"FunctionDefinition","src":"2376:131:162","nodes":[],"body":{"id":91133,"nodeType":"Block","src":"2442:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2461:40:162","statements":[{"nodeType":"YulAssignment","src":"2475:16:162","value":{"name":"_claim","nodeType":"YulIdentifier","src":"2485:6:162"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"2475:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91127,"isOffset":false,"isSlot":false,"src":"2485:6:162","valueSize":1},{"declaration":91130,"isOffset":false,"isSlot":false,"src":"2475:6:162","valueSize":1}],"id":91132,"nodeType":"InlineAssembly","src":"2452:49:162"}]},"documentation":{"id":91124,"nodeType":"StructuredDocumentation","src":"2157:214:162","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2385:3:162","parameters":{"id":91128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91127,"mutability":"mutable","name":"_claim","nameLocation":"2395:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2389:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":91126,"nodeType":"UserDefinedTypeName","pathNode":{"id":91125,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"2389:5:162"},"referencedDeclaration":93038,"src":"2389:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"}],"src":"2388:14:162"},"returnParameters":{"id":91131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91130,"mutability":"mutable","name":"claim_","nameLocation":"2434:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2426:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2426:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2425:16:162"},"scope":91135,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":91123,"nodeType":"StructuredDocumentation","src":"2028:106:162","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[91135],"name":"LibClaim","nameLocation":"2142:8:162","scope":91201,"usedErrors":[]},{"id":91148,"nodeType":"ContractDefinition","src":"2623:405:162","nodes":[{"id":91147,"nodeType":"FunctionDefinition","src":"2881:145:162","nodes":[],"body":{"id":91146,"nodeType":"Block","src":"2955:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2974:46:162","statements":[{"nodeType":"YulAssignment","src":"2988:22:162","value":{"name":"_duration","nodeType":"YulIdentifier","src":"3001:9:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"2988:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91140,"isOffset":false,"isSlot":false,"src":"3001:9:162","valueSize":1},{"declaration":91143,"isOffset":false,"isSlot":false,"src":"2988:9:162","valueSize":1}],"id":91145,"nodeType":"InlineAssembly","src":"2965:55:162"}]},"documentation":{"id":91137,"nodeType":"StructuredDocumentation","src":"2649:227:162","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2890:3:162","parameters":{"id":91141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91140,"mutability":"mutable","name":"_duration","nameLocation":"2903:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2894:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91139,"nodeType":"UserDefinedTypeName","pathNode":{"id":91138,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"2894:8:162"},"referencedDeclaration":93046,"src":"2894:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"2893:20:162"},"returnParameters":{"id":91144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91143,"mutability":"mutable","name":"duration_","nameLocation":"2944:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2937:16:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91142,"name":"uint64","nodeType":"ElementaryTypeName","src":"2937:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2936:18:162"},"scope":91148,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":91136,"nodeType":"StructuredDocumentation","src":"2511:112:162","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[91148],"name":"LibDuration","nameLocation":"2631:11:162","scope":91201,"usedErrors":[]},{"id":91161,"nodeType":"ContractDefinition","src":"3134:364:162","nodes":[{"id":91160,"nodeType":"FunctionDefinition","src":"3370:126:162","nodes":[],"body":{"id":91159,"nodeType":"Block","src":"3433:63:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3452:38:162","statements":[{"nodeType":"YulAssignment","src":"3466:14:162","value":{"name":"_hash","nodeType":"YulIdentifier","src":"3475:5:162"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"3466:5:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91153,"isOffset":false,"isSlot":false,"src":"3475:5:162","valueSize":1},{"declaration":91156,"isOffset":false,"isSlot":false,"src":"3466:5:162","valueSize":1}],"id":91158,"nodeType":"InlineAssembly","src":"3443:47:162"}]},"documentation":{"id":91150,"nodeType":"StructuredDocumentation","src":"3156:209:162","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3379:3:162","parameters":{"id":91154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91153,"mutability":"mutable","name":"_hash","nameLocation":"3388:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3383:10:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"},"typeName":{"id":91152,"nodeType":"UserDefinedTypeName","pathNode":{"id":91151,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":93036,"src":"3383:4:162"},"referencedDeclaration":93036,"src":"3383:4:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"}},"visibility":"internal"}],"src":"3382:12:162"},"returnParameters":{"id":91157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91156,"mutability":"mutable","name":"hash_","nameLocation":"3426:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3418:13:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3418:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3417:15:162"},"scope":91161,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":91149,"nodeType":"StructuredDocumentation","src":"3030:104:162","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[91161],"name":"LibHash","nameLocation":"3142:7:162","scope":91201,"usedErrors":[]},{"id":91174,"nodeType":"ContractDefinition","src":"3614:416:162","nodes":[{"id":91173,"nodeType":"FunctionDefinition","src":"3878:150:162","nodes":[],"body":{"id":91172,"nodeType":"Block","src":"3955:73:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3974:48:162","statements":[{"nodeType":"YulAssignment","src":"3988:24:162","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"4002:10:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"3988:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91166,"isOffset":false,"isSlot":false,"src":"4002:10:162","valueSize":1},{"declaration":91169,"isOffset":false,"isSlot":false,"src":"3988:10:162","valueSize":1}],"id":91171,"nodeType":"InlineAssembly","src":"3965:57:162"}]},"documentation":{"id":91163,"nodeType":"StructuredDocumentation","src":"3641:232:162","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3887:3:162","parameters":{"id":91167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91166,"mutability":"mutable","name":"_timestamp","nameLocation":"3901:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3891:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91165,"nodeType":"UserDefinedTypeName","pathNode":{"id":91164,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"3891:9:162"},"referencedDeclaration":93044,"src":"3891:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"3890:22:162"},"returnParameters":{"id":91170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91169,"mutability":"mutable","name":"timestamp_","nameLocation":"3943:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3936:17:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91168,"name":"uint64","nodeType":"ElementaryTypeName","src":"3936:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3935:19:162"},"scope":91174,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":91162,"nodeType":"StructuredDocumentation","src":"3500:114:162","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[91174],"name":"LibTimestamp","nameLocation":"3622:12:162","scope":91201,"usedErrors":[]},{"id":91187,"nodeType":"ContractDefinition","src":"4144:402:162","nodes":[{"id":91186,"nodeType":"FunctionDefinition","src":"4400:144:162","nodes":[],"body":{"id":91185,"nodeType":"Block","src":"4473:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4492:46:162","statements":[{"nodeType":"YulAssignment","src":"4506:22:162","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"4519:9:162"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"4506:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91179,"isOffset":false,"isSlot":false,"src":"4519:9:162","valueSize":1},{"declaration":91182,"isOffset":false,"isSlot":false,"src":"4506:9:162","valueSize":1}],"id":91184,"nodeType":"InlineAssembly","src":"4483:55:162"}]},"documentation":{"id":91176,"nodeType":"StructuredDocumentation","src":"4170:225:162","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4409:3:162","parameters":{"id":91180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91179,"mutability":"mutable","name":"_vmstatus","nameLocation":"4422:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4413:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":91178,"nodeType":"UserDefinedTypeName","pathNode":{"id":91177,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4413:8:162"},"referencedDeclaration":93056,"src":"4413:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"}],"src":"4412:20:162"},"returnParameters":{"id":91183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91182,"mutability":"mutable","name":"vmstatus_","nameLocation":"4462:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4456:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91181,"name":"uint8","nodeType":"ElementaryTypeName","src":"4456:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4455:17:162"},"scope":91187,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":91175,"nodeType":"StructuredDocumentation","src":"4032:112:162","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[91187],"name":"LibVMStatus","nameLocation":"4152:11:162","scope":91201,"usedErrors":[]},{"id":91200,"nodeType":"ContractDefinition","src":"4660:402:162","nodes":[{"id":91199,"nodeType":"FunctionDefinition","src":"4916:144:162","nodes":[],"body":{"id":91198,"nodeType":"Block","src":"4989:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5008:46:162","statements":[{"nodeType":"YulAssignment","src":"5022:22:162","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"5035:9:162"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"5022:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91192,"isOffset":false,"isSlot":false,"src":"5035:9:162","valueSize":1},{"declaration":91195,"isOffset":false,"isSlot":false,"src":"5022:9:162","valueSize":1}],"id":91197,"nodeType":"InlineAssembly","src":"4999:55:162"}]},"documentation":{"id":91189,"nodeType":"StructuredDocumentation","src":"4686:225:162","text":"@notice Get the value of a `GameType` type in the form of the underlying uint8.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4925:3:162","parameters":{"id":91193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91192,"mutability":"mutable","name":"_gametype","nameLocation":"4938:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4929:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":91191,"nodeType":"UserDefinedTypeName","pathNode":{"id":91190,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"4929:8:162"},"referencedDeclaration":93054,"src":"4929:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"}],"src":"4928:20:162"},"returnParameters":{"id":91196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91195,"mutability":"mutable","name":"gametype_","nameLocation":"4978:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4972:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91194,"name":"uint8","nodeType":"ElementaryTypeName","src":"4972:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4971:17:162"},"scope":91200,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":91188,"nodeType":"StructuredDocumentation","src":"4548:112:162","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[91200],"name":"LibGameType","nameLocation":"4668:11:162","scope":91201,"usedErrors":[]}],"license":"MIT"},"id":162}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4660:402:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;4660:402:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4660:402:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibGameType\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `GameType` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibGameType\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibGameType"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `GameType` type."},"devdoc":{"version":1,"kind":"dev","title":"LibGameType"},"id":172}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3134:364:162:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;3134:364:162;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3134:364:162:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibHash\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Hash` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibHash\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibHash"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Hash` type."},"devdoc":{"version":1,"kind":"dev","title":"LibHash"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":91201,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"LibClaim":[91135],"LibClock":[91122],"LibDuration":[91148],"LibGameType":[91200],"LibHash":[91161],"LibTimestamp":[91174],"LibVMStatus":[91187],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:5031:162","nodes":[{"id":91069,"nodeType":"PragmaDirective","src":"32:24:162","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":91070,"nodeType":"ImportDirective","src":"58:40:162","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":91201,"sourceUnit":93135,"symbolAliases":[],"unitAlias":""},{"id":91122,"nodeType":"ContractDefinition","src":"206:1820:162","nodes":[{"id":91086,"nodeType":"FunctionDefinition","src":"525:188:162","nodes":[],"body":{"id":91085,"nodeType":"Block","src":"618:95:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"637:70:162","statements":[{"nodeType":"YulAssignment","src":"651:46:162","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"668:4:162","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"674:9:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"664:3:162"},"nodeType":"YulFunctionCall","src":"664:20:162"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"686:10:162"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"661:2:162"},"nodeType":"YulFunctionCall","src":"661:36:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"651:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91075,"isOffset":false,"isSlot":false,"src":"674:9:162","valueSize":1},{"declaration":91078,"isOffset":false,"isSlot":false,"src":"686:10:162","valueSize":1},{"declaration":91082,"isOffset":false,"isSlot":false,"src":"651:6:162","valueSize":1}],"id":91084,"nodeType":"InlineAssembly","src":"628:79:162"}]},"documentation":{"id":91072,"nodeType":"StructuredDocumentation","src":"229:291:162","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"534:4:162","parameters":{"id":91079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91075,"mutability":"mutable","name":"_duration","nameLocation":"548:9:162","nodeType":"VariableDeclaration","scope":91086,"src":"539:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91074,"nodeType":"UserDefinedTypeName","pathNode":{"id":91073,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"539:8:162"},"referencedDeclaration":93046,"src":"539:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":91078,"mutability":"mutable","name":"_timestamp","nameLocation":"569:10:162","nodeType":"VariableDeclaration","scope":91086,"src":"559:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91077,"nodeType":"UserDefinedTypeName","pathNode":{"id":91076,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"559:9:162"},"referencedDeclaration":93044,"src":"559:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"538:42:162"},"returnParameters":{"id":91083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91082,"mutability":"mutable","name":"clock_","nameLocation":"610:6:162","nodeType":"VariableDeclaration","scope":91086,"src":"604:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91081,"nodeType":"UserDefinedTypeName","pathNode":{"id":91080,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"604:5:162"},"referencedDeclaration":93050,"src":"604:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"603:14:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91098,"nodeType":"FunctionDefinition","src":"913:251:162","nodes":[],"body":{"id":91097,"nodeType":"Block","src":"988:176:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1104:54:162","statements":[{"nodeType":"YulAssignment","src":"1118:30:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1135:4:162","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"1141:6:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1131:3:162"},"nodeType":"YulFunctionCall","src":"1131:17:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1118:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91090,"isOffset":false,"isSlot":false,"src":"1141:6:162","valueSize":1},{"declaration":91094,"isOffset":false,"isSlot":false,"src":"1118:9:162","valueSize":1}],"id":91096,"nodeType":"InlineAssembly","src":"1095:63:162"}]},"documentation":{"id":91087,"nodeType":"StructuredDocumentation","src":"719:189:162","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"922:8:162","parameters":{"id":91091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91090,"mutability":"mutable","name":"_clock","nameLocation":"937:6:162","nodeType":"VariableDeclaration","scope":91098,"src":"931:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91089,"nodeType":"UserDefinedTypeName","pathNode":{"id":91088,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"931:5:162"},"referencedDeclaration":93050,"src":"931:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"930:14:162"},"returnParameters":{"id":91095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91094,"mutability":"mutable","name":"duration_","nameLocation":"977:9:162","nodeType":"VariableDeclaration","scope":91098,"src":"968:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91093,"nodeType":"UserDefinedTypeName","pathNode":{"id":91092,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"968:8:162"},"referencedDeclaration":93046,"src":"968:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"967:20:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91110,"nodeType":"FunctionDefinition","src":"1368:300:162","nodes":[],"body":{"id":91109,"nodeType":"Block","src":"1446:222:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1596:66:162","statements":[{"nodeType":"YulAssignment","src":"1610:42:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1628:4:162","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1638:4:162","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"1644:6:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1634:3:162"},"nodeType":"YulFunctionCall","src":"1634:17:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1624:3:162"},"nodeType":"YulFunctionCall","src":"1624:28:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"1610:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91102,"isOffset":false,"isSlot":false,"src":"1644:6:162","valueSize":1},{"declaration":91106,"isOffset":false,"isSlot":false,"src":"1610:10:162","valueSize":1}],"id":91108,"nodeType":"InlineAssembly","src":"1587:75:162"}]},"documentation":{"id":91099,"nodeType":"StructuredDocumentation","src":"1170:193:162","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"1377:9:162","parameters":{"id":91103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91102,"mutability":"mutable","name":"_clock","nameLocation":"1393:6:162","nodeType":"VariableDeclaration","scope":91110,"src":"1387:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91101,"nodeType":"UserDefinedTypeName","pathNode":{"id":91100,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1387:5:162"},"referencedDeclaration":93050,"src":"1387:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1386:14:162"},"returnParameters":{"id":91107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91106,"mutability":"mutable","name":"timestamp_","nameLocation":"1434:10:162","nodeType":"VariableDeclaration","scope":91110,"src":"1424:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91105,"nodeType":"UserDefinedTypeName","pathNode":{"id":91104,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"1424:9:162"},"referencedDeclaration":93044,"src":"1424:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1423:22:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91121,"nodeType":"FunctionDefinition","src":"1893:131:162","nodes":[],"body":{"id":91120,"nodeType":"Block","src":"1959:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1978:40:162","statements":[{"nodeType":"YulAssignment","src":"1992:16:162","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2002:6:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1992:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91114,"isOffset":false,"isSlot":false,"src":"2002:6:162","valueSize":1},{"declaration":91117,"isOffset":false,"isSlot":false,"src":"1992:6:162","valueSize":1}],"id":91119,"nodeType":"InlineAssembly","src":"1969:49:162"}]},"documentation":{"id":91111,"nodeType":"StructuredDocumentation","src":"1674:214:162","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"1902:3:162","parameters":{"id":91115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91114,"mutability":"mutable","name":"_clock","nameLocation":"1912:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1906:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91113,"nodeType":"UserDefinedTypeName","pathNode":{"id":91112,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1906:5:162"},"referencedDeclaration":93050,"src":"1906:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1905:14:162"},"returnParameters":{"id":91118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91117,"mutability":"mutable","name":"clock_","nameLocation":"1951:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1943:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":91116,"name":"uint128","nodeType":"ElementaryTypeName","src":"1943:7:162","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1942:16:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":91071,"nodeType":"StructuredDocumentation","src":"100:106:162","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[91122],"name":"LibClock","nameLocation":"214:8:162","scope":91201,"usedErrors":[]},{"id":91135,"nodeType":"ContractDefinition","src":"2134:375:162","nodes":[{"id":91134,"nodeType":"FunctionDefinition","src":"2376:131:162","nodes":[],"body":{"id":91133,"nodeType":"Block","src":"2442:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2461:40:162","statements":[{"nodeType":"YulAssignment","src":"2475:16:162","value":{"name":"_claim","nodeType":"YulIdentifier","src":"2485:6:162"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"2475:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91127,"isOffset":false,"isSlot":false,"src":"2485:6:162","valueSize":1},{"declaration":91130,"isOffset":false,"isSlot":false,"src":"2475:6:162","valueSize":1}],"id":91132,"nodeType":"InlineAssembly","src":"2452:49:162"}]},"documentation":{"id":91124,"nodeType":"StructuredDocumentation","src":"2157:214:162","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2385:3:162","parameters":{"id":91128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91127,"mutability":"mutable","name":"_claim","nameLocation":"2395:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2389:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":91126,"nodeType":"UserDefinedTypeName","pathNode":{"id":91125,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"2389:5:162"},"referencedDeclaration":93038,"src":"2389:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"}],"src":"2388:14:162"},"returnParameters":{"id":91131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91130,"mutability":"mutable","name":"claim_","nameLocation":"2434:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2426:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2426:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2425:16:162"},"scope":91135,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":91123,"nodeType":"StructuredDocumentation","src":"2028:106:162","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[91135],"name":"LibClaim","nameLocation":"2142:8:162","scope":91201,"usedErrors":[]},{"id":91148,"nodeType":"ContractDefinition","src":"2623:405:162","nodes":[{"id":91147,"nodeType":"FunctionDefinition","src":"2881:145:162","nodes":[],"body":{"id":91146,"nodeType":"Block","src":"2955:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2974:46:162","statements":[{"nodeType":"YulAssignment","src":"2988:22:162","value":{"name":"_duration","nodeType":"YulIdentifier","src":"3001:9:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"2988:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91140,"isOffset":false,"isSlot":false,"src":"3001:9:162","valueSize":1},{"declaration":91143,"isOffset":false,"isSlot":false,"src":"2988:9:162","valueSize":1}],"id":91145,"nodeType":"InlineAssembly","src":"2965:55:162"}]},"documentation":{"id":91137,"nodeType":"StructuredDocumentation","src":"2649:227:162","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2890:3:162","parameters":{"id":91141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91140,"mutability":"mutable","name":"_duration","nameLocation":"2903:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2894:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91139,"nodeType":"UserDefinedTypeName","pathNode":{"id":91138,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"2894:8:162"},"referencedDeclaration":93046,"src":"2894:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"2893:20:162"},"returnParameters":{"id":91144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91143,"mutability":"mutable","name":"duration_","nameLocation":"2944:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2937:16:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91142,"name":"uint64","nodeType":"ElementaryTypeName","src":"2937:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2936:18:162"},"scope":91148,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":91136,"nodeType":"StructuredDocumentation","src":"2511:112:162","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[91148],"name":"LibDuration","nameLocation":"2631:11:162","scope":91201,"usedErrors":[]},{"id":91161,"nodeType":"ContractDefinition","src":"3134:364:162","nodes":[{"id":91160,"nodeType":"FunctionDefinition","src":"3370:126:162","nodes":[],"body":{"id":91159,"nodeType":"Block","src":"3433:63:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3452:38:162","statements":[{"nodeType":"YulAssignment","src":"3466:14:162","value":{"name":"_hash","nodeType":"YulIdentifier","src":"3475:5:162"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"3466:5:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91153,"isOffset":false,"isSlot":false,"src":"3475:5:162","valueSize":1},{"declaration":91156,"isOffset":false,"isSlot":false,"src":"3466:5:162","valueSize":1}],"id":91158,"nodeType":"InlineAssembly","src":"3443:47:162"}]},"documentation":{"id":91150,"nodeType":"StructuredDocumentation","src":"3156:209:162","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3379:3:162","parameters":{"id":91154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91153,"mutability":"mutable","name":"_hash","nameLocation":"3388:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3383:10:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"},"typeName":{"id":91152,"nodeType":"UserDefinedTypeName","pathNode":{"id":91151,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":93036,"src":"3383:4:162"},"referencedDeclaration":93036,"src":"3383:4:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"}},"visibility":"internal"}],"src":"3382:12:162"},"returnParameters":{"id":91157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91156,"mutability":"mutable","name":"hash_","nameLocation":"3426:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3418:13:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3418:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3417:15:162"},"scope":91161,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":91149,"nodeType":"StructuredDocumentation","src":"3030:104:162","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[91161],"name":"LibHash","nameLocation":"3142:7:162","scope":91201,"usedErrors":[]},{"id":91174,"nodeType":"ContractDefinition","src":"3614:416:162","nodes":[{"id":91173,"nodeType":"FunctionDefinition","src":"3878:150:162","nodes":[],"body":{"id":91172,"nodeType":"Block","src":"3955:73:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3974:48:162","statements":[{"nodeType":"YulAssignment","src":"3988:24:162","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"4002:10:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"3988:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91166,"isOffset":false,"isSlot":false,"src":"4002:10:162","valueSize":1},{"declaration":91169,"isOffset":false,"isSlot":false,"src":"3988:10:162","valueSize":1}],"id":91171,"nodeType":"InlineAssembly","src":"3965:57:162"}]},"documentation":{"id":91163,"nodeType":"StructuredDocumentation","src":"3641:232:162","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3887:3:162","parameters":{"id":91167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91166,"mutability":"mutable","name":"_timestamp","nameLocation":"3901:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3891:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91165,"nodeType":"UserDefinedTypeName","pathNode":{"id":91164,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"3891:9:162"},"referencedDeclaration":93044,"src":"3891:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"3890:22:162"},"returnParameters":{"id":91170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91169,"mutability":"mutable","name":"timestamp_","nameLocation":"3943:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3936:17:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91168,"name":"uint64","nodeType":"ElementaryTypeName","src":"3936:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3935:19:162"},"scope":91174,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":91162,"nodeType":"StructuredDocumentation","src":"3500:114:162","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[91174],"name":"LibTimestamp","nameLocation":"3622:12:162","scope":91201,"usedErrors":[]},{"id":91187,"nodeType":"ContractDefinition","src":"4144:402:162","nodes":[{"id":91186,"nodeType":"FunctionDefinition","src":"4400:144:162","nodes":[],"body":{"id":91185,"nodeType":"Block","src":"4473:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4492:46:162","statements":[{"nodeType":"YulAssignment","src":"4506:22:162","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"4519:9:162"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"4506:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91179,"isOffset":false,"isSlot":false,"src":"4519:9:162","valueSize":1},{"declaration":91182,"isOffset":false,"isSlot":false,"src":"4506:9:162","valueSize":1}],"id":91184,"nodeType":"InlineAssembly","src":"4483:55:162"}]},"documentation":{"id":91176,"nodeType":"StructuredDocumentation","src":"4170:225:162","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4409:3:162","parameters":{"id":91180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91179,"mutability":"mutable","name":"_vmstatus","nameLocation":"4422:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4413:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":91178,"nodeType":"UserDefinedTypeName","pathNode":{"id":91177,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4413:8:162"},"referencedDeclaration":93056,"src":"4413:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"}],"src":"4412:20:162"},"returnParameters":{"id":91183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91182,"mutability":"mutable","name":"vmstatus_","nameLocation":"4462:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4456:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91181,"name":"uint8","nodeType":"ElementaryTypeName","src":"4456:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4455:17:162"},"scope":91187,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":91175,"nodeType":"StructuredDocumentation","src":"4032:112:162","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[91187],"name":"LibVMStatus","nameLocation":"4152:11:162","scope":91201,"usedErrors":[]},{"id":91200,"nodeType":"ContractDefinition","src":"4660:402:162","nodes":[{"id":91199,"nodeType":"FunctionDefinition","src":"4916:144:162","nodes":[],"body":{"id":91198,"nodeType":"Block","src":"4989:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5008:46:162","statements":[{"nodeType":"YulAssignment","src":"5022:22:162","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"5035:9:162"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"5022:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91192,"isOffset":false,"isSlot":false,"src":"5035:9:162","valueSize":1},{"declaration":91195,"isOffset":false,"isSlot":false,"src":"5022:9:162","valueSize":1}],"id":91197,"nodeType":"InlineAssembly","src":"4999:55:162"}]},"documentation":{"id":91189,"nodeType":"StructuredDocumentation","src":"4686:225:162","text":"@notice Get the value of a `GameType` type in the form of the underlying uint8.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4925:3:162","parameters":{"id":91193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91192,"mutability":"mutable","name":"_gametype","nameLocation":"4938:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4929:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":91191,"nodeType":"UserDefinedTypeName","pathNode":{"id":91190,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"4929:8:162"},"referencedDeclaration":93054,"src":"4929:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"}],"src":"4928:20:162"},"returnParameters":{"id":91196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91195,"mutability":"mutable","name":"gametype_","nameLocation":"4978:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4972:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91194,"name":"uint8","nodeType":"ElementaryTypeName","src":"4972:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4971:17:162"},"scope":91200,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":91188,"nodeType":"StructuredDocumentation","src":"4548:112:162","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[91200],"name":"LibGameType","nameLocation":"4668:11:162","scope":91201,"usedErrors":[]}],"license":"MIT"},"id":162}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3134:364:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;3134:364:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3134:364:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibHash\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Hash` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibHash\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibHash"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Hash` type."},"devdoc":{"version":1,"kind":"dev","title":"LibHash"},"id":172}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3614:416:162:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;3614:416:162;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3614:416:162:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibTimestamp\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Timestamp` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibTimestamp\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibTimestamp"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Timestamp` type."},"devdoc":{"version":1,"kind":"dev","title":"LibTimestamp"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":91201,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"LibClaim":[91135],"LibClock":[91122],"LibDuration":[91148],"LibGameType":[91200],"LibHash":[91161],"LibTimestamp":[91174],"LibVMStatus":[91187],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:5031:162","nodes":[{"id":91069,"nodeType":"PragmaDirective","src":"32:24:162","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":91070,"nodeType":"ImportDirective","src":"58:40:162","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":91201,"sourceUnit":93135,"symbolAliases":[],"unitAlias":""},{"id":91122,"nodeType":"ContractDefinition","src":"206:1820:162","nodes":[{"id":91086,"nodeType":"FunctionDefinition","src":"525:188:162","nodes":[],"body":{"id":91085,"nodeType":"Block","src":"618:95:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"637:70:162","statements":[{"nodeType":"YulAssignment","src":"651:46:162","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"668:4:162","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"674:9:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"664:3:162"},"nodeType":"YulFunctionCall","src":"664:20:162"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"686:10:162"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"661:2:162"},"nodeType":"YulFunctionCall","src":"661:36:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"651:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91075,"isOffset":false,"isSlot":false,"src":"674:9:162","valueSize":1},{"declaration":91078,"isOffset":false,"isSlot":false,"src":"686:10:162","valueSize":1},{"declaration":91082,"isOffset":false,"isSlot":false,"src":"651:6:162","valueSize":1}],"id":91084,"nodeType":"InlineAssembly","src":"628:79:162"}]},"documentation":{"id":91072,"nodeType":"StructuredDocumentation","src":"229:291:162","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"534:4:162","parameters":{"id":91079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91075,"mutability":"mutable","name":"_duration","nameLocation":"548:9:162","nodeType":"VariableDeclaration","scope":91086,"src":"539:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91074,"nodeType":"UserDefinedTypeName","pathNode":{"id":91073,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"539:8:162"},"referencedDeclaration":93046,"src":"539:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":91078,"mutability":"mutable","name":"_timestamp","nameLocation":"569:10:162","nodeType":"VariableDeclaration","scope":91086,"src":"559:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91077,"nodeType":"UserDefinedTypeName","pathNode":{"id":91076,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"559:9:162"},"referencedDeclaration":93044,"src":"559:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"538:42:162"},"returnParameters":{"id":91083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91082,"mutability":"mutable","name":"clock_","nameLocation":"610:6:162","nodeType":"VariableDeclaration","scope":91086,"src":"604:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91081,"nodeType":"UserDefinedTypeName","pathNode":{"id":91080,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"604:5:162"},"referencedDeclaration":93050,"src":"604:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"603:14:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91098,"nodeType":"FunctionDefinition","src":"913:251:162","nodes":[],"body":{"id":91097,"nodeType":"Block","src":"988:176:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1104:54:162","statements":[{"nodeType":"YulAssignment","src":"1118:30:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1135:4:162","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"1141:6:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1131:3:162"},"nodeType":"YulFunctionCall","src":"1131:17:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1118:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91090,"isOffset":false,"isSlot":false,"src":"1141:6:162","valueSize":1},{"declaration":91094,"isOffset":false,"isSlot":false,"src":"1118:9:162","valueSize":1}],"id":91096,"nodeType":"InlineAssembly","src":"1095:63:162"}]},"documentation":{"id":91087,"nodeType":"StructuredDocumentation","src":"719:189:162","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"922:8:162","parameters":{"id":91091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91090,"mutability":"mutable","name":"_clock","nameLocation":"937:6:162","nodeType":"VariableDeclaration","scope":91098,"src":"931:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91089,"nodeType":"UserDefinedTypeName","pathNode":{"id":91088,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"931:5:162"},"referencedDeclaration":93050,"src":"931:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"930:14:162"},"returnParameters":{"id":91095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91094,"mutability":"mutable","name":"duration_","nameLocation":"977:9:162","nodeType":"VariableDeclaration","scope":91098,"src":"968:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91093,"nodeType":"UserDefinedTypeName","pathNode":{"id":91092,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"968:8:162"},"referencedDeclaration":93046,"src":"968:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"967:20:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91110,"nodeType":"FunctionDefinition","src":"1368:300:162","nodes":[],"body":{"id":91109,"nodeType":"Block","src":"1446:222:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1596:66:162","statements":[{"nodeType":"YulAssignment","src":"1610:42:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1628:4:162","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1638:4:162","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"1644:6:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1634:3:162"},"nodeType":"YulFunctionCall","src":"1634:17:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1624:3:162"},"nodeType":"YulFunctionCall","src":"1624:28:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"1610:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91102,"isOffset":false,"isSlot":false,"src":"1644:6:162","valueSize":1},{"declaration":91106,"isOffset":false,"isSlot":false,"src":"1610:10:162","valueSize":1}],"id":91108,"nodeType":"InlineAssembly","src":"1587:75:162"}]},"documentation":{"id":91099,"nodeType":"StructuredDocumentation","src":"1170:193:162","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"1377:9:162","parameters":{"id":91103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91102,"mutability":"mutable","name":"_clock","nameLocation":"1393:6:162","nodeType":"VariableDeclaration","scope":91110,"src":"1387:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91101,"nodeType":"UserDefinedTypeName","pathNode":{"id":91100,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1387:5:162"},"referencedDeclaration":93050,"src":"1387:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1386:14:162"},"returnParameters":{"id":91107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91106,"mutability":"mutable","name":"timestamp_","nameLocation":"1434:10:162","nodeType":"VariableDeclaration","scope":91110,"src":"1424:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91105,"nodeType":"UserDefinedTypeName","pathNode":{"id":91104,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"1424:9:162"},"referencedDeclaration":93044,"src":"1424:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1423:22:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91121,"nodeType":"FunctionDefinition","src":"1893:131:162","nodes":[],"body":{"id":91120,"nodeType":"Block","src":"1959:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1978:40:162","statements":[{"nodeType":"YulAssignment","src":"1992:16:162","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2002:6:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1992:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91114,"isOffset":false,"isSlot":false,"src":"2002:6:162","valueSize":1},{"declaration":91117,"isOffset":false,"isSlot":false,"src":"1992:6:162","valueSize":1}],"id":91119,"nodeType":"InlineAssembly","src":"1969:49:162"}]},"documentation":{"id":91111,"nodeType":"StructuredDocumentation","src":"1674:214:162","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"1902:3:162","parameters":{"id":91115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91114,"mutability":"mutable","name":"_clock","nameLocation":"1912:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1906:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91113,"nodeType":"UserDefinedTypeName","pathNode":{"id":91112,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1906:5:162"},"referencedDeclaration":93050,"src":"1906:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1905:14:162"},"returnParameters":{"id":91118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91117,"mutability":"mutable","name":"clock_","nameLocation":"1951:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1943:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":91116,"name":"uint128","nodeType":"ElementaryTypeName","src":"1943:7:162","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1942:16:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":91071,"nodeType":"StructuredDocumentation","src":"100:106:162","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[91122],"name":"LibClock","nameLocation":"214:8:162","scope":91201,"usedErrors":[]},{"id":91135,"nodeType":"ContractDefinition","src":"2134:375:162","nodes":[{"id":91134,"nodeType":"FunctionDefinition","src":"2376:131:162","nodes":[],"body":{"id":91133,"nodeType":"Block","src":"2442:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2461:40:162","statements":[{"nodeType":"YulAssignment","src":"2475:16:162","value":{"name":"_claim","nodeType":"YulIdentifier","src":"2485:6:162"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"2475:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91127,"isOffset":false,"isSlot":false,"src":"2485:6:162","valueSize":1},{"declaration":91130,"isOffset":false,"isSlot":false,"src":"2475:6:162","valueSize":1}],"id":91132,"nodeType":"InlineAssembly","src":"2452:49:162"}]},"documentation":{"id":91124,"nodeType":"StructuredDocumentation","src":"2157:214:162","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2385:3:162","parameters":{"id":91128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91127,"mutability":"mutable","name":"_claim","nameLocation":"2395:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2389:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":91126,"nodeType":"UserDefinedTypeName","pathNode":{"id":91125,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"2389:5:162"},"referencedDeclaration":93038,"src":"2389:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"}],"src":"2388:14:162"},"returnParameters":{"id":91131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91130,"mutability":"mutable","name":"claim_","nameLocation":"2434:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2426:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2426:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2425:16:162"},"scope":91135,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":91123,"nodeType":"StructuredDocumentation","src":"2028:106:162","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[91135],"name":"LibClaim","nameLocation":"2142:8:162","scope":91201,"usedErrors":[]},{"id":91148,"nodeType":"ContractDefinition","src":"2623:405:162","nodes":[{"id":91147,"nodeType":"FunctionDefinition","src":"2881:145:162","nodes":[],"body":{"id":91146,"nodeType":"Block","src":"2955:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2974:46:162","statements":[{"nodeType":"YulAssignment","src":"2988:22:162","value":{"name":"_duration","nodeType":"YulIdentifier","src":"3001:9:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"2988:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91140,"isOffset":false,"isSlot":false,"src":"3001:9:162","valueSize":1},{"declaration":91143,"isOffset":false,"isSlot":false,"src":"2988:9:162","valueSize":1}],"id":91145,"nodeType":"InlineAssembly","src":"2965:55:162"}]},"documentation":{"id":91137,"nodeType":"StructuredDocumentation","src":"2649:227:162","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2890:3:162","parameters":{"id":91141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91140,"mutability":"mutable","name":"_duration","nameLocation":"2903:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2894:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91139,"nodeType":"UserDefinedTypeName","pathNode":{"id":91138,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"2894:8:162"},"referencedDeclaration":93046,"src":"2894:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"2893:20:162"},"returnParameters":{"id":91144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91143,"mutability":"mutable","name":"duration_","nameLocation":"2944:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2937:16:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91142,"name":"uint64","nodeType":"ElementaryTypeName","src":"2937:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2936:18:162"},"scope":91148,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":91136,"nodeType":"StructuredDocumentation","src":"2511:112:162","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[91148],"name":"LibDuration","nameLocation":"2631:11:162","scope":91201,"usedErrors":[]},{"id":91161,"nodeType":"ContractDefinition","src":"3134:364:162","nodes":[{"id":91160,"nodeType":"FunctionDefinition","src":"3370:126:162","nodes":[],"body":{"id":91159,"nodeType":"Block","src":"3433:63:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3452:38:162","statements":[{"nodeType":"YulAssignment","src":"3466:14:162","value":{"name":"_hash","nodeType":"YulIdentifier","src":"3475:5:162"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"3466:5:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91153,"isOffset":false,"isSlot":false,"src":"3475:5:162","valueSize":1},{"declaration":91156,"isOffset":false,"isSlot":false,"src":"3466:5:162","valueSize":1}],"id":91158,"nodeType":"InlineAssembly","src":"3443:47:162"}]},"documentation":{"id":91150,"nodeType":"StructuredDocumentation","src":"3156:209:162","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3379:3:162","parameters":{"id":91154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91153,"mutability":"mutable","name":"_hash","nameLocation":"3388:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3383:10:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"},"typeName":{"id":91152,"nodeType":"UserDefinedTypeName","pathNode":{"id":91151,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":93036,"src":"3383:4:162"},"referencedDeclaration":93036,"src":"3383:4:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"}},"visibility":"internal"}],"src":"3382:12:162"},"returnParameters":{"id":91157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91156,"mutability":"mutable","name":"hash_","nameLocation":"3426:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3418:13:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3418:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3417:15:162"},"scope":91161,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":91149,"nodeType":"StructuredDocumentation","src":"3030:104:162","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[91161],"name":"LibHash","nameLocation":"3142:7:162","scope":91201,"usedErrors":[]},{"id":91174,"nodeType":"ContractDefinition","src":"3614:416:162","nodes":[{"id":91173,"nodeType":"FunctionDefinition","src":"3878:150:162","nodes":[],"body":{"id":91172,"nodeType":"Block","src":"3955:73:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3974:48:162","statements":[{"nodeType":"YulAssignment","src":"3988:24:162","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"4002:10:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"3988:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91166,"isOffset":false,"isSlot":false,"src":"4002:10:162","valueSize":1},{"declaration":91169,"isOffset":false,"isSlot":false,"src":"3988:10:162","valueSize":1}],"id":91171,"nodeType":"InlineAssembly","src":"3965:57:162"}]},"documentation":{"id":91163,"nodeType":"StructuredDocumentation","src":"3641:232:162","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3887:3:162","parameters":{"id":91167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91166,"mutability":"mutable","name":"_timestamp","nameLocation":"3901:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3891:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91165,"nodeType":"UserDefinedTypeName","pathNode":{"id":91164,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"3891:9:162"},"referencedDeclaration":93044,"src":"3891:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"3890:22:162"},"returnParameters":{"id":91170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91169,"mutability":"mutable","name":"timestamp_","nameLocation":"3943:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3936:17:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91168,"name":"uint64","nodeType":"ElementaryTypeName","src":"3936:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3935:19:162"},"scope":91174,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":91162,"nodeType":"StructuredDocumentation","src":"3500:114:162","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[91174],"name":"LibTimestamp","nameLocation":"3622:12:162","scope":91201,"usedErrors":[]},{"id":91187,"nodeType":"ContractDefinition","src":"4144:402:162","nodes":[{"id":91186,"nodeType":"FunctionDefinition","src":"4400:144:162","nodes":[],"body":{"id":91185,"nodeType":"Block","src":"4473:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4492:46:162","statements":[{"nodeType":"YulAssignment","src":"4506:22:162","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"4519:9:162"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"4506:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91179,"isOffset":false,"isSlot":false,"src":"4519:9:162","valueSize":1},{"declaration":91182,"isOffset":false,"isSlot":false,"src":"4506:9:162","valueSize":1}],"id":91184,"nodeType":"InlineAssembly","src":"4483:55:162"}]},"documentation":{"id":91176,"nodeType":"StructuredDocumentation","src":"4170:225:162","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4409:3:162","parameters":{"id":91180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91179,"mutability":"mutable","name":"_vmstatus","nameLocation":"4422:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4413:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":91178,"nodeType":"UserDefinedTypeName","pathNode":{"id":91177,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4413:8:162"},"referencedDeclaration":93056,"src":"4413:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"}],"src":"4412:20:162"},"returnParameters":{"id":91183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91182,"mutability":"mutable","name":"vmstatus_","nameLocation":"4462:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4456:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91181,"name":"uint8","nodeType":"ElementaryTypeName","src":"4456:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4455:17:162"},"scope":91187,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":91175,"nodeType":"StructuredDocumentation","src":"4032:112:162","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[91187],"name":"LibVMStatus","nameLocation":"4152:11:162","scope":91201,"usedErrors":[]},{"id":91200,"nodeType":"ContractDefinition","src":"4660:402:162","nodes":[{"id":91199,"nodeType":"FunctionDefinition","src":"4916:144:162","nodes":[],"body":{"id":91198,"nodeType":"Block","src":"4989:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5008:46:162","statements":[{"nodeType":"YulAssignment","src":"5022:22:162","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"5035:9:162"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"5022:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91192,"isOffset":false,"isSlot":false,"src":"5035:9:162","valueSize":1},{"declaration":91195,"isOffset":false,"isSlot":false,"src":"5022:9:162","valueSize":1}],"id":91197,"nodeType":"InlineAssembly","src":"4999:55:162"}]},"documentation":{"id":91189,"nodeType":"StructuredDocumentation","src":"4686:225:162","text":"@notice Get the value of a `GameType` type in the form of the underlying uint8.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4925:3:162","parameters":{"id":91193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91192,"mutability":"mutable","name":"_gametype","nameLocation":"4938:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4929:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":91191,"nodeType":"UserDefinedTypeName","pathNode":{"id":91190,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"4929:8:162"},"referencedDeclaration":93054,"src":"4929:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"}],"src":"4928:20:162"},"returnParameters":{"id":91196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91195,"mutability":"mutable","name":"gametype_","nameLocation":"4978:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4972:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91194,"name":"uint8","nodeType":"ElementaryTypeName","src":"4972:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4971:17:162"},"scope":91200,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":91188,"nodeType":"StructuredDocumentation","src":"4548:112:162","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[91200],"name":"LibGameType","nameLocation":"4668:11:162","scope":91201,"usedErrors":[]}],"license":"MIT"},"id":162}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3614:416:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;3614:416:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"3614:416:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibTimestamp\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `Timestamp` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibTimestamp\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibTimestamp"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `Timestamp` type."},"devdoc":{"version":1,"kind":"dev","title":"LibTimestamp"},"id":172}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4144:402:162:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;4144:402:162;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4144:402:162:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibVMStatus\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `VMStatus` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibVMStatus\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571\",\"dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7\",\"dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9\",\"dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53\",\"dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibVMStatus"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe9f4fd0a027c3bbdc4fcaa07a41bb6e27708a3984efc43f5feb817a4be791506","urls":["bzz-raw://6a94a8807d562cdf269fe0efee6fdd4f1c20b1e13996e0139f2c53f886bde571","dweb:/ipfs/QmctLvYjq9jq3Cc7jdd7EPUKmYHwGCJ5QVbzAA38wo69aG"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0x30eca13613b0654e8beb1756cc952163abc9c6c92fe4b1baccd20eb73b17ca4f","urls":["bzz-raw://4fca9e9815265c4457e9dde03476b190d300829aab42a779e2c0eb4a88eff3e7","dweb:/ipfs/QmRdq93iUVtE5EGy1KxnWa8v3UjH48cgnekpg5sx33B9he"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x8e8be49421a00de964e1de84ac705709ddc1edf3cd02a5acb6c29f4984a3d780","urls":["bzz-raw://0276278752fc662727697315467a63ee6db1c81f9fdc3c549e2bcc60447890b9","dweb:/ipfs/QmWLnedbgy6Y5LAaPYYRZn8xneMjRhw63iaaR4KQz7Zmts"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xf42eeeae7e588f63cb5314e56549df8b2f817daf2c648497c0b947081eceb539","urls":["bzz-raw://4fa815d84de6e457048c7809b1a4f08c2c6983a72f8237b25158bf4aabbebe53","dweb:/ipfs/QmSuG32A9jvSxjxm7WNmXQSEwLvfghcbnYyTZqMaQuDFt4"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `VMStatus` type."},"devdoc":{"version":1,"kind":"dev","title":"LibVMStatus"},"ast":{"absolutePath":"src/dispute/lib/LibUDT.sol","id":91201,"exportedSymbols":{"BondAmount":[93042],"Claim":[93038],"ClaimHash":[93040],"Clock":[93050],"Duration":[93046],"GameId":[93048],"GameStatus":[93060],"GameType":[93054],"GameTypes":[93078],"Hash":[93036],"LibClaim":[91135],"LibClock":[91122],"LibDuration":[91148],"LibGameType":[91200],"LibHash":[91161],"LibTimestamp":[91174],"LibVMStatus":[91187],"LocalPreimageKey":[93134],"Position":[93052],"Timestamp":[93044],"VMStatus":[93056],"VMStatuses":[93112]},"nodeType":"SourceUnit","src":"32:5031:162","nodes":[{"id":91069,"nodeType":"PragmaDirective","src":"32:24:162","nodes":[],"literals":["solidity","^","0.8",".15"]},{"id":91070,"nodeType":"ImportDirective","src":"58:40:162","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":91201,"sourceUnit":93135,"symbolAliases":[],"unitAlias":""},{"id":91122,"nodeType":"ContractDefinition","src":"206:1820:162","nodes":[{"id":91086,"nodeType":"FunctionDefinition","src":"525:188:162","nodes":[],"body":{"id":91085,"nodeType":"Block","src":"618:95:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"637:70:162","statements":[{"nodeType":"YulAssignment","src":"651:46:162","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"668:4:162","type":"","value":"0x40"},{"name":"_duration","nodeType":"YulIdentifier","src":"674:9:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"664:3:162"},"nodeType":"YulFunctionCall","src":"664:20:162"},{"name":"_timestamp","nodeType":"YulIdentifier","src":"686:10:162"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"661:2:162"},"nodeType":"YulFunctionCall","src":"661:36:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"651:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91075,"isOffset":false,"isSlot":false,"src":"674:9:162","valueSize":1},{"declaration":91078,"isOffset":false,"isSlot":false,"src":"686:10:162","valueSize":1},{"declaration":91082,"isOffset":false,"isSlot":false,"src":"651:6:162","valueSize":1}],"id":91084,"nodeType":"InlineAssembly","src":"628:79:162"}]},"documentation":{"id":91072,"nodeType":"StructuredDocumentation","src":"229:291:162","text":"@notice Packs a `Duration` and `Timestamp` into a `Clock` type.\n @param _duration The `Duration` to pack into the `Clock` type.\n @param _timestamp The `Timestamp` to pack into the `Clock` type.\n @return clock_ The `Clock` containing the `_duration` and `_timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"wrap","nameLocation":"534:4:162","parameters":{"id":91079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91075,"mutability":"mutable","name":"_duration","nameLocation":"548:9:162","nodeType":"VariableDeclaration","scope":91086,"src":"539:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91074,"nodeType":"UserDefinedTypeName","pathNode":{"id":91073,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"539:8:162"},"referencedDeclaration":93046,"src":"539:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":91078,"mutability":"mutable","name":"_timestamp","nameLocation":"569:10:162","nodeType":"VariableDeclaration","scope":91086,"src":"559:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91077,"nodeType":"UserDefinedTypeName","pathNode":{"id":91076,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"559:9:162"},"referencedDeclaration":93044,"src":"559:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"538:42:162"},"returnParameters":{"id":91083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91082,"mutability":"mutable","name":"clock_","nameLocation":"610:6:162","nodeType":"VariableDeclaration","scope":91086,"src":"604:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91081,"nodeType":"UserDefinedTypeName","pathNode":{"id":91080,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"604:5:162"},"referencedDeclaration":93050,"src":"604:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"603:14:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91098,"nodeType":"FunctionDefinition","src":"913:251:162","nodes":[],"body":{"id":91097,"nodeType":"Block","src":"988:176:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1104:54:162","statements":[{"nodeType":"YulAssignment","src":"1118:30:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1135:4:162","type":"","value":"0x40"},{"name":"_clock","nodeType":"YulIdentifier","src":"1141:6:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1131:3:162"},"nodeType":"YulFunctionCall","src":"1131:17:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"1118:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91090,"isOffset":false,"isSlot":false,"src":"1141:6:162","valueSize":1},{"declaration":91094,"isOffset":false,"isSlot":false,"src":"1118:9:162","valueSize":1}],"id":91096,"nodeType":"InlineAssembly","src":"1095:63:162"}]},"documentation":{"id":91087,"nodeType":"StructuredDocumentation","src":"719:189:162","text":"@notice Pull the `Duration` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Duration` out of.\n @return duration_ The `Duration` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"duration","nameLocation":"922:8:162","parameters":{"id":91091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91090,"mutability":"mutable","name":"_clock","nameLocation":"937:6:162","nodeType":"VariableDeclaration","scope":91098,"src":"931:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91089,"nodeType":"UserDefinedTypeName","pathNode":{"id":91088,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"931:5:162"},"referencedDeclaration":93050,"src":"931:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"930:14:162"},"returnParameters":{"id":91095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91094,"mutability":"mutable","name":"duration_","nameLocation":"977:9:162","nodeType":"VariableDeclaration","scope":91098,"src":"968:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91093,"nodeType":"UserDefinedTypeName","pathNode":{"id":91092,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"968:8:162"},"referencedDeclaration":93046,"src":"968:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"967:20:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91110,"nodeType":"FunctionDefinition","src":"1368:300:162","nodes":[],"body":{"id":91109,"nodeType":"Block","src":"1446:222:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1596:66:162","statements":[{"nodeType":"YulAssignment","src":"1610:42:162","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1628:4:162","type":"","value":"0xC0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1638:4:162","type":"","value":"0xC0"},{"name":"_clock","nodeType":"YulIdentifier","src":"1644:6:162"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1634:3:162"},"nodeType":"YulFunctionCall","src":"1634:17:162"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1624:3:162"},"nodeType":"YulFunctionCall","src":"1624:28:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"1610:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91102,"isOffset":false,"isSlot":false,"src":"1644:6:162","valueSize":1},{"declaration":91106,"isOffset":false,"isSlot":false,"src":"1610:10:162","valueSize":1}],"id":91108,"nodeType":"InlineAssembly","src":"1587:75:162"}]},"documentation":{"id":91099,"nodeType":"StructuredDocumentation","src":"1170:193:162","text":"@notice Pull the `Timestamp` out of a `Clock` type.\n @param _clock The `Clock` type to pull the `Timestamp` out of.\n @return timestamp_ The `Timestamp` pulled out of `_clock`."},"implemented":true,"kind":"function","modifiers":[],"name":"timestamp","nameLocation":"1377:9:162","parameters":{"id":91103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91102,"mutability":"mutable","name":"_clock","nameLocation":"1393:6:162","nodeType":"VariableDeclaration","scope":91110,"src":"1387:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91101,"nodeType":"UserDefinedTypeName","pathNode":{"id":91100,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1387:5:162"},"referencedDeclaration":93050,"src":"1387:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1386:14:162"},"returnParameters":{"id":91107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91106,"mutability":"mutable","name":"timestamp_","nameLocation":"1434:10:162","nodeType":"VariableDeclaration","scope":91110,"src":"1424:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91105,"nodeType":"UserDefinedTypeName","pathNode":{"id":91104,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"1424:9:162"},"referencedDeclaration":93044,"src":"1424:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"1423:22:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":91121,"nodeType":"FunctionDefinition","src":"1893:131:162","nodes":[],"body":{"id":91120,"nodeType":"Block","src":"1959:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1978:40:162","statements":[{"nodeType":"YulAssignment","src":"1992:16:162","value":{"name":"_clock","nodeType":"YulIdentifier","src":"2002:6:162"},"variableNames":[{"name":"clock_","nodeType":"YulIdentifier","src":"1992:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91114,"isOffset":false,"isSlot":false,"src":"2002:6:162","valueSize":1},{"declaration":91117,"isOffset":false,"isSlot":false,"src":"1992:6:162","valueSize":1}],"id":91119,"nodeType":"InlineAssembly","src":"1969:49:162"}]},"documentation":{"id":91111,"nodeType":"StructuredDocumentation","src":"1674:214:162","text":"@notice Get the value of a `Clock` type in the form of the underlying uint128.\n @param _clock The `Clock` type to get the value of.\n @return clock_ The value of the `Clock` type as a uint128 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"1902:3:162","parameters":{"id":91115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91114,"mutability":"mutable","name":"_clock","nameLocation":"1912:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1906:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"},"typeName":{"id":91113,"nodeType":"UserDefinedTypeName","pathNode":{"id":91112,"name":"Clock","nodeType":"IdentifierPath","referencedDeclaration":93050,"src":"1906:5:162"},"referencedDeclaration":93050,"src":"1906:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Clock_$93050","typeString":"Clock"}},"visibility":"internal"}],"src":"1905:14:162"},"returnParameters":{"id":91118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91117,"mutability":"mutable","name":"clock_","nameLocation":"1951:6:162","nodeType":"VariableDeclaration","scope":91121,"src":"1943:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":91116,"name":"uint128","nodeType":"ElementaryTypeName","src":"1943:7:162","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1942:16:162"},"scope":91122,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClock","contractDependencies":[],"contractKind":"library","documentation":{"id":91071,"nodeType":"StructuredDocumentation","src":"100:106:162","text":"@title LibClock\n @notice This library contains helper functions for working with the `Clock` type."},"fullyImplemented":true,"linearizedBaseContracts":[91122],"name":"LibClock","nameLocation":"214:8:162","scope":91201,"usedErrors":[]},{"id":91135,"nodeType":"ContractDefinition","src":"2134:375:162","nodes":[{"id":91134,"nodeType":"FunctionDefinition","src":"2376:131:162","nodes":[],"body":{"id":91133,"nodeType":"Block","src":"2442:65:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2461:40:162","statements":[{"nodeType":"YulAssignment","src":"2475:16:162","value":{"name":"_claim","nodeType":"YulIdentifier","src":"2485:6:162"},"variableNames":[{"name":"claim_","nodeType":"YulIdentifier","src":"2475:6:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91127,"isOffset":false,"isSlot":false,"src":"2485:6:162","valueSize":1},{"declaration":91130,"isOffset":false,"isSlot":false,"src":"2475:6:162","valueSize":1}],"id":91132,"nodeType":"InlineAssembly","src":"2452:49:162"}]},"documentation":{"id":91124,"nodeType":"StructuredDocumentation","src":"2157:214:162","text":"@notice Get the value of a `Claim` type in the form of the underlying bytes32.\n @param _claim The `Claim` type to get the value of.\n @return claim_ The value of the `Claim` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2385:3:162","parameters":{"id":91128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91127,"mutability":"mutable","name":"_claim","nameLocation":"2395:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2389:12:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"},"typeName":{"id":91126,"nodeType":"UserDefinedTypeName","pathNode":{"id":91125,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":93038,"src":"2389:5:162"},"referencedDeclaration":93038,"src":"2389:5:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$93038","typeString":"Claim"}},"visibility":"internal"}],"src":"2388:14:162"},"returnParameters":{"id":91131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91130,"mutability":"mutable","name":"claim_","nameLocation":"2434:6:162","nodeType":"VariableDeclaration","scope":91134,"src":"2426:14:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2426:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2425:16:162"},"scope":91135,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibClaim","contractDependencies":[],"contractKind":"library","documentation":{"id":91123,"nodeType":"StructuredDocumentation","src":"2028:106:162","text":"@title LibClaim\n @notice This library contains helper functions for working with the `Claim` type."},"fullyImplemented":true,"linearizedBaseContracts":[91135],"name":"LibClaim","nameLocation":"2142:8:162","scope":91201,"usedErrors":[]},{"id":91148,"nodeType":"ContractDefinition","src":"2623:405:162","nodes":[{"id":91147,"nodeType":"FunctionDefinition","src":"2881:145:162","nodes":[],"body":{"id":91146,"nodeType":"Block","src":"2955:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2974:46:162","statements":[{"nodeType":"YulAssignment","src":"2988:22:162","value":{"name":"_duration","nodeType":"YulIdentifier","src":"3001:9:162"},"variableNames":[{"name":"duration_","nodeType":"YulIdentifier","src":"2988:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91140,"isOffset":false,"isSlot":false,"src":"3001:9:162","valueSize":1},{"declaration":91143,"isOffset":false,"isSlot":false,"src":"2988:9:162","valueSize":1}],"id":91145,"nodeType":"InlineAssembly","src":"2965:55:162"}]},"documentation":{"id":91137,"nodeType":"StructuredDocumentation","src":"2649:227:162","text":"@notice Get the value of a `Duration` type in the form of the underlying uint64.\n @param _duration The `Duration` type to get the value of.\n @return duration_ The value of the `Duration` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"2890:3:162","parameters":{"id":91141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91140,"mutability":"mutable","name":"_duration","nameLocation":"2903:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2894:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"},"typeName":{"id":91139,"nodeType":"UserDefinedTypeName","pathNode":{"id":91138,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":93046,"src":"2894:8:162"},"referencedDeclaration":93046,"src":"2894:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$93046","typeString":"Duration"}},"visibility":"internal"}],"src":"2893:20:162"},"returnParameters":{"id":91144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91143,"mutability":"mutable","name":"duration_","nameLocation":"2944:9:162","nodeType":"VariableDeclaration","scope":91147,"src":"2937:16:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91142,"name":"uint64","nodeType":"ElementaryTypeName","src":"2937:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2936:18:162"},"scope":91148,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDuration","contractDependencies":[],"contractKind":"library","documentation":{"id":91136,"nodeType":"StructuredDocumentation","src":"2511:112:162","text":"@title LibDuration\n @notice This library contains helper functions for working with the `Duration` type."},"fullyImplemented":true,"linearizedBaseContracts":[91148],"name":"LibDuration","nameLocation":"2631:11:162","scope":91201,"usedErrors":[]},{"id":91161,"nodeType":"ContractDefinition","src":"3134:364:162","nodes":[{"id":91160,"nodeType":"FunctionDefinition","src":"3370:126:162","nodes":[],"body":{"id":91159,"nodeType":"Block","src":"3433:63:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3452:38:162","statements":[{"nodeType":"YulAssignment","src":"3466:14:162","value":{"name":"_hash","nodeType":"YulIdentifier","src":"3475:5:162"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"3466:5:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91153,"isOffset":false,"isSlot":false,"src":"3475:5:162","valueSize":1},{"declaration":91156,"isOffset":false,"isSlot":false,"src":"3466:5:162","valueSize":1}],"id":91158,"nodeType":"InlineAssembly","src":"3443:47:162"}]},"documentation":{"id":91150,"nodeType":"StructuredDocumentation","src":"3156:209:162","text":"@notice Get the value of a `Hash` type in the form of the underlying bytes32.\n @param _hash The `Hash` type to get the value of.\n @return hash_ The value of the `Hash` type as a bytes32 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3379:3:162","parameters":{"id":91154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91153,"mutability":"mutable","name":"_hash","nameLocation":"3388:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3383:10:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"},"typeName":{"id":91152,"nodeType":"UserDefinedTypeName","pathNode":{"id":91151,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":93036,"src":"3383:4:162"},"referencedDeclaration":93036,"src":"3383:4:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$93036","typeString":"Hash"}},"visibility":"internal"}],"src":"3382:12:162"},"returnParameters":{"id":91157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91156,"mutability":"mutable","name":"hash_","nameLocation":"3426:5:162","nodeType":"VariableDeclaration","scope":91160,"src":"3418:13:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3418:7:162","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3417:15:162"},"scope":91161,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibHash","contractDependencies":[],"contractKind":"library","documentation":{"id":91149,"nodeType":"StructuredDocumentation","src":"3030:104:162","text":"@title LibHash\n @notice This library contains helper functions for working with the `Hash` type."},"fullyImplemented":true,"linearizedBaseContracts":[91161],"name":"LibHash","nameLocation":"3142:7:162","scope":91201,"usedErrors":[]},{"id":91174,"nodeType":"ContractDefinition","src":"3614:416:162","nodes":[{"id":91173,"nodeType":"FunctionDefinition","src":"3878:150:162","nodes":[],"body":{"id":91172,"nodeType":"Block","src":"3955:73:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3974:48:162","statements":[{"nodeType":"YulAssignment","src":"3988:24:162","value":{"name":"_timestamp","nodeType":"YulIdentifier","src":"4002:10:162"},"variableNames":[{"name":"timestamp_","nodeType":"YulIdentifier","src":"3988:10:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91166,"isOffset":false,"isSlot":false,"src":"4002:10:162","valueSize":1},{"declaration":91169,"isOffset":false,"isSlot":false,"src":"3988:10:162","valueSize":1}],"id":91171,"nodeType":"InlineAssembly","src":"3965:57:162"}]},"documentation":{"id":91163,"nodeType":"StructuredDocumentation","src":"3641:232:162","text":"@notice Get the value of a `Timestamp` type in the form of the underlying uint64.\n @param _timestamp The `Timestamp` type to get the value of.\n @return timestamp_ The value of the `Timestamp` type as a uint64 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"3887:3:162","parameters":{"id":91167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91166,"mutability":"mutable","name":"_timestamp","nameLocation":"3901:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3891:20:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"},"typeName":{"id":91165,"nodeType":"UserDefinedTypeName","pathNode":{"id":91164,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":93044,"src":"3891:9:162"},"referencedDeclaration":93044,"src":"3891:9:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$93044","typeString":"Timestamp"}},"visibility":"internal"}],"src":"3890:22:162"},"returnParameters":{"id":91170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91169,"mutability":"mutable","name":"timestamp_","nameLocation":"3943:10:162","nodeType":"VariableDeclaration","scope":91173,"src":"3936:17:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":91168,"name":"uint64","nodeType":"ElementaryTypeName","src":"3936:6:162","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3935:19:162"},"scope":91174,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibTimestamp","contractDependencies":[],"contractKind":"library","documentation":{"id":91162,"nodeType":"StructuredDocumentation","src":"3500:114:162","text":"@title LibTimestamp\n @notice This library contains helper functions for working with the `Timestamp` type."},"fullyImplemented":true,"linearizedBaseContracts":[91174],"name":"LibTimestamp","nameLocation":"3622:12:162","scope":91201,"usedErrors":[]},{"id":91187,"nodeType":"ContractDefinition","src":"4144:402:162","nodes":[{"id":91186,"nodeType":"FunctionDefinition","src":"4400:144:162","nodes":[],"body":{"id":91185,"nodeType":"Block","src":"4473:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4492:46:162","statements":[{"nodeType":"YulAssignment","src":"4506:22:162","value":{"name":"_vmstatus","nodeType":"YulIdentifier","src":"4519:9:162"},"variableNames":[{"name":"vmstatus_","nodeType":"YulIdentifier","src":"4506:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91179,"isOffset":false,"isSlot":false,"src":"4519:9:162","valueSize":1},{"declaration":91182,"isOffset":false,"isSlot":false,"src":"4506:9:162","valueSize":1}],"id":91184,"nodeType":"InlineAssembly","src":"4483:55:162"}]},"documentation":{"id":91176,"nodeType":"StructuredDocumentation","src":"4170:225:162","text":"@notice Get the value of a `VMStatus` type in the form of the underlying uint8.\n @param _vmstatus The `VMStatus` type to get the value of.\n @return vmstatus_ The value of the `VMStatus` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4409:3:162","parameters":{"id":91180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91179,"mutability":"mutable","name":"_vmstatus","nameLocation":"4422:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4413:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"},"typeName":{"id":91178,"nodeType":"UserDefinedTypeName","pathNode":{"id":91177,"name":"VMStatus","nodeType":"IdentifierPath","referencedDeclaration":93056,"src":"4413:8:162"},"referencedDeclaration":93056,"src":"4413:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_VMStatus_$93056","typeString":"VMStatus"}},"visibility":"internal"}],"src":"4412:20:162"},"returnParameters":{"id":91183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91182,"mutability":"mutable","name":"vmstatus_","nameLocation":"4462:9:162","nodeType":"VariableDeclaration","scope":91186,"src":"4456:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91181,"name":"uint8","nodeType":"ElementaryTypeName","src":"4456:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4455:17:162"},"scope":91187,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibVMStatus","contractDependencies":[],"contractKind":"library","documentation":{"id":91175,"nodeType":"StructuredDocumentation","src":"4032:112:162","text":"@title LibVMStatus\n @notice This library contains helper functions for working with the `VMStatus` type."},"fullyImplemented":true,"linearizedBaseContracts":[91187],"name":"LibVMStatus","nameLocation":"4152:11:162","scope":91201,"usedErrors":[]},{"id":91200,"nodeType":"ContractDefinition","src":"4660:402:162","nodes":[{"id":91199,"nodeType":"FunctionDefinition","src":"4916:144:162","nodes":[],"body":{"id":91198,"nodeType":"Block","src":"4989:71:162","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"5008:46:162","statements":[{"nodeType":"YulAssignment","src":"5022:22:162","value":{"name":"_gametype","nodeType":"YulIdentifier","src":"5035:9:162"},"variableNames":[{"name":"gametype_","nodeType":"YulIdentifier","src":"5022:9:162"}]}]},"evmVersion":"london","externalReferences":[{"declaration":91192,"isOffset":false,"isSlot":false,"src":"5035:9:162","valueSize":1},{"declaration":91195,"isOffset":false,"isSlot":false,"src":"5022:9:162","valueSize":1}],"id":91197,"nodeType":"InlineAssembly","src":"4999:55:162"}]},"documentation":{"id":91189,"nodeType":"StructuredDocumentation","src":"4686:225:162","text":"@notice Get the value of a `GameType` type in the form of the underlying uint8.\n @param _gametype The `GameType` type to get the value of.\n @return gametype_ The value of the `GameType` type as a uint8 type."},"implemented":true,"kind":"function","modifiers":[],"name":"raw","nameLocation":"4925:3:162","parameters":{"id":91193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91192,"mutability":"mutable","name":"_gametype","nameLocation":"4938:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4929:18:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"},"typeName":{"id":91191,"nodeType":"UserDefinedTypeName","pathNode":{"id":91190,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":93054,"src":"4929:8:162"},"referencedDeclaration":93054,"src":"4929:8:162","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$93054","typeString":"GameType"}},"visibility":"internal"}],"src":"4928:20:162"},"returnParameters":{"id":91196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91195,"mutability":"mutable","name":"gametype_","nameLocation":"4978:9:162","nodeType":"VariableDeclaration","scope":91199,"src":"4972:15:162","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":91194,"name":"uint8","nodeType":"ElementaryTypeName","src":"4972:5:162","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4971:17:162"},"scope":91200,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGameType","contractDependencies":[],"contractKind":"library","documentation":{"id":91188,"nodeType":"StructuredDocumentation","src":"4548:112:162","text":"@title LibGameType\n @notice This library contains helper functions for working with the `GameType` type."},"fullyImplemented":true,"linearizedBaseContracts":[91200],"name":"LibGameType","nameLocation":"4668:11:162","scope":91201,"usedErrors":[]}],"license":"MIT"},"id":162}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4144:402:172:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;4144:402:172;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"4144:402:172:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LibVMStatus\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains helper functions for working with the `VMStatus` type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/lib/LibUDT.sol\":\"LibVMStatus\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d\",\"dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059\",\"dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa\",\"dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5\",\"dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b\",\"dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/lib/LibUDT.sol":"LibVMStatus"},"evmVersion":"london","libraries":{}},"sources":{"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0x3a324ac81162fed73b9b9e78bef9cb08dd9dd2563289b843c25ca3bc61fab3b6","urls":["bzz-raw://07468a6f4863d2e729cc5348c22ab2c20aa3d0a82ad9ee23f0121a2d0c0e087d","dweb:/ipfs/QmYniMhZBtREzRf6G1fDssLbREFdMBcKCcJ2mt3GbkC87S"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xfeb49b2421dbacc775aa27adf3b7803ebf84b47ac8f5b9fbc372bd9c45b76504","urls":["bzz-raw://95dc9d09fc4dbb4a7d7ffa70cb275277635d4fd1554421a65fd2e1329fddb059","dweb:/ipfs/QmVGHtM3ABWEBFETvAz6sBucirsRfuTrn2CdiUBH1nt3un"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x42cd5a022686434153142b10871ff07e7ed27d32c28d5285f5d2cc6b7de1510c","urls":["bzz-raw://06e460b40977e0668dd27fcc4dd5496e24561e5e9c64cf812e077e2d5db60ffa","dweb:/ipfs/QmTrbrc7ykFhLmtEdKWq9sANRbuDMvjqthUNxtEkW3vTGg"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x42ea16547770cf8b3fcd0190a5fce1e1186defb1a0b641590dfd3a85d339f42f","urls":["bzz-raw://123aa78b13b38b764b1b38373bb6b86a92a8ac24f2135efc54a3599ae915cfe5","dweb:/ipfs/QmSVBonKaGYprZPHbFGcFMK3vBTxk2u7YGxF9VCVVrfhzi"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0x1a0103e1b54c2c982aa97bbf1e9c3c04b18a643c9f7eb9dd1e821594882438c6","urls":["bzz-raw://a895615bd84f9ac5270220c6380f836d0781c7d35a9049de18efa93fcd37352b","dweb:/ipfs/QmNvwHGWU9zBmhv9fweUpmKaAuSD6qKmguMypF4wwbmaFe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"This library contains helper functions for working with the `VMStatus` type."},"devdoc":{"version":1,"kind":"dev","title":"LibVMStatus"},"id":172}

@@ -1,1 +0,1 @@

{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"event","name":"SafeReceived","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeReceived\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"NativeCurrencyPaymentFallback - A contract that has a fallback to accept native currency payments.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/NativeCurrencyPaymentFallback.sol\":\"NativeCurrencyPaymentFallback\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/NativeCurrencyPaymentFallback.sol\":{\"keccak256\":\"0x3ddcd4130c67326033dcf773d2d87d7147e3a8386993ea3ab3f1c38da406adba\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://740a729397b6a0d903f4738a50e856d4e5039555024937b148d97529525dbfa9\",\"dweb:/ipfs/QmQJuNVvHbkeJ6jjd75D8FsZBPXH6neoGBZdQgtsA82E7g\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"SafeReceived","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/NativeCurrencyPaymentFallback.sol":"NativeCurrencyPaymentFallback"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/NativeCurrencyPaymentFallback.sol":{"keccak256":"0x3ddcd4130c67326033dcf773d2d87d7147e3a8386993ea3ab3f1c38da406adba","urls":["bzz-raw://740a729397b6a0d903f4738a50e856d4e5039555024937b148d97529525dbfa9","dweb:/ipfs/QmQJuNVvHbkeJ6jjd75D8FsZBPXH6neoGBZdQgtsA82E7g"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"NativeCurrencyPaymentFallback - A contract that has a fallback to accept native currency payments."},"ast":{"absolutePath":"lib/safe-contracts/contracts/common/NativeCurrencyPaymentFallback.sol","id":57953,"exportedSymbols":{"NativeCurrencyPaymentFallback":[57952]},"nodeType":"SourceUnit","src":"42:541:78","nodes":[{"id":57932,"nodeType":"PragmaDirective","src":"42:31:78","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":57952,"nodeType":"ContractDefinition","src":"233:349:78","nodes":[{"id":57939,"nodeType":"EventDefinition","src":"287:58:78","nodes":[],"anonymous":false,"eventSelector":"3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d","name":"SafeReceived","nameLocation":"293:12:78","parameters":{"id":57938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57935,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"322:6:78","nodeType":"VariableDeclaration","scope":57939,"src":"306:22:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57934,"name":"address","nodeType":"ElementaryTypeName","src":"306:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57937,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"338:5:78","nodeType":"VariableDeclaration","scope":57939,"src":"330:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57936,"name":"uint256","nodeType":"ElementaryTypeName","src":"330:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"305:39:78"}},{"id":57951,"nodeType":"FunctionDefinition","src":"496:84:78","nodes":[],"body":{"id":57950,"nodeType":"Block","src":"523:57:78","nodes":[],"statements":[{"eventCall":{"arguments":[{"expression":{"id":57944,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"551:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":57945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"551:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":57946,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"563:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":57947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"563:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57943,"name":"SafeReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57939,"src":"538:12:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":57948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"538:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57949,"nodeType":"EmitStatement","src":"533:40:78"}]},"documentation":{"id":57940,"nodeType":"StructuredDocumentation","src":"351:140:78","text":" @notice Receive function accepts native currency transactions.\n @dev Emits an event with sender and received value."},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":57941,"nodeType":"ParameterList","parameters":[],"src":"503:2:78"},"returnParameters":{"id":57942,"nodeType":"ParameterList","parameters":[],"src":"523:0:78"},"scope":57952,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":true,"baseContracts":[],"canonicalName":"NativeCurrencyPaymentFallback","contractDependencies":[],"contractKind":"contract","documentation":{"id":57933,"nodeType":"StructuredDocumentation","src":"75:157:78","text":" @title NativeCurrencyPaymentFallback - A contract that has a fallback to accept native currency payments.\n @author Richard Meissner - @rmeissner"},"fullyImplemented":true,"linearizedBaseContracts":[57952],"name":"NativeCurrencyPaymentFallback","nameLocation":"251:29:78","scope":57953,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":78}
{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"event","name":"SafeReceived","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeReceived\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"NativeCurrencyPaymentFallback - A contract that has a fallback to accept native currency payments.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/NativeCurrencyPaymentFallback.sol\":\"NativeCurrencyPaymentFallback\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/NativeCurrencyPaymentFallback.sol\":{\"keccak256\":\"0x3ddcd4130c67326033dcf773d2d87d7147e3a8386993ea3ab3f1c38da406adba\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://740a729397b6a0d903f4738a50e856d4e5039555024937b148d97529525dbfa9\",\"dweb:/ipfs/QmQJuNVvHbkeJ6jjd75D8FsZBPXH6neoGBZdQgtsA82E7g\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"SafeReceived","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/NativeCurrencyPaymentFallback.sol":"NativeCurrencyPaymentFallback"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/NativeCurrencyPaymentFallback.sol":{"keccak256":"0x3ddcd4130c67326033dcf773d2d87d7147e3a8386993ea3ab3f1c38da406adba","urls":["bzz-raw://740a729397b6a0d903f4738a50e856d4e5039555024937b148d97529525dbfa9","dweb:/ipfs/QmQJuNVvHbkeJ6jjd75D8FsZBPXH6neoGBZdQgtsA82E7g"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"NativeCurrencyPaymentFallback - A contract that has a fallback to accept native currency payments."},"id":78}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"initialize","inputs":[{"name":"_init","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slot21Init","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610222806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634351e6b61461003b578063942d341314610050575b600080fd5b61004e6100493660046101eb565b610089565b005b6100777f133700000000000000000000000000000000000000000000000000000000000081565b60405190815260200160405180910390f35b6000548190610100900460ff161580156100aa575060005460ff8083169116105b61013a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547f13370000000000000000000000000000000000000000000000000000000000006015557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316908117610100177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000602082840312156101fd57600080fd5b813560ff8116811461020e57600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"362:458:297:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80634351e6b61461003b578063942d341314610050575b600080fd5b61004e6100493660046101eb565b610089565b005b6100777f133700000000000000000000000000000000000000000000000000000000000081565b60405190815260200160405180910390f35b6000548190610100900460ff161580156100aa575060005460ff8083169116105b61013a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547f13370000000000000000000000000000000000000000000000000000000000006015557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316908117610100177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000602082840312156101fd57600080fd5b813560ff8116811461020e57600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"362:458:297:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:243;;;;;;:::i;:::-;;:::i;:::-;;513:55;;550:18;513:55;;;;;434:25:334;;;422:2;407:18;513:55:297;;;;;;;575:243;4418:13:25;;629:5:297;;4418:13:25;;;;;4417:14;:40;;;;-1:-1:-1;4435:12:25;;:22;;;;:12;;:22;4417:40;4409:99;;;;;;;672:2:334;4409:99:25;;;654:21:334;711:2;691:18;;;684:30;750:34;730:18;;;723:62;821:16;801:18;;;794:44;855:19;;4409:99:25;;;;;;;;4518:12;:22;;550:18:297::1;792:6;:19:::0;4550:20:25;;4518:22;;;4550:20;;;4518:22;4550:20;;4591:21;;;;4627:20;;1027:36:334;;;4627:20:25;;1015:2:334;1000:18;4627:20:25;;;;;;;575:243:297;;:::o;14:269:334:-;71:6;124:2;112:9;103:7;99:23;95:32;92:52;;;140:1;137;130:12;92:52;179:9;166:23;229:4;222:5;218:16;211:5;208:27;198:55;;249:1;246;239:12;198:55;272:5;14:269;-1:-1:-1;;;14:269:334:o","linkReferences":{}},"methodIdentifiers":{"initialize(uint8)":"4351e6b6","slot21Init()":"942d3413"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_init\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slot21Init\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Used for testing a future upgrade beyond the current implementations.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"NextImpl\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/NextImpl.sol\":\"NextImpl\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"test/mocks/NextImpl.sol\":{\"keccak256\":\"0xd5692d8f8b30e747dadb0fe01c67e79a3ed1c554811f5cd136e8a2049eeed510\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0cd0b430b47bbf4eea086f17daaf5b15288a8385f5dfb3cb94eb2de69de90fe2\",\"dweb:/ipfs/QmZd2PupP7fCx4nGyPJLp5r1unhPL94dFSbfH77zmwAC57\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint8","name":"_init","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"slot21Init","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/NextImpl.sol":"NextImpl"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"test/mocks/NextImpl.sol":{"keccak256":"0xd5692d8f8b30e747dadb0fe01c67e79a3ed1c554811f5cd136e8a2049eeed510","urls":["bzz-raw://0cd0b430b47bbf4eea086f17daaf5b15288a8385f5dfb3cb94eb2de69de90fe2","dweb:/ipfs/QmZd2PupP7fCx4nGyPJLp5r1unhPL94dFSbfH77zmwAC57"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":173411,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"slot1","offset":0,"slot":"1","type":"t_bytes32"},{"astId":173415,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"__gap","offset":0,"slot":"2","type":"t_array(t_bytes32)19_storage"},{"astId":173417,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"slot21","offset":0,"slot":"21","type":"t_bytes32"}],"types":{"t_array(t_bytes32)19_storage":{"encoding":"inplace","label":"bytes32[19]","numberOfBytes":"608","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Used for testing a future upgrade beyond the current implementations.","title":"NextImpl"},"ast":{"absolutePath":"test/mocks/NextImpl.sol","id":173438,"exportedSymbols":{"Initializable":[45457],"NextImpl":[173437]},"nodeType":"SourceUnit","src":"32:789:297","nodes":[{"id":173404,"nodeType":"PragmaDirective","src":"32:23:297","nodes":[],"literals":["solidity","0.8",".15"]},{"id":173406,"nodeType":"ImportDirective","src":"57:98:297","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":173438,"sourceUnit":45458,"symbolAliases":[{"foreign":{"id":173405,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45457,"src":"66:13:297","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":173437,"nodeType":"ContractDefinition","src":"362:458:297","nodes":[{"id":173411,"nodeType":"VariableDeclaration","src":"451:13:297","nodes":[],"constant":false,"mutability":"mutable","name":"slot1","nameLocation":"459:5:297","scope":173437,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"451:7:297","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":173415,"nodeType":"VariableDeclaration","src":"470:17:297","nodes":[],"constant":false,"mutability":"mutable","name":"__gap","nameLocation":"482:5:297","scope":173437,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$19_storage","typeString":"bytes32[19]"},"typeName":{"baseType":{"id":173412,"name":"bytes32","nodeType":"ElementaryTypeName","src":"470:7:297","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":173414,"length":{"hexValue":"3139","id":173413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"478:2:297","typeDescriptions":{"typeIdentifier":"t_rational_19_by_1","typeString":"int_const 19"},"value":"19"},"nodeType":"ArrayTypeName","src":"470:11:297","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$19_storage_ptr","typeString":"bytes32[19]"}},"visibility":"internal"},{"id":173417,"nodeType":"VariableDeclaration","src":"493:14:297","nodes":[],"constant":false,"mutability":"mutable","name":"slot21","nameLocation":"501:6:297","scope":173437,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"493:7:297","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":173423,"nodeType":"VariableDeclaration","src":"513:55:297","nodes":[],"constant":true,"functionSelector":"942d3413","mutability":"constant","name":"slot21Init","nameLocation":"537:10:297","scope":173437,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"513:7:297","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"1337","id":173421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"558:9:297","typeDescriptions":{"typeIdentifier":"t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc","typeString":"literal_string hex\"1337\""},"value":"\u00137"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc","typeString":"literal_string hex\"1337\""}],"id":173420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"550:7:297","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":173419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"550:7:297","typeDescriptions":{}}},"id":173422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"550:18:297","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":173436,"nodeType":"FunctionDefinition","src":"575:243:297","nodes":[],"body":{"id":173435,"nodeType":"Block","src":"636:182:297","nodes":[],"statements":[{"expression":{"id":173433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":173431,"name":"slot21","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173417,"src":"792:6:297","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173432,"name":"slot21Init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173423,"src":"801:10:297","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"792:19:297","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":173434,"nodeType":"ExpressionStatement","src":"792:19:297"}]},"functionSelector":"4351e6b6","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":173428,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173425,"src":"629:5:297","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":173429,"kind":"modifierInvocation","modifierName":{"id":173427,"name":"reinitializer","nodeType":"IdentifierPath","referencedDeclaration":45410,"src":"615:13:297"},"nodeType":"ModifierInvocation","src":"615:20:297"}],"name":"initialize","nameLocation":"584:10:297","parameters":{"id":173426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173425,"mutability":"mutable","name":"_init","nameLocation":"601:5:297","nodeType":"VariableDeclaration","scope":173436,"src":"595:11:297","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":173424,"name":"uint8","nodeType":"ElementaryTypeName","src":"595:5:297","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"594:13:297"},"returnParameters":{"id":173430,"nodeType":"ParameterList","parameters":[],"src":"636:0:297"},"scope":173437,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":173408,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":45457,"src":"383:13:297"},"id":173409,"nodeType":"InheritanceSpecifier","src":"383:13:297"}],"canonicalName":"NextImpl","contractDependencies":[],"contractKind":"contract","documentation":{"id":173407,"nodeType":"StructuredDocumentation","src":"157:99:297","text":"@title NextImpl\n @dev Used for testing a future upgrade beyond the current implementations."},"fullyImplemented":true,"linearizedBaseContracts":[173437,45457],"name":"NextImpl","nameLocation":"371:8:297","scope":173438,"usedErrors":[]}],"license":"MIT"},"id":297}
{"abi":[{"type":"function","name":"initialize","inputs":[{"name":"_init","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slot21Init","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610222806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634351e6b61461003b578063942d341314610050575b600080fd5b61004e6100493660046101eb565b610089565b005b6100777f133700000000000000000000000000000000000000000000000000000000000081565b60405190815260200160405180910390f35b6000548190610100900460ff161580156100aa575060005460ff8083169116105b61013a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547f13370000000000000000000000000000000000000000000000000000000000006015557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316908117610100177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000602082840312156101fd57600080fd5b813560ff8116811461020e57600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"362:458:313:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80634351e6b61461003b578063942d341314610050575b600080fd5b61004e6100493660046101eb565b610089565b005b6100777f133700000000000000000000000000000000000000000000000000000000000081565b60405190815260200160405180910390f35b6000548190610100900460ff161580156100aa575060005460ff8083169116105b61013a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547f13370000000000000000000000000000000000000000000000000000000000006015557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316908117610100177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000602082840312156101fd57600080fd5b813560ff8116811461020e57600080fd5b939250505056fea164736f6c634300080f000a","sourceMap":"362:458:313:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:243;;;;;;:::i;:::-;;:::i;:::-;;513:55;;550:18;513:55;;;;;434:25:350;;;422:2;407:18;513:55:313;;;;;;;575:243;4418:13:25;;629:5:313;;4418:13:25;;;;;4417:14;:40;;;;-1:-1:-1;4435:12:25;;:22;;;;:12;;:22;4417:40;4409:99;;;;;;;672:2:350;4409:99:25;;;654:21:350;711:2;691:18;;;684:30;750:34;730:18;;;723:62;821:16;801:18;;;794:44;855:19;;4409:99:25;;;;;;;;4518:12;:22;;550:18:313::1;792:6;:19:::0;4550:20:25;;4518:22;;;4550:20;;;4518:22;4550:20;;4591:21;;;;4627:20;;1027:36:350;;;4627:20:25;;1015:2:350;1000:18;4627:20:25;;;;;;;575:243:313;;:::o;14:269:350:-;71:6;124:2;112:9;103:7;99:23;95:32;92:52;;;140:1;137;130:12;92:52;179:9;166:23;229:4;222:5;218:16;211:5;208:27;198:55;;249:1;246;239:12;198:55;272:5;14:269;-1:-1:-1;;;14:269:350:o","linkReferences":{}},"methodIdentifiers":{"initialize(uint8)":"4351e6b6","slot21Init()":"942d3413"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_init\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slot21Init\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Used for testing a future upgrade beyond the current implementations.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"NextImpl\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/NextImpl.sol\":\"NextImpl\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"test/mocks/NextImpl.sol\":{\"keccak256\":\"0xd5692d8f8b30e747dadb0fe01c67e79a3ed1c554811f5cd136e8a2049eeed510\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0cd0b430b47bbf4eea086f17daaf5b15288a8385f5dfb3cb94eb2de69de90fe2\",\"dweb:/ipfs/QmZd2PupP7fCx4nGyPJLp5r1unhPL94dFSbfH77zmwAC57\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint8","name":"_init","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"slot21Init","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/NextImpl.sol":"NextImpl"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"test/mocks/NextImpl.sol":{"keccak256":"0xd5692d8f8b30e747dadb0fe01c67e79a3ed1c554811f5cd136e8a2049eeed510","urls":["bzz-raw://0cd0b430b47bbf4eea086f17daaf5b15288a8385f5dfb3cb94eb2de69de90fe2","dweb:/ipfs/QmZd2PupP7fCx4nGyPJLp5r1unhPL94dFSbfH77zmwAC57"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":191670,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"slot1","offset":0,"slot":"1","type":"t_bytes32"},{"astId":191674,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"__gap","offset":0,"slot":"2","type":"t_array(t_bytes32)19_storage"},{"astId":191676,"contract":"test/mocks/NextImpl.sol:NextImpl","label":"slot21","offset":0,"slot":"21","type":"t_bytes32"}],"types":{"t_array(t_bytes32)19_storage":{"encoding":"inplace","label":"bytes32[19]","numberOfBytes":"608","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Used for testing a future upgrade beyond the current implementations.","title":"NextImpl"},"id":313}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"185:246:206:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;185:246:206;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"185:246:206:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"OptimistConstants\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for storing Optimist related constants that are shared in multiple contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/op-nft/libraries/OptimistConstants.sol\":\"OptimistConstants\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/op-nft/libraries/OptimistConstants.sol\":{\"keccak256\":\"0x901c8a2a333a668ef2a6336a803dd06fea51d4128a38087af4565bff1ae6db8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87e68615dea2494b1cd8f96d7ad97ccb9556d00539526b53a7ce5314570fc268\",\"dweb:/ipfs/QmZBNNrSVMKz4GDkRJyp5jjV6V4wGN7ySAhDd1pBvbJkS2\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/op-nft/libraries/OptimistConstants.sol":"OptimistConstants"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/op-nft/libraries/OptimistConstants.sol":{"keccak256":"0x901c8a2a333a668ef2a6336a803dd06fea51d4128a38087af4565bff1ae6db8c","urls":["bzz-raw://87e68615dea2494b1cd8f96d7ad97ccb9556d00539526b53a7ce5314570fc268","dweb:/ipfs/QmZBNNrSVMKz4GDkRJyp5jjV6V4wGN7ySAhDd1pBvbJkS2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Library for storing Optimist related constants that are shared in multiple contracts."},"devdoc":{"version":1,"kind":"dev","title":"OptimistConstants"},"ast":{"absolutePath":"src/periphery/op-nft/libraries/OptimistConstants.sol","id":98041,"exportedSymbols":{"OptimistConstants":[98040]},"nodeType":"SourceUnit","src":"32:400:206","nodes":[{"id":98031,"nodeType":"PragmaDirective","src":"32:23:206","nodes":[],"literals":["solidity","0.8",".15"]},{"id":98040,"nodeType":"ContractDefinition","src":"185:246:206","nodes":[{"id":98039,"nodeType":"VariableDeclaration","src":"314:114:206","nodes":[],"constant":true,"documentation":{"id":98033,"nodeType":"StructuredDocumentation","src":"217:92:206","text":"@notice Attestation key issued by OptimistInviter allowing the attested account to mint."},"mutability":"constant","name":"OPTIMIST_CAN_MINT_FROM_INVITE_ATTESTATION_KEY","nameLocation":"340:45:206","scope":98040,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":98034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"314:7:206","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6f7074696d6973742e63616e2d6d696e742d66726f6d2d696e76697465","id":98037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"396:31:206","typeDescriptions":{"typeIdentifier":"t_stringliteral_e36ca07f085876c3aafb3210ed63e326268e1e0da5f31df60d5b064c132175b4","typeString":"literal_string \"optimist.can-mint-from-invite\""},"value":"optimist.can-mint-from-invite"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e36ca07f085876c3aafb3210ed63e326268e1e0da5f31df60d5b064c132175b4","typeString":"literal_string \"optimist.can-mint-from-invite\""}],"id":98036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"388:7:206","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":98035,"name":"bytes32","nodeType":"ElementaryTypeName","src":"388:7:206","typeDescriptions":{}}},"id":98038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"388:40:206","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"OptimistConstants","contractDependencies":[],"contractKind":"library","documentation":{"id":98032,"nodeType":"StructuredDocumentation","src":"57:128:206","text":"@title OptimistConstants\n @notice Library for storing Optimist related constants that are shared in multiple contracts."},"fullyImplemented":true,"linearizedBaseContracts":[98040],"name":"OptimistConstants","nameLocation":"193:17:206","scope":98041,"usedErrors":[]}],"license":"MIT"},"id":206}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"185:246:217:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;185:246:217;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"185:246:217:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"OptimistConstants\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for storing Optimist related constants that are shared in multiple contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/op-nft/libraries/OptimistConstants.sol\":\"OptimistConstants\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/periphery/op-nft/libraries/OptimistConstants.sol\":{\"keccak256\":\"0x901c8a2a333a668ef2a6336a803dd06fea51d4128a38087af4565bff1ae6db8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87e68615dea2494b1cd8f96d7ad97ccb9556d00539526b53a7ce5314570fc268\",\"dweb:/ipfs/QmZBNNrSVMKz4GDkRJyp5jjV6V4wGN7ySAhDd1pBvbJkS2\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/op-nft/libraries/OptimistConstants.sol":"OptimistConstants"},"evmVersion":"london","libraries":{}},"sources":{"src/periphery/op-nft/libraries/OptimistConstants.sol":{"keccak256":"0x901c8a2a333a668ef2a6336a803dd06fea51d4128a38087af4565bff1ae6db8c","urls":["bzz-raw://87e68615dea2494b1cd8f96d7ad97ccb9556d00539526b53a7ce5314570fc268","dweb:/ipfs/QmZBNNrSVMKz4GDkRJyp5jjV6V4wGN7ySAhDd1pBvbJkS2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Library for storing Optimist related constants that are shared in multiple contracts."},"devdoc":{"version":1,"kind":"dev","title":"OptimistConstants"},"id":217}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":"Ownable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"lib/openzeppelin-contracts/contracts/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","id":47779,"exportedSymbols":{"Context":[51634],"Ownable":[47778]},"nodeType":"SourceUnit","src":"102:2521:38","nodes":[{"id":47667,"nodeType":"PragmaDirective","src":"102:23:38","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47668,"nodeType":"ImportDirective","src":"127:30:38","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../utils/Context.sol","nameLocation":"-1:-1:-1","scope":47779,"sourceUnit":51635,"symbolAliases":[],"unitAlias":""},{"id":47778,"nodeType":"ContractDefinition","src":"654:1968:38","nodes":[{"id":47673,"nodeType":"VariableDeclaration","src":"697:22:38","nodes":[],"constant":false,"mutability":"mutable","name":"_owner","nameLocation":"713:6:38","scope":47778,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47672,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":47679,"nodeType":"EventDefinition","src":"726:84:38","nodes":[],"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","name":"OwnershipTransferred","nameLocation":"732:20:38","parameters":{"id":47678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47675,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:38","nodeType":"VariableDeclaration","scope":47679,"src":"753:29:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47674,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47677,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:38","nodeType":"VariableDeclaration","scope":47679,"src":"784:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47676,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:38"}},{"id":47689,"nodeType":"FunctionDefinition","src":"912:63:38","nodes":[],"body":{"id":47688,"nodeType":"Block","src":"926:49:38","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":47684,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51624,"src":"955:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47683,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47777,"src":"936:18:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"936:32:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47687,"nodeType":"ExpressionStatement","src":"936:32:38"}]},"documentation":{"id":47680,"nodeType":"StructuredDocumentation","src":"816:91:38","text":" @dev Initializes the contract setting the deployer as the initial owner."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":47681,"nodeType":"ParameterList","parameters":[],"src":"923:2:38"},"returnParameters":{"id":47682,"nodeType":"ParameterList","parameters":[],"src":"926:0:38"},"scope":47778,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47697,"nodeType":"ModifierDefinition","src":"1063:62:38","nodes":[],"body":{"id":47696,"nodeType":"Block","src":"1084:41:38","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47692,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47720,"src":"1094:11:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1094:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47694,"nodeType":"ExpressionStatement","src":"1094:13:38"},{"id":47695,"nodeType":"PlaceholderStatement","src":"1117:1:38"}]},"documentation":{"id":47690,"nodeType":"StructuredDocumentation","src":"981:77:38","text":" @dev Throws if called by any account other than the owner."},"name":"onlyOwner","nameLocation":"1072:9:38","parameters":{"id":47691,"nodeType":"ParameterList","parameters":[],"src":"1081:2:38"},"virtual":false,"visibility":"internal"},{"id":47706,"nodeType":"FunctionDefinition","src":"1201:85:38","nodes":[],"body":{"id":47705,"nodeType":"Block","src":"1256:30:38","nodes":[],"statements":[{"expression":{"id":47703,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47673,"src":"1273:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47702,"id":47704,"nodeType":"Return","src":"1266:13:38"}]},"documentation":{"id":47698,"nodeType":"StructuredDocumentation","src":"1131:65:38","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:38","parameters":{"id":47699,"nodeType":"ParameterList","parameters":[],"src":"1215:2:38"},"returnParameters":{"id":47702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47706,"src":"1247:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47700,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:38"},"scope":47778,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47720,"nodeType":"FunctionDefinition","src":"1359:130:38","nodes":[],"body":{"id":47719,"nodeType":"Block","src":"1404:85:38","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":47711,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"1422:5:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1422:7:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":47713,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51624,"src":"1433:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1433:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":47716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":47710,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:68:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47718,"nodeType":"ExpressionStatement","src":"1414:68:38"}]},"documentation":{"id":47707,"nodeType":"StructuredDocumentation","src":"1292:62:38","text":" @dev Throws if the sender is not the owner."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:38","parameters":{"id":47708,"nodeType":"ParameterList","parameters":[],"src":"1379:2:38"},"returnParameters":{"id":47709,"nodeType":"ParameterList","parameters":[],"src":"1404:0:38"},"scope":47778,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":47734,"nodeType":"FunctionDefinition","src":"1831:101:38","nodes":[],"body":{"id":47733,"nodeType":"Block","src":"1885:47:38","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":47729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47727,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:38","typeDescriptions":{}}},"id":47730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1914:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47726,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47777,"src":"1895:18:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1895:30:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47732,"nodeType":"ExpressionStatement","src":"1895:30:38"}]},"documentation":{"id":47721,"nodeType":"StructuredDocumentation","src":"1495:331:38","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","implemented":true,"kind":"function","modifiers":[{"id":47724,"kind":"modifierInvocation","modifierName":{"id":47723,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":47697,"src":"1875:9:38"},"nodeType":"ModifierInvocation","src":"1875:9:38"}],"name":"renounceOwnership","nameLocation":"1840:17:38","parameters":{"id":47722,"nodeType":"ParameterList","parameters":[],"src":"1857:2:38"},"returnParameters":{"id":47725,"nodeType":"ParameterList","parameters":[],"src":"1885:0:38"},"scope":47778,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":47757,"nodeType":"FunctionDefinition","src":"2081:198:38","nodes":[],"body":{"id":47756,"nodeType":"Block","src":"2151:128:38","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47743,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47737,"src":"2169:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":47746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2181:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47744,"name":"address","nodeType":"ElementaryTypeName","src":"2181:7:38","typeDescriptions":{}}},"id":47747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2181:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2169:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":47749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:40:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":47742,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2161:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2161:73:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47751,"nodeType":"ExpressionStatement","src":"2161:73:38"},{"expression":{"arguments":[{"id":47753,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47737,"src":"2263:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47752,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47777,"src":"2244:18:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2244:28:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47755,"nodeType":"ExpressionStatement","src":"2244:28:38"}]},"documentation":{"id":47735,"nodeType":"StructuredDocumentation","src":"1938:138:38","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","implemented":true,"kind":"function","modifiers":[{"id":47740,"kind":"modifierInvocation","modifierName":{"id":47739,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":47697,"src":"2141:9:38"},"nodeType":"ModifierInvocation","src":"2141:9:38"}],"name":"transferOwnership","nameLocation":"2090:17:38","parameters":{"id":47738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47737,"mutability":"mutable","name":"newOwner","nameLocation":"2116:8:38","nodeType":"VariableDeclaration","scope":47757,"src":"2108:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47736,"name":"address","nodeType":"ElementaryTypeName","src":"2108:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2107:18:38"},"returnParameters":{"id":47741,"nodeType":"ParameterList","parameters":[],"src":"2151:0:38"},"scope":47778,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":47777,"nodeType":"FunctionDefinition","src":"2433:187:38","nodes":[],"body":{"id":47776,"nodeType":"Block","src":"2496:124:38","nodes":[],"statements":[{"assignments":[47764],"declarations":[{"constant":false,"id":47764,"mutability":"mutable","name":"oldOwner","nameLocation":"2514:8:38","nodeType":"VariableDeclaration","scope":47776,"src":"2506:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47763,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47766,"initialValue":{"id":47765,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47673,"src":"2525:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2506:25:38"},{"expression":{"id":47769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47767,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47673,"src":"2541:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47768,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47760,"src":"2550:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2541:17:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47770,"nodeType":"ExpressionStatement","src":"2541:17:38"},{"eventCall":{"arguments":[{"id":47772,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47764,"src":"2594:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47773,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47760,"src":"2604:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":47771,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47679,"src":"2573:20:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":47774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:40:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47775,"nodeType":"EmitStatement","src":"2568:45:38"}]},"documentation":{"id":47758,"nodeType":"StructuredDocumentation","src":"2285:143:38","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2442:18:38","parameters":{"id":47761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47760,"mutability":"mutable","name":"newOwner","nameLocation":"2469:8:38","nodeType":"VariableDeclaration","scope":47777,"src":"2461:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47759,"name":"address","nodeType":"ElementaryTypeName","src":"2461:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2460:18:38"},"returnParameters":{"id":47762,"nodeType":"ParameterList","parameters":[],"src":"2496:0:38"},"scope":47778,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":47670,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":51634,"src":"683:7:38"},"id":47671,"nodeType":"InheritanceSpecifier","src":"683:7:38"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":47669,"nodeType":"StructuredDocumentation","src":"159:494:38","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"linearizedBaseContracts":[47778,51634],"name":"Ownable","nameLocation":"672:7:38","scope":47779,"usedErrors":[]}],"license":"MIT"},"id":38}
{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":"Ownable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"lib/openzeppelin-contracts/contracts/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"id":38}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":"OwnableUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":46844,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":45185,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":45305,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","id":45307,"exportedSymbols":{"AddressUpgradeable":[46803],"ContextUpgradeable":[46845],"Initializable":[45457],"OwnableUpgradeable":[45306]},"nodeType":"SourceUnit","src":"102:3052:24","nodes":[{"id":45176,"nodeType":"PragmaDirective","src":"102:23:24","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":45177,"nodeType":"ImportDirective","src":"127:41:24","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","nameLocation":"-1:-1:-1","scope":45307,"sourceUnit":46846,"symbolAliases":[],"unitAlias":""},{"id":45178,"nodeType":"ImportDirective","src":"169:42:24","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":45307,"sourceUnit":45458,"symbolAliases":[],"unitAlias":""},{"id":45306,"nodeType":"ContractDefinition","src":"708:2445:24","nodes":[{"id":45185,"nodeType":"VariableDeclaration","src":"788:22:24","nodes":[],"constant":false,"mutability":"mutable","name":"_owner","nameLocation":"804:6:24","scope":45306,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45184,"name":"address","nodeType":"ElementaryTypeName","src":"788:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":45191,"nodeType":"EventDefinition","src":"817:84:24","nodes":[],"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","name":"OwnershipTransferred","nameLocation":"823:20:24","parameters":{"id":45190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45187,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"860:13:24","nodeType":"VariableDeclaration","scope":45191,"src":"844:29:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45186,"name":"address","nodeType":"ElementaryTypeName","src":"844:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45189,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"891:8:24","nodeType":"VariableDeclaration","scope":45191,"src":"875:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45188,"name":"address","nodeType":"ElementaryTypeName","src":"875:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"843:57:24"}},{"id":45201,"nodeType":"FunctionDefinition","src":"1003:95:24","nodes":[],"body":{"id":45200,"nodeType":"Block","src":"1055:43:24","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":45197,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45212,"src":"1065:24:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":45198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1065:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45199,"nodeType":"ExpressionStatement","src":"1065:26:24"}]},"documentation":{"id":45192,"nodeType":"StructuredDocumentation","src":"907:91:24","text":" @dev Initializes the contract setting the deployer as the initial owner."},"implemented":true,"kind":"function","modifiers":[{"id":45195,"kind":"modifierInvocation","modifierName":{"id":45194,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":45420,"src":"1038:16:24"},"nodeType":"ModifierInvocation","src":"1038:16:24"}],"name":"__Ownable_init","nameLocation":"1012:14:24","parameters":{"id":45193,"nodeType":"ParameterList","parameters":[],"src":"1026:2:24"},"returnParameters":{"id":45196,"nodeType":"ParameterList","parameters":[],"src":"1055:0:24"},"scope":45306,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45212,"nodeType":"FunctionDefinition","src":"1104:111:24","nodes":[],"body":{"id":45211,"nodeType":"Block","src":"1166:49:24","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":45207,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46830,"src":"1195:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":45208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1195:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45206,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45300,"src":"1176:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1176:32:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45210,"nodeType":"ExpressionStatement","src":"1176:32:24"}]},"implemented":true,"kind":"function","modifiers":[{"id":45204,"kind":"modifierInvocation","modifierName":{"id":45203,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":45420,"src":"1149:16:24"},"nodeType":"ModifierInvocation","src":"1149:16:24"}],"name":"__Ownable_init_unchained","nameLocation":"1113:24:24","parameters":{"id":45202,"nodeType":"ParameterList","parameters":[],"src":"1137:2:24"},"returnParameters":{"id":45205,"nodeType":"ParameterList","parameters":[],"src":"1166:0:24"},"scope":45306,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45220,"nodeType":"ModifierDefinition","src":"1303:62:24","nodes":[],"body":{"id":45219,"nodeType":"Block","src":"1324:41:24","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":45215,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45243,"src":"1334:11:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":45216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1334:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45217,"nodeType":"ExpressionStatement","src":"1334:13:24"},{"id":45218,"nodeType":"PlaceholderStatement","src":"1357:1:24"}]},"documentation":{"id":45213,"nodeType":"StructuredDocumentation","src":"1221:77:24","text":" @dev Throws if called by any account other than the owner."},"name":"onlyOwner","nameLocation":"1312:9:24","parameters":{"id":45214,"nodeType":"ParameterList","parameters":[],"src":"1321:2:24"},"virtual":false,"visibility":"internal"},{"id":45229,"nodeType":"FunctionDefinition","src":"1441:85:24","nodes":[],"body":{"id":45228,"nodeType":"Block","src":"1496:30:24","nodes":[],"statements":[{"expression":{"id":45226,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45185,"src":"1513:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":45225,"id":45227,"nodeType":"Return","src":"1506:13:24"}]},"documentation":{"id":45221,"nodeType":"StructuredDocumentation","src":"1371:65:24","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1450:5:24","parameters":{"id":45222,"nodeType":"ParameterList","parameters":[],"src":"1455:2:24"},"returnParameters":{"id":45225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45224,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45229,"src":"1487:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45223,"name":"address","nodeType":"ElementaryTypeName","src":"1487:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1486:9:24"},"scope":45306,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":45243,"nodeType":"FunctionDefinition","src":"1599:130:24","nodes":[],"body":{"id":45242,"nodeType":"Block","src":"1644:85:24","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":45234,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45229,"src":"1662:5:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":45235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1662:7:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":45236,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46830,"src":"1673:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":45237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1673:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1662:23:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":45239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1687:34:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":45233,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1654:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":45240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1654:68:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45241,"nodeType":"ExpressionStatement","src":"1654:68:24"}]},"documentation":{"id":45230,"nodeType":"StructuredDocumentation","src":"1532:62:24","text":" @dev Throws if the sender is not the owner."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1608:11:24","parameters":{"id":45231,"nodeType":"ParameterList","parameters":[],"src":"1619:2:24"},"returnParameters":{"id":45232,"nodeType":"ParameterList","parameters":[],"src":"1644:0:24"},"scope":45306,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":45257,"nodeType":"FunctionDefinition","src":"2071:101:24","nodes":[],"body":{"id":45256,"nodeType":"Block","src":"2125:47:24","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":45252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2162:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":45251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2154:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45250,"name":"address","nodeType":"ElementaryTypeName","src":"2154:7:24","typeDescriptions":{}}},"id":45253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2154:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45249,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45300,"src":"2135:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2135:30:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45255,"nodeType":"ExpressionStatement","src":"2135:30:24"}]},"documentation":{"id":45244,"nodeType":"StructuredDocumentation","src":"1735:331:24","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","implemented":true,"kind":"function","modifiers":[{"id":45247,"kind":"modifierInvocation","modifierName":{"id":45246,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":45220,"src":"2115:9:24"},"nodeType":"ModifierInvocation","src":"2115:9:24"}],"name":"renounceOwnership","nameLocation":"2080:17:24","parameters":{"id":45245,"nodeType":"ParameterList","parameters":[],"src":"2097:2:24"},"returnParameters":{"id":45248,"nodeType":"ParameterList","parameters":[],"src":"2125:0:24"},"scope":45306,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":45280,"nodeType":"FunctionDefinition","src":"2321:198:24","nodes":[],"body":{"id":45279,"nodeType":"Block","src":"2391:128:24","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45266,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45260,"src":"2409:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":45269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2429:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":45268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2421:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45267,"name":"address","nodeType":"ElementaryTypeName","src":"2421:7:24","typeDescriptions":{}}},"id":45270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2421:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2409:22:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":45272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2433:40:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":45265,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2401:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":45273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2401:73:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45274,"nodeType":"ExpressionStatement","src":"2401:73:24"},{"expression":{"arguments":[{"id":45276,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45260,"src":"2503:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45275,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45300,"src":"2484:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2484:28:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45278,"nodeType":"ExpressionStatement","src":"2484:28:24"}]},"documentation":{"id":45258,"nodeType":"StructuredDocumentation","src":"2178:138:24","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","implemented":true,"kind":"function","modifiers":[{"id":45263,"kind":"modifierInvocation","modifierName":{"id":45262,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":45220,"src":"2381:9:24"},"nodeType":"ModifierInvocation","src":"2381:9:24"}],"name":"transferOwnership","nameLocation":"2330:17:24","parameters":{"id":45261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45260,"mutability":"mutable","name":"newOwner","nameLocation":"2356:8:24","nodeType":"VariableDeclaration","scope":45280,"src":"2348:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45259,"name":"address","nodeType":"ElementaryTypeName","src":"2348:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2347:18:24"},"returnParameters":{"id":45264,"nodeType":"ParameterList","parameters":[],"src":"2391:0:24"},"scope":45306,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":45300,"nodeType":"FunctionDefinition","src":"2673:187:24","nodes":[],"body":{"id":45299,"nodeType":"Block","src":"2736:124:24","nodes":[],"statements":[{"assignments":[45287],"declarations":[{"constant":false,"id":45287,"mutability":"mutable","name":"oldOwner","nameLocation":"2754:8:24","nodeType":"VariableDeclaration","scope":45299,"src":"2746:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45286,"name":"address","nodeType":"ElementaryTypeName","src":"2746:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45289,"initialValue":{"id":45288,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45185,"src":"2765:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2746:25:24"},{"expression":{"id":45292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45290,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45185,"src":"2781:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45291,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45283,"src":"2790:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2781:17:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":45293,"nodeType":"ExpressionStatement","src":"2781:17:24"},{"eventCall":{"arguments":[{"id":45295,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45287,"src":"2834:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45296,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45283,"src":"2844:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45294,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45191,"src":"2813:20:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2813:40:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45298,"nodeType":"EmitStatement","src":"2808:45:24"}]},"documentation":{"id":45281,"nodeType":"StructuredDocumentation","src":"2525:143:24","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2682:18:24","parameters":{"id":45284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45283,"mutability":"mutable","name":"newOwner","nameLocation":"2709:8:24","nodeType":"VariableDeclaration","scope":45300,"src":"2701:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45282,"name":"address","nodeType":"ElementaryTypeName","src":"2701:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2700:18:24"},"returnParameters":{"id":45285,"nodeType":"ParameterList","parameters":[],"src":"2736:0:24"},"scope":45306,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":45305,"nodeType":"VariableDeclaration","src":"3125:25:24","nodes":[],"constant":false,"documentation":{"id":45301,"nodeType":"StructuredDocumentation","src":"2866:254:24","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"mutability":"mutable","name":"__gap","nameLocation":"3145:5:24","scope":45306,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":45302,"name":"uint256","nodeType":"ElementaryTypeName","src":"3125:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45304,"length":{"hexValue":"3439","id":45303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3133:2:24","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"3125:11:24","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"abstract":true,"baseContracts":[{"baseName":{"id":45180,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":45457,"src":"748:13:24"},"id":45181,"nodeType":"InheritanceSpecifier","src":"748:13:24"},{"baseName":{"id":45182,"name":"ContextUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":46845,"src":"763:18:24"},"id":45183,"nodeType":"InheritanceSpecifier","src":"763:18:24"}],"canonicalName":"OwnableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":45179,"nodeType":"StructuredDocumentation","src":"213:494:24","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"linearizedBaseContracts":[45306,46845,45457],"name":"OwnableUpgradeable","nameLocation":"726:18:24","scope":45307,"usedErrors":[]}],"license":"MIT"},"id":24}
{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":"OwnableUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":46844,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":45185,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":45305,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"id":24}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setOwner","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnerUpdated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","setOwner(address)":"13af4035"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Owned.sol)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple single owner authorization mixin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solmate/src/auth/Owned.sol\":\"Owned\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/auth/Owned.sol\":{\"keccak256\":\"0x7e91c80b0dd1a14a19cb9e661b99924043adab6d9d893bbfcf3a6a3dc23a6743\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://515890d9fc87d6762dae2354a3a0714a26c652f0ea5bb631122be1968ef8c0e9\",\"dweb:/ipfs/QmTRpQ7uoAR1vCACKJm14Ba3oKVLqcA9reTwbHAPxawVpM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnerUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOwner"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/solmate/src/auth/Owned.sol":"Owned"},"evmVersion":"london","libraries":{}},"sources":{"lib/solmate/src/auth/Owned.sol":{"keccak256":"0x7e91c80b0dd1a14a19cb9e661b99924043adab6d9d893bbfcf3a6a3dc23a6743","urls":["bzz-raw://515890d9fc87d6762dae2354a3a0714a26c652f0ea5bb631122be1968ef8c0e9","dweb:/ipfs/QmTRpQ7uoAR1vCACKJm14Ba3oKVLqcA9reTwbHAPxawVpM"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":60084,"contract":"lib/solmate/src/auth/Owned.sol:Owned","label":"owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","notice":"Simple single owner authorization mixin."},"devdoc":{"version":1,"kind":"dev","author":"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Owned.sol)"},"ast":{"absolutePath":"lib/solmate/src/auth/Owned.sol","id":60134,"exportedSymbols":{"Owned":[60133]},"nodeType":"SourceUnit","src":"42:1398:97","nodes":[{"id":60075,"nodeType":"PragmaDirective","src":"42:24:97","nodes":[],"literals":["solidity",">=","0.8",".0"]},{"id":60133,"nodeType":"ContractDefinition","src":"212:1227:97","nodes":[{"id":60082,"nodeType":"EventDefinition","src":"421:67:97","nodes":[],"anonymous":false,"eventSelector":"8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76","name":"OwnerUpdated","nameLocation":"427:12:97","parameters":{"id":60081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60078,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"456:4:97","nodeType":"VariableDeclaration","scope":60082,"src":"440:20:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60077,"name":"address","nodeType":"ElementaryTypeName","src":"440:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60080,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"478:8:97","nodeType":"VariableDeclaration","scope":60082,"src":"462:24:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60079,"name":"address","nodeType":"ElementaryTypeName","src":"462:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"439:48:97"}},{"id":60084,"nodeType":"VariableDeclaration","src":"679:20:97","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"694:5:97","scope":60133,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60083,"name":"address","nodeType":"ElementaryTypeName","src":"679:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":60096,"nodeType":"ModifierDefinition","src":"706:102:97","nodes":[],"body":{"id":60095,"nodeType":"Block","src":"735:73:97","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":60090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":60087,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"753:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":60088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"753:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":60089,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60084,"src":"767:5:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"753:19:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e415554484f52495a4544","id":60091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"774:14:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_269df367cd41cace5897a935d0e0858fe4543b5619d45e09af6b124c1bb3d528","typeString":"literal_string \"UNAUTHORIZED\""},"value":"UNAUTHORIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_269df367cd41cace5897a935d0e0858fe4543b5619d45e09af6b124c1bb3d528","typeString":"literal_string \"UNAUTHORIZED\""}],"id":60086,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"745:7:97","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":60092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"745:44:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60093,"nodeType":"ExpressionStatement","src":"745:44:97"},{"id":60094,"nodeType":"PlaceholderStatement","src":"800:1:97"}]},"name":"onlyOwner","nameLocation":"715:9:97","parameters":{"id":60085,"nodeType":"ParameterList","parameters":[],"src":"724:2:97"},"virtual":true,"visibility":"internal"},{"id":60114,"nodeType":"FunctionDefinition","src":"996:107:97","nodes":[],"body":{"id":60113,"nodeType":"Block","src":"1024:79:97","nodes":[],"statements":[{"expression":{"id":60103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60101,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60084,"src":"1034:5:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":60102,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60098,"src":"1042:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1034:14:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":60104,"nodeType":"ExpressionStatement","src":"1034:14:97"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":60108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1085:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":60107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1077:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60106,"name":"address","nodeType":"ElementaryTypeName","src":"1077:7:97","typeDescriptions":{}}},"id":60109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1077:10:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60110,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60098,"src":"1089:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60105,"name":"OwnerUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60082,"src":"1064:12:97","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":60111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1064:32:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60112,"nodeType":"EmitStatement","src":"1059:37:97"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":60099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60098,"mutability":"mutable","name":"_owner","nameLocation":"1016:6:97","nodeType":"VariableDeclaration","scope":60114,"src":"1008:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60097,"name":"address","nodeType":"ElementaryTypeName","src":"1008:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1007:16:97"},"returnParameters":{"id":60100,"nodeType":"ParameterList","parameters":[],"src":"1024:0:97"},"scope":60133,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":60132,"nodeType":"FunctionDefinition","src":"1293:144:97","nodes":[],"body":{"id":60131,"nodeType":"Block","src":"1354:83:97","nodes":[],"statements":[{"expression":{"id":60123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60121,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60084,"src":"1364:5:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":60122,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60116,"src":"1372:8:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1364:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":60124,"nodeType":"ExpressionStatement","src":"1364:16:97"},{"eventCall":{"arguments":[{"expression":{"id":60126,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1409:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":60127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1409:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60128,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60116,"src":"1421:8:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60125,"name":"OwnerUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60082,"src":"1396:12:97","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":60129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1396:34:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60130,"nodeType":"EmitStatement","src":"1391:39:97"}]},"functionSelector":"13af4035","implemented":true,"kind":"function","modifiers":[{"id":60119,"kind":"modifierInvocation","modifierName":{"id":60118,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":60096,"src":"1344:9:97"},"nodeType":"ModifierInvocation","src":"1344:9:97"}],"name":"setOwner","nameLocation":"1302:8:97","parameters":{"id":60117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60116,"mutability":"mutable","name":"newOwner","nameLocation":"1319:8:97","nodeType":"VariableDeclaration","scope":60132,"src":"1311:16:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60115,"name":"address","nodeType":"ElementaryTypeName","src":"1311:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1310:18:97"},"returnParameters":{"id":60120,"nodeType":"ParameterList","parameters":[],"src":"1354:0:97"},"scope":60133,"stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[],"canonicalName":"Owned","contractDependencies":[],"contractKind":"contract","documentation":{"id":60076,"nodeType":"StructuredDocumentation","src":"68:144:97","text":"@notice Simple single owner authorization mixin.\n @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Owned.sol)"},"fullyImplemented":true,"linearizedBaseContracts":[60133],"name":"Owned","nameLocation":"230:5:97","scope":60134,"usedErrors":[]}],"license":"AGPL-3.0-only"},"id":97}
{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setOwner","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnerUpdated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","setOwner(address)":"13af4035"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Owned.sol)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple single owner authorization mixin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solmate/src/auth/Owned.sol\":\"Owned\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/auth/Owned.sol\":{\"keccak256\":\"0x7e91c80b0dd1a14a19cb9e661b99924043adab6d9d893bbfcf3a6a3dc23a6743\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://515890d9fc87d6762dae2354a3a0714a26c652f0ea5bb631122be1968ef8c0e9\",\"dweb:/ipfs/QmTRpQ7uoAR1vCACKJm14Ba3oKVLqcA9reTwbHAPxawVpM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnerUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOwner"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/solmate/src/auth/Owned.sol":"Owned"},"evmVersion":"london","libraries":{}},"sources":{"lib/solmate/src/auth/Owned.sol":{"keccak256":"0x7e91c80b0dd1a14a19cb9e661b99924043adab6d9d893bbfcf3a6a3dc23a6743","urls":["bzz-raw://515890d9fc87d6762dae2354a3a0714a26c652f0ea5bb631122be1968ef8c0e9","dweb:/ipfs/QmTRpQ7uoAR1vCACKJm14Ba3oKVLqcA9reTwbHAPxawVpM"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":61409,"contract":"lib/solmate/src/auth/Owned.sol:Owned","label":"owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","notice":"Simple single owner authorization mixin."},"devdoc":{"version":1,"kind":"dev","author":"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Owned.sol)"},"id":98}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"173:5641:183:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;173:5641:183;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"173:5641:183:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"DEPLOYER_WHITELIST\":{\"custom:legacy\":\"@notice Address of the DeployerWhitelist predeploy. No longer active.\"},\"L1_BLOCK_NUMBER\":{\"custom:legacy\":\"@notice Address of the L1BlockNumber predeploy. Deprecated. Use the L1Block predeploy instead, which exposes more information about the L1 state.\"},\"L1_MESSAGE_SENDER\":{\"custom:legacy\":\"@notice Address of the L1MessageSender predeploy. Deprecated. Use L2CrossDomainMessenger or access tx.origin (or msg.sender) in a L1 to L2 transaction instead.\"},\"LEGACY_ERC20_ETH\":{\"custom:legacy\":\"@notice Address of the LegacyERC20ETH predeploy. Deprecated. Balances are migrated to the state trie as of the Bedrock upgrade. Contract has been locked and write functions can no longer be accessed.\"},\"LEGACY_MESSAGE_PASSER\":{\"custom:legacy\":\"@notice Address of the LegacyMessagePasser predeploy. Deprecate. Use the updated L2ToL1MessagePasser contract instead.\"}},\"title\":\"Predeploys\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains constant addresses for contracts that are pre-deployed to the L2 system.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Predeploys.sol\":\"Predeploys\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Predeploys.sol":"Predeploys"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Contains constant addresses for contracts that are pre-deployed to the L2 system."},"devdoc":{"version":1,"kind":"dev","title":"Predeploys"},"ast":{"absolutePath":"src/libraries/Predeploys.sol","id":93857,"exportedSymbols":{"Predeploys":[93856]},"nodeType":"SourceUnit","src":"32:5783:183","nodes":[{"id":93727,"nodeType":"PragmaDirective","src":"32:23:183","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":93856,"nodeType":"ContractDefinition","src":"173:5641:183","nodes":[{"id":93732,"nodeType":"VariableDeclaration","src":"260:94:183","nodes":[],"constant":true,"documentation":{"id":93729,"nodeType":"StructuredDocumentation","src":"198:57:183","text":"@notice Address of the L2ToL1MessagePasser predeploy."},"mutability":"constant","name":"L2_TO_L1_MESSAGE_PASSER","nameLocation":"286:23:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93730,"name":"address","nodeType":"ElementaryTypeName","src":"260:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303136","id":93731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"312:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000016"},"visibility":"internal"},{"id":93736,"nodeType":"VariableDeclaration","src":"426:96:183","nodes":[],"constant":true,"documentation":{"id":93733,"nodeType":"StructuredDocumentation","src":"361:60:183","text":"@notice Address of the L2CrossDomainMessenger predeploy."},"mutability":"constant","name":"L2_CROSS_DOMAIN_MESSENGER","nameLocation":"452:25:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93734,"name":"address","nodeType":"ElementaryTypeName","src":"426:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303037","id":93735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"480:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000007"},"visibility":"internal"},{"id":93740,"nodeType":"VariableDeclaration","src":"588:89:183","nodes":[],"constant":true,"documentation":{"id":93737,"nodeType":"StructuredDocumentation","src":"529:54:183","text":"@notice Address of the L2StandardBridge predeploy."},"mutability":"constant","name":"L2_STANDARD_BRIDGE","nameLocation":"614:18:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93738,"name":"address","nodeType":"ElementaryTypeName","src":"588:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303130","id":93739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"635:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000010"},"visibility":"internal"},{"id":93744,"nodeType":"VariableDeclaration","src":"741:87:183","nodes":[],"constant":true,"documentation":{"id":93741,"nodeType":"StructuredDocumentation","src":"684:52:183","text":"@notice Address of the L2ERC721Bridge predeploy."},"mutability":"constant","name":"L2_ERC721_BRIDGE","nameLocation":"767:16:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93742,"name":"address","nodeType":"ElementaryTypeName","src":"741:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303134","id":93743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"786:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000014"},"visibility":"internal"},{"id":93747,"nodeType":"VariableDeclaration","src":"897:91:183","nodes":[],"constant":true,"mutability":"constant","name":"SEQUENCER_FEE_WALLET","nameLocation":"923:20:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93745,"name":"address","nodeType":"ElementaryTypeName","src":"897:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303131","id":93746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"946:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000011"},"visibility":"internal"},{"id":93751,"nodeType":"VariableDeclaration","src":"1066:102:183","nodes":[],"constant":true,"documentation":{"id":93748,"nodeType":"StructuredDocumentation","src":"995:66:183","text":"@notice Address of the OptimismMintableERC20Factory predeploy."},"mutability":"constant","name":"OPTIMISM_MINTABLE_ERC20_FACTORY","nameLocation":"1092:31:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93749,"name":"address","nodeType":"ElementaryTypeName","src":"1066:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303132","id":93750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1126:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000012"},"visibility":"internal"},{"id":93755,"nodeType":"VariableDeclaration","src":"1247:103:183","nodes":[],"constant":true,"documentation":{"id":93752,"nodeType":"StructuredDocumentation","src":"1175:67:183","text":"@notice Address of the OptimismMintableERC721Factory predeploy."},"mutability":"constant","name":"OPTIMISM_MINTABLE_ERC721_FACTORY","nameLocation":"1273:32:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93753,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303137","id":93754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1308:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000017"},"visibility":"internal"},{"id":93759,"nodeType":"VariableDeclaration","src":"1407:90:183","nodes":[],"constant":true,"documentation":{"id":93756,"nodeType":"StructuredDocumentation","src":"1357:45:183","text":"@notice Address of the L1Block predeploy."},"mutability":"constant","name":"L1_BLOCK_ATTRIBUTES","nameLocation":"1433:19:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93757,"name":"address","nodeType":"ElementaryTypeName","src":"1407:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303135","id":93758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1455:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000015"},"visibility":"internal"},{"id":93763,"nodeType":"VariableDeclaration","src":"1667:87:183","nodes":[],"constant":true,"documentation":{"id":93760,"nodeType":"StructuredDocumentation","src":"1504:158:183","text":"@notice Address of the GasPriceOracle predeploy. Includes fee information\n and helpers for computing the L1 portion of the transaction fee."},"mutability":"constant","name":"GAS_PRICE_ORACLE","nameLocation":"1693:16:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93761,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303046","id":93762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1712:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x420000000000000000000000000000000000000F"},"visibility":"internal"},{"id":93767,"nodeType":"VariableDeclaration","src":"1968:88:183","nodes":[],"constant":true,"documentation":{"id":93764,"nodeType":"StructuredDocumentation","src":"1761:202:183","text":"@custom:legacy\n @notice Address of the L1MessageSender predeploy. Deprecated. Use L2CrossDomainMessenger\n or access tx.origin (or msg.sender) in a L1 to L2 transaction instead."},"mutability":"constant","name":"L1_MESSAGE_SENDER","nameLocation":"1994:17:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93765,"name":"address","nodeType":"ElementaryTypeName","src":"1968:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303031","id":93766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2014:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000001"},"visibility":"internal"},{"id":93771,"nodeType":"VariableDeclaration","src":"2164:89:183","nodes":[],"constant":true,"documentation":{"id":93768,"nodeType":"StructuredDocumentation","src":"2063:96:183","text":"@custom:legacy\n @notice Address of the DeployerWhitelist predeploy. No longer active."},"mutability":"constant","name":"DEPLOYER_WHITELIST","nameLocation":"2190:18:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93769,"name":"address","nodeType":"ElementaryTypeName","src":"2164:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303032","id":93770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2211:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000002"},"visibility":"internal"},{"id":93775,"nodeType":"VariableDeclaration","src":"2317:76:183","nodes":[],"constant":true,"documentation":{"id":93772,"nodeType":"StructuredDocumentation","src":"2260:52:183","text":"@notice Address of the canonical WETH9 contract."},"mutability":"constant","name":"WETH9","nameLocation":"2343:5:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93773,"name":"address","nodeType":"ElementaryTypeName","src":"2317:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303036","id":93774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2351:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000006"},"visibility":"internal"},{"id":93779,"nodeType":"VariableDeclaration","src":"2663:87:183","nodes":[],"constant":true,"documentation":{"id":93776,"nodeType":"StructuredDocumentation","src":"2400:258:183","text":"@custom:legacy\n @notice Address of the LegacyERC20ETH predeploy. Deprecated. Balances are migrated to the\n state trie as of the Bedrock upgrade. Contract has been locked and write functions\n can no longer be accessed."},"mutability":"constant","name":"LEGACY_ERC20_ETH","nameLocation":"2689:16:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93777,"name":"address","nodeType":"ElementaryTypeName","src":"2663:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307844656164446541646465416464454164646561644445614444454164446561444465414430303030","id":93778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2708:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000"},"visibility":"internal"},{"id":93783,"nodeType":"VariableDeclaration","src":"2950:86:183","nodes":[],"constant":true,"documentation":{"id":93780,"nodeType":"StructuredDocumentation","src":"2757:188:183","text":"@custom:legacy\n @notice Address of the L1BlockNumber predeploy. Deprecated. Use the L1Block predeploy\n instead, which exposes more information about the L1 state."},"mutability":"constant","name":"L1_BLOCK_NUMBER","nameLocation":"2976:15:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93781,"name":"address","nodeType":"ElementaryTypeName","src":"2950:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303133","id":93782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2994:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000013"},"visibility":"internal"},{"id":93787,"nodeType":"VariableDeclaration","src":"3209:92:183","nodes":[],"constant":true,"documentation":{"id":93784,"nodeType":"StructuredDocumentation","src":"3043:161:183","text":"@custom:legacy\n @notice Address of the LegacyMessagePasser predeploy. Deprecate. Use the updated\n L2ToL1MessagePasser contract instead."},"mutability":"constant","name":"LEGACY_MESSAGE_PASSER","nameLocation":"3235:21:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93785,"name":"address","nodeType":"ElementaryTypeName","src":"3209:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303030","id":93786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3259:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000000"},"visibility":"internal"},{"id":93791,"nodeType":"VariableDeclaration","src":"3361:82:183","nodes":[],"constant":true,"documentation":{"id":93788,"nodeType":"StructuredDocumentation","src":"3308:48:183","text":"@notice Address of the ProxyAdmin predeploy."},"mutability":"constant","name":"PROXY_ADMIN","nameLocation":"3387:11:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93789,"name":"address","nodeType":"ElementaryTypeName","src":"3361:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303138","id":93790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3401:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000018"},"visibility":"internal"},{"id":93795,"nodeType":"VariableDeclaration","src":"3505:85:183","nodes":[],"constant":true,"documentation":{"id":93792,"nodeType":"StructuredDocumentation","src":"3450:50:183","text":"@notice Address of the BaseFeeVault predeploy."},"mutability":"constant","name":"BASE_FEE_VAULT","nameLocation":"3531:14:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93793,"name":"address","nodeType":"ElementaryTypeName","src":"3505:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303139","id":93794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3548:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000019"},"visibility":"internal"},{"id":93799,"nodeType":"VariableDeclaration","src":"3650:83:183","nodes":[],"constant":true,"documentation":{"id":93796,"nodeType":"StructuredDocumentation","src":"3597:48:183","text":"@notice Address of the L1FeeVault predeploy."},"mutability":"constant","name":"L1_FEE_VAULT","nameLocation":"3676:12:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93797,"name":"address","nodeType":"ElementaryTypeName","src":"3650:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303141","id":93798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3691:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x420000000000000000000000000000000000001A"},"visibility":"internal"},{"id":93803,"nodeType":"VariableDeclaration","src":"3798:87:183","nodes":[],"constant":true,"documentation":{"id":93800,"nodeType":"StructuredDocumentation","src":"3740:53:183","text":"@notice Address of the GovernanceToken predeploy."},"mutability":"constant","name":"GOVERNANCE_TOKEN","nameLocation":"3824:16:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93801,"name":"address","nodeType":"ElementaryTypeName","src":"3798:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303432","id":93802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3843:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000042"},"visibility":"internal"},{"id":93807,"nodeType":"VariableDeclaration","src":"3949:86:183","nodes":[],"constant":true,"documentation":{"id":93804,"nodeType":"StructuredDocumentation","src":"3892:52:183","text":"@notice Address of the SchemaRegistry predeploy."},"mutability":"constant","name":"SCHEMA_REGISTRY","nameLocation":"3975:15:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93805,"name":"address","nodeType":"ElementaryTypeName","src":"3949:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303230","id":93806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3993:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000020"},"visibility":"internal"},{"id":93811,"nodeType":"VariableDeclaration","src":"4088:74:183","nodes":[],"constant":true,"documentation":{"id":93808,"nodeType":"StructuredDocumentation","src":"4042:41:183","text":"@notice Address of the EAS predeploy."},"mutability":"constant","name":"EAS","nameLocation":"4114:3:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93809,"name":"address","nodeType":"ElementaryTypeName","src":"4088:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303231","id":93810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4120:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000021"},"visibility":"internal"},{"id":93815,"nodeType":"VariableDeclaration","src":"4222:81:183","nodes":[],"constant":true,"documentation":{"id":93812,"nodeType":"StructuredDocumentation","src":"4169:48:183","text":"@notice Address of the MultiCall3 predeploy."},"mutability":"constant","name":"MultiCall3","nameLocation":"4248:10:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93813,"name":"address","nodeType":"ElementaryTypeName","src":"4222:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":93814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4261:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":93819,"nodeType":"VariableDeclaration","src":"4368:86:183","nodes":[],"constant":true,"documentation":{"id":93816,"nodeType":"StructuredDocumentation","src":"4310:53:183","text":"@notice Address of the Create2Deployer predeploy."},"mutability":"constant","name":"Create2Deployer","nameLocation":"4394:15:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93817,"name":"address","nodeType":"ElementaryTypeName","src":"4368:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307831336230443835436342386266383630623662373941463330323966434130383141453962654632","id":93818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4412:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2"},"visibility":"internal"},{"id":93823,"nodeType":"VariableDeclaration","src":"4513:80:183","nodes":[],"constant":true,"documentation":{"id":93820,"nodeType":"StructuredDocumentation","src":"4461:47:183","text":"@notice Address of the Safe_v130 predeploy."},"mutability":"constant","name":"Safe_v130","nameLocation":"4539:9:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93821,"name":"address","nodeType":"ElementaryTypeName","src":"4513:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307836396634443137383865333963383738393343393830633036456446346237663638366532393338","id":93822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4551:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x69f4D1788e39c87893C980c06EdF4b7f686e2938"},"visibility":"internal"},{"id":93827,"nodeType":"VariableDeclaration","src":"4654:82:183","nodes":[],"constant":true,"documentation":{"id":93824,"nodeType":"StructuredDocumentation","src":"4600:49:183","text":"@notice Address of the SafeL2_v130 predeploy."},"mutability":"constant","name":"SafeL2_v130","nameLocation":"4680:11:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93825,"name":"address","nodeType":"ElementaryTypeName","src":"4654:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307866623162666643396437333942384435323044614633376446363636646134433638373139314541","id":93826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4694:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfb1bffC9d739B8D520DaF37dF666da4C687191EA"},"visibility":"internal"},{"id":93831,"nodeType":"VariableDeclaration","src":"4808:93:183","nodes":[],"constant":true,"documentation":{"id":93828,"nodeType":"StructuredDocumentation","src":"4743:60:183","text":"@notice Address of the MultiSendCallOnly_v130 predeploy."},"mutability":"constant","name":"MultiSendCallOnly_v130","nameLocation":"4834:22:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93829,"name":"address","nodeType":"ElementaryTypeName","src":"4808:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307841316461624546333362334238326337383134423644383241373965353046344143343431303242","id":93830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4859:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B"},"visibility":"internal"},{"id":93835,"nodeType":"VariableDeclaration","src":"4971:91:183","nodes":[],"constant":true,"documentation":{"id":93832,"nodeType":"StructuredDocumentation","src":"4908:58:183","text":"@notice Address of the SafeSingletonFactory predeploy."},"mutability":"constant","name":"SafeSingletonFactory","nameLocation":"4997:20:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93833,"name":"address","nodeType":"ElementaryTypeName","src":"4971:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307839313464374665633661614338636435343265373242636137384233303635306434353634336437","id":93834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5020:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7"},"visibility":"internal"},{"id":93839,"nodeType":"VariableDeclaration","src":"5140:99:183","nodes":[],"constant":true,"documentation":{"id":93836,"nodeType":"StructuredDocumentation","src":"5069:66:183","text":"@notice Address of the DeterministicDeploymentProxy predeploy."},"mutability":"constant","name":"DeterministicDeploymentProxy","nameLocation":"5166:28:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93837,"name":"address","nodeType":"ElementaryTypeName","src":"5140:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":93838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5197:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":93843,"nodeType":"VariableDeclaration","src":"5303:85:183","nodes":[],"constant":true,"documentation":{"id":93840,"nodeType":"StructuredDocumentation","src":"5246:52:183","text":"@notice Address of the MultiSend_v130 predeploy."},"mutability":"constant","name":"MultiSend_v130","nameLocation":"5329:14:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93841,"name":"address","nodeType":"ElementaryTypeName","src":"5303:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307839393837333942466441416464653743393333423934326136383035333933333039386639454461","id":93842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5346:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x998739BFdAAdde7C933B942a68053933098f9EDa"},"visibility":"internal"},{"id":93847,"nodeType":"VariableDeclaration","src":"5445:78:183","nodes":[],"constant":true,"documentation":{"id":93844,"nodeType":"StructuredDocumentation","src":"5395:45:183","text":"@notice Address of the Permit2 predeploy."},"mutability":"constant","name":"Permit2","nameLocation":"5471:7:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93845,"name":"address","nodeType":"ElementaryTypeName","src":"5445:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030323244343733303330463131366444454539463642343361433738424133","id":93846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5481:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000022D473030F116dDEE9F6B43aC78BA3"},"visibility":"internal"},{"id":93851,"nodeType":"VariableDeclaration","src":"5586:84:183","nodes":[],"constant":true,"documentation":{"id":93848,"nodeType":"StructuredDocumentation","src":"5530:51:183","text":"@notice Address of the SenderCreator predeploy."},"mutability":"constant","name":"SenderCreator","nameLocation":"5612:13:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93849,"name":"address","nodeType":"ElementaryTypeName","src":"5586:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307837666339383433306541456462623630373042333542333944373938373235303439303838333438","id":93850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5628:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x7fc98430eAEdbb6070B35B39D798725049088348"},"visibility":"internal"},{"id":93855,"nodeType":"VariableDeclaration","src":"5730:81:183","nodes":[],"constant":true,"documentation":{"id":93852,"nodeType":"StructuredDocumentation","src":"5677:48:183","text":"@notice Address of the EntryPoint predeploy."},"mutability":"constant","name":"EntryPoint","nameLocation":"5756:10:183","scope":93856,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93853,"name":"address","nodeType":"ElementaryTypeName","src":"5730:7:183","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835464631333744346230464443443439446341333063374346353745353738613032366432373839","id":93854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5769:42:183","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Predeploys","contractDependencies":[],"contractKind":"library","documentation":{"id":93728,"nodeType":"StructuredDocumentation","src":"57:116:183","text":"@title Predeploys\n @notice Contains constant addresses for contracts that are pre-deployed to the L2 system."},"fullyImplemented":true,"linearizedBaseContracts":[93856],"name":"Predeploys","nameLocation":"181:10:183","scope":93857,"usedErrors":[]}],"license":"MIT"},"id":183}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"173:5641:194:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;173:5641:194;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"173:5641:194:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"DEPLOYER_WHITELIST\":{\"custom:legacy\":\"@notice Address of the DeployerWhitelist predeploy. No longer active.\"},\"L1_BLOCK_NUMBER\":{\"custom:legacy\":\"@notice Address of the L1BlockNumber predeploy. Deprecated. Use the L1Block predeploy instead, which exposes more information about the L1 state.\"},\"L1_MESSAGE_SENDER\":{\"custom:legacy\":\"@notice Address of the L1MessageSender predeploy. Deprecated. Use L2CrossDomainMessenger or access tx.origin (or msg.sender) in a L1 to L2 transaction instead.\"},\"LEGACY_ERC20_ETH\":{\"custom:legacy\":\"@notice Address of the LegacyERC20ETH predeploy. Deprecated. Balances are migrated to the state trie as of the Bedrock upgrade. Contract has been locked and write functions can no longer be accessed.\"},\"LEGACY_MESSAGE_PASSER\":{\"custom:legacy\":\"@notice Address of the LegacyMessagePasser predeploy. Deprecate. Use the updated L2ToL1MessagePasser contract instead.\"}},\"title\":\"Predeploys\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains constant addresses for contracts that are pre-deployed to the L2 system.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Predeploys.sol\":\"Predeploys\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Predeploys.sol":"Predeploys"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Contains constant addresses for contracts that are pre-deployed to the L2 system."},"devdoc":{"version":1,"kind":"dev","title":"Predeploys"},"id":194}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"173:5641:14:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;173:5641:14;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"173:5641:14:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"DEPLOYER_WHITELIST\":{\"custom:legacy\":\"@notice Address of the DeployerWhitelist predeploy. No longer active.\"},\"L1_BLOCK_NUMBER\":{\"custom:legacy\":\"@notice Address of the L1BlockNumber predeploy. Deprecated. Use the L1Block predeploy instead, which exposes more information about the L1 state.\"},\"L1_MESSAGE_SENDER\":{\"custom:legacy\":\"@notice Address of the L1MessageSender predeploy. Deprecated. Use L2CrossDomainMessenger or access tx.origin (or msg.sender) in a L1 to L2 transaction instead.\"},\"LEGACY_ERC20_ETH\":{\"custom:legacy\":\"@notice Address of the LegacyERC20ETH predeploy. Deprecated. Balances are migrated to the state trie as of the Bedrock upgrade. Contract has been locked and write functions can no longer be accessed.\"},\"LEGACY_MESSAGE_PASSER\":{\"custom:legacy\":\"@notice Address of the LegacyMessagePasser predeploy. Deprecate. Use the updated L2ToL1MessagePasser contract instead.\"}},\"title\":\"Predeploys\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains constant addresses for contracts that are pre-deployed to the L2 system.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Predeploys.sol\":\"Predeploys\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Predeploys.sol":"Predeploys"},"evmVersion":"paris","libraries":{}},"sources":{"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Contains constant addresses for contracts that are pre-deployed to the L2 system."},"devdoc":{"version":1,"kind":"dev","title":"Predeploys"},"ast":{"absolutePath":"src/libraries/Predeploys.sol","id":4607,"exportedSymbols":{"Predeploys":[4606]},"nodeType":"SourceUnit","src":"32:5783:14","nodes":[{"id":4477,"nodeType":"PragmaDirective","src":"32:23:14","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":4606,"nodeType":"ContractDefinition","src":"173:5641:14","nodes":[{"id":4482,"nodeType":"VariableDeclaration","src":"260:94:14","nodes":[],"constant":true,"documentation":{"id":4479,"nodeType":"StructuredDocumentation","src":"198:57:14","text":"@notice Address of the L2ToL1MessagePasser predeploy."},"mutability":"constant","name":"L2_TO_L1_MESSAGE_PASSER","nameLocation":"286:23:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4480,"name":"address","nodeType":"ElementaryTypeName","src":"260:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303136","id":4481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"312:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000016"},"visibility":"internal"},{"id":4486,"nodeType":"VariableDeclaration","src":"426:96:14","nodes":[],"constant":true,"documentation":{"id":4483,"nodeType":"StructuredDocumentation","src":"361:60:14","text":"@notice Address of the L2CrossDomainMessenger predeploy."},"mutability":"constant","name":"L2_CROSS_DOMAIN_MESSENGER","nameLocation":"452:25:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4484,"name":"address","nodeType":"ElementaryTypeName","src":"426:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303037","id":4485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"480:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000007"},"visibility":"internal"},{"id":4490,"nodeType":"VariableDeclaration","src":"588:89:14","nodes":[],"constant":true,"documentation":{"id":4487,"nodeType":"StructuredDocumentation","src":"529:54:14","text":"@notice Address of the L2StandardBridge predeploy."},"mutability":"constant","name":"L2_STANDARD_BRIDGE","nameLocation":"614:18:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4488,"name":"address","nodeType":"ElementaryTypeName","src":"588:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303130","id":4489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"635:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000010"},"visibility":"internal"},{"id":4494,"nodeType":"VariableDeclaration","src":"741:87:14","nodes":[],"constant":true,"documentation":{"id":4491,"nodeType":"StructuredDocumentation","src":"684:52:14","text":"@notice Address of the L2ERC721Bridge predeploy."},"mutability":"constant","name":"L2_ERC721_BRIDGE","nameLocation":"767:16:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4492,"name":"address","nodeType":"ElementaryTypeName","src":"741:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303134","id":4493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"786:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000014"},"visibility":"internal"},{"id":4497,"nodeType":"VariableDeclaration","src":"897:91:14","nodes":[],"constant":true,"mutability":"constant","name":"SEQUENCER_FEE_WALLET","nameLocation":"923:20:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4495,"name":"address","nodeType":"ElementaryTypeName","src":"897:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303131","id":4496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"946:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000011"},"visibility":"internal"},{"id":4501,"nodeType":"VariableDeclaration","src":"1066:102:14","nodes":[],"constant":true,"documentation":{"id":4498,"nodeType":"StructuredDocumentation","src":"995:66:14","text":"@notice Address of the OptimismMintableERC20Factory predeploy."},"mutability":"constant","name":"OPTIMISM_MINTABLE_ERC20_FACTORY","nameLocation":"1092:31:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4499,"name":"address","nodeType":"ElementaryTypeName","src":"1066:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303132","id":4500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1126:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000012"},"visibility":"internal"},{"id":4505,"nodeType":"VariableDeclaration","src":"1247:103:14","nodes":[],"constant":true,"documentation":{"id":4502,"nodeType":"StructuredDocumentation","src":"1175:67:14","text":"@notice Address of the OptimismMintableERC721Factory predeploy."},"mutability":"constant","name":"OPTIMISM_MINTABLE_ERC721_FACTORY","nameLocation":"1273:32:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4503,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303137","id":4504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1308:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000017"},"visibility":"internal"},{"id":4509,"nodeType":"VariableDeclaration","src":"1407:90:14","nodes":[],"constant":true,"documentation":{"id":4506,"nodeType":"StructuredDocumentation","src":"1357:45:14","text":"@notice Address of the L1Block predeploy."},"mutability":"constant","name":"L1_BLOCK_ATTRIBUTES","nameLocation":"1433:19:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4507,"name":"address","nodeType":"ElementaryTypeName","src":"1407:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303135","id":4508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1455:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000015"},"visibility":"internal"},{"id":4513,"nodeType":"VariableDeclaration","src":"1667:87:14","nodes":[],"constant":true,"documentation":{"id":4510,"nodeType":"StructuredDocumentation","src":"1504:158:14","text":"@notice Address of the GasPriceOracle predeploy. Includes fee information\n and helpers for computing the L1 portion of the transaction fee."},"mutability":"constant","name":"GAS_PRICE_ORACLE","nameLocation":"1693:16:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4511,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303046","id":4512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1712:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x420000000000000000000000000000000000000F"},"visibility":"internal"},{"id":4517,"nodeType":"VariableDeclaration","src":"1968:88:14","nodes":[],"constant":true,"documentation":{"id":4514,"nodeType":"StructuredDocumentation","src":"1761:202:14","text":"@custom:legacy\n @notice Address of the L1MessageSender predeploy. Deprecated. Use L2CrossDomainMessenger\n or access tx.origin (or msg.sender) in a L1 to L2 transaction instead."},"mutability":"constant","name":"L1_MESSAGE_SENDER","nameLocation":"1994:17:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4515,"name":"address","nodeType":"ElementaryTypeName","src":"1968:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303031","id":4516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2014:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000001"},"visibility":"internal"},{"id":4521,"nodeType":"VariableDeclaration","src":"2164:89:14","nodes":[],"constant":true,"documentation":{"id":4518,"nodeType":"StructuredDocumentation","src":"2063:96:14","text":"@custom:legacy\n @notice Address of the DeployerWhitelist predeploy. No longer active."},"mutability":"constant","name":"DEPLOYER_WHITELIST","nameLocation":"2190:18:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4519,"name":"address","nodeType":"ElementaryTypeName","src":"2164:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303032","id":4520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2211:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000002"},"visibility":"internal"},{"id":4525,"nodeType":"VariableDeclaration","src":"2317:76:14","nodes":[],"constant":true,"documentation":{"id":4522,"nodeType":"StructuredDocumentation","src":"2260:52:14","text":"@notice Address of the canonical WETH9 contract."},"mutability":"constant","name":"WETH9","nameLocation":"2343:5:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4523,"name":"address","nodeType":"ElementaryTypeName","src":"2317:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303036","id":4524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2351:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000006"},"visibility":"internal"},{"id":4529,"nodeType":"VariableDeclaration","src":"2663:87:14","nodes":[],"constant":true,"documentation":{"id":4526,"nodeType":"StructuredDocumentation","src":"2400:258:14","text":"@custom:legacy\n @notice Address of the LegacyERC20ETH predeploy. Deprecated. Balances are migrated to the\n state trie as of the Bedrock upgrade. Contract has been locked and write functions\n can no longer be accessed."},"mutability":"constant","name":"LEGACY_ERC20_ETH","nameLocation":"2689:16:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4527,"name":"address","nodeType":"ElementaryTypeName","src":"2663:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307844656164446541646465416464454164646561644445614444454164446561444465414430303030","id":4528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2708:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000"},"visibility":"internal"},{"id":4533,"nodeType":"VariableDeclaration","src":"2950:86:14","nodes":[],"constant":true,"documentation":{"id":4530,"nodeType":"StructuredDocumentation","src":"2757:188:14","text":"@custom:legacy\n @notice Address of the L1BlockNumber predeploy. Deprecated. Use the L1Block predeploy\n instead, which exposes more information about the L1 state."},"mutability":"constant","name":"L1_BLOCK_NUMBER","nameLocation":"2976:15:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4531,"name":"address","nodeType":"ElementaryTypeName","src":"2950:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303133","id":4532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2994:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000013"},"visibility":"internal"},{"id":4537,"nodeType":"VariableDeclaration","src":"3209:92:14","nodes":[],"constant":true,"documentation":{"id":4534,"nodeType":"StructuredDocumentation","src":"3043:161:14","text":"@custom:legacy\n @notice Address of the LegacyMessagePasser predeploy. Deprecate. Use the updated\n L2ToL1MessagePasser contract instead."},"mutability":"constant","name":"LEGACY_MESSAGE_PASSER","nameLocation":"3235:21:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4535,"name":"address","nodeType":"ElementaryTypeName","src":"3209:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303030","id":4536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3259:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000000"},"visibility":"internal"},{"id":4541,"nodeType":"VariableDeclaration","src":"3361:82:14","nodes":[],"constant":true,"documentation":{"id":4538,"nodeType":"StructuredDocumentation","src":"3308:48:14","text":"@notice Address of the ProxyAdmin predeploy."},"mutability":"constant","name":"PROXY_ADMIN","nameLocation":"3387:11:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4539,"name":"address","nodeType":"ElementaryTypeName","src":"3361:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303138","id":4540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3401:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000018"},"visibility":"internal"},{"id":4545,"nodeType":"VariableDeclaration","src":"3505:85:14","nodes":[],"constant":true,"documentation":{"id":4542,"nodeType":"StructuredDocumentation","src":"3450:50:14","text":"@notice Address of the BaseFeeVault predeploy."},"mutability":"constant","name":"BASE_FEE_VAULT","nameLocation":"3531:14:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4543,"name":"address","nodeType":"ElementaryTypeName","src":"3505:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303139","id":4544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3548:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000019"},"visibility":"internal"},{"id":4549,"nodeType":"VariableDeclaration","src":"3650:83:14","nodes":[],"constant":true,"documentation":{"id":4546,"nodeType":"StructuredDocumentation","src":"3597:48:14","text":"@notice Address of the L1FeeVault predeploy."},"mutability":"constant","name":"L1_FEE_VAULT","nameLocation":"3676:12:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4547,"name":"address","nodeType":"ElementaryTypeName","src":"3650:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303141","id":4548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3691:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x420000000000000000000000000000000000001A"},"visibility":"internal"},{"id":4553,"nodeType":"VariableDeclaration","src":"3798:87:14","nodes":[],"constant":true,"documentation":{"id":4550,"nodeType":"StructuredDocumentation","src":"3740:53:14","text":"@notice Address of the GovernanceToken predeploy."},"mutability":"constant","name":"GOVERNANCE_TOKEN","nameLocation":"3824:16:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4551,"name":"address","nodeType":"ElementaryTypeName","src":"3798:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303432","id":4552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3843:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000042"},"visibility":"internal"},{"id":4557,"nodeType":"VariableDeclaration","src":"3949:86:14","nodes":[],"constant":true,"documentation":{"id":4554,"nodeType":"StructuredDocumentation","src":"3892:52:14","text":"@notice Address of the SchemaRegistry predeploy."},"mutability":"constant","name":"SCHEMA_REGISTRY","nameLocation":"3975:15:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4555,"name":"address","nodeType":"ElementaryTypeName","src":"3949:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303230","id":4556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3993:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000020"},"visibility":"internal"},{"id":4561,"nodeType":"VariableDeclaration","src":"4088:74:14","nodes":[],"constant":true,"documentation":{"id":4558,"nodeType":"StructuredDocumentation","src":"4042:41:14","text":"@notice Address of the EAS predeploy."},"mutability":"constant","name":"EAS","nameLocation":"4114:3:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4559,"name":"address","nodeType":"ElementaryTypeName","src":"4088:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303231","id":4560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4120:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000021"},"visibility":"internal"},{"id":4565,"nodeType":"VariableDeclaration","src":"4222:81:14","nodes":[],"constant":true,"documentation":{"id":4562,"nodeType":"StructuredDocumentation","src":"4169:48:14","text":"@notice Address of the MultiCall3 predeploy."},"mutability":"constant","name":"MultiCall3","nameLocation":"4248:10:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4563,"name":"address","nodeType":"ElementaryTypeName","src":"4222:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":4564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4261:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":4569,"nodeType":"VariableDeclaration","src":"4368:86:14","nodes":[],"constant":true,"documentation":{"id":4566,"nodeType":"StructuredDocumentation","src":"4310:53:14","text":"@notice Address of the Create2Deployer predeploy."},"mutability":"constant","name":"Create2Deployer","nameLocation":"4394:15:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4567,"name":"address","nodeType":"ElementaryTypeName","src":"4368:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307831336230443835436342386266383630623662373941463330323966434130383141453962654632","id":4568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4412:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2"},"visibility":"internal"},{"id":4573,"nodeType":"VariableDeclaration","src":"4513:80:14","nodes":[],"constant":true,"documentation":{"id":4570,"nodeType":"StructuredDocumentation","src":"4461:47:14","text":"@notice Address of the Safe_v130 predeploy."},"mutability":"constant","name":"Safe_v130","nameLocation":"4539:9:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4571,"name":"address","nodeType":"ElementaryTypeName","src":"4513:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307836396634443137383865333963383738393343393830633036456446346237663638366532393338","id":4572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4551:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x69f4D1788e39c87893C980c06EdF4b7f686e2938"},"visibility":"internal"},{"id":4577,"nodeType":"VariableDeclaration","src":"4654:82:14","nodes":[],"constant":true,"documentation":{"id":4574,"nodeType":"StructuredDocumentation","src":"4600:49:14","text":"@notice Address of the SafeL2_v130 predeploy."},"mutability":"constant","name":"SafeL2_v130","nameLocation":"4680:11:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4575,"name":"address","nodeType":"ElementaryTypeName","src":"4654:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307866623162666643396437333942384435323044614633376446363636646134433638373139314541","id":4576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4694:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfb1bffC9d739B8D520DaF37dF666da4C687191EA"},"visibility":"internal"},{"id":4581,"nodeType":"VariableDeclaration","src":"4808:93:14","nodes":[],"constant":true,"documentation":{"id":4578,"nodeType":"StructuredDocumentation","src":"4743:60:14","text":"@notice Address of the MultiSendCallOnly_v130 predeploy."},"mutability":"constant","name":"MultiSendCallOnly_v130","nameLocation":"4834:22:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4579,"name":"address","nodeType":"ElementaryTypeName","src":"4808:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307841316461624546333362334238326337383134423644383241373965353046344143343431303242","id":4580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4859:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B"},"visibility":"internal"},{"id":4585,"nodeType":"VariableDeclaration","src":"4971:91:14","nodes":[],"constant":true,"documentation":{"id":4582,"nodeType":"StructuredDocumentation","src":"4908:58:14","text":"@notice Address of the SafeSingletonFactory predeploy."},"mutability":"constant","name":"SafeSingletonFactory","nameLocation":"4997:20:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4583,"name":"address","nodeType":"ElementaryTypeName","src":"4971:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307839313464374665633661614338636435343265373242636137384233303635306434353634336437","id":4584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5020:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7"},"visibility":"internal"},{"id":4589,"nodeType":"VariableDeclaration","src":"5140:99:14","nodes":[],"constant":true,"documentation":{"id":4586,"nodeType":"StructuredDocumentation","src":"5069:66:14","text":"@notice Address of the DeterministicDeploymentProxy predeploy."},"mutability":"constant","name":"DeterministicDeploymentProxy","nameLocation":"5166:28:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4587,"name":"address","nodeType":"ElementaryTypeName","src":"5140:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":4588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5197:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":4593,"nodeType":"VariableDeclaration","src":"5303:85:14","nodes":[],"constant":true,"documentation":{"id":4590,"nodeType":"StructuredDocumentation","src":"5246:52:14","text":"@notice Address of the MultiSend_v130 predeploy."},"mutability":"constant","name":"MultiSend_v130","nameLocation":"5329:14:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4591,"name":"address","nodeType":"ElementaryTypeName","src":"5303:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307839393837333942466441416464653743393333423934326136383035333933333039386639454461","id":4592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5346:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x998739BFdAAdde7C933B942a68053933098f9EDa"},"visibility":"internal"},{"id":4597,"nodeType":"VariableDeclaration","src":"5445:78:14","nodes":[],"constant":true,"documentation":{"id":4594,"nodeType":"StructuredDocumentation","src":"5395:45:14","text":"@notice Address of the Permit2 predeploy."},"mutability":"constant","name":"Permit2","nameLocation":"5471:7:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4595,"name":"address","nodeType":"ElementaryTypeName","src":"5445:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030323244343733303330463131366444454539463642343361433738424133","id":4596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5481:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000022D473030F116dDEE9F6B43aC78BA3"},"visibility":"internal"},{"id":4601,"nodeType":"VariableDeclaration","src":"5586:84:14","nodes":[],"constant":true,"documentation":{"id":4598,"nodeType":"StructuredDocumentation","src":"5530:51:14","text":"@notice Address of the SenderCreator predeploy."},"mutability":"constant","name":"SenderCreator","nameLocation":"5612:13:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4599,"name":"address","nodeType":"ElementaryTypeName","src":"5586:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307837666339383433306541456462623630373042333542333944373938373235303439303838333438","id":4600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5628:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x7fc98430eAEdbb6070B35B39D798725049088348"},"visibility":"internal"},{"id":4605,"nodeType":"VariableDeclaration","src":"5730:81:14","nodes":[],"constant":true,"documentation":{"id":4602,"nodeType":"StructuredDocumentation","src":"5677:48:14","text":"@notice Address of the EntryPoint predeploy."},"mutability":"constant","name":"EntryPoint","nameLocation":"5756:10:14","scope":4606,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4603,"name":"address","nodeType":"ElementaryTypeName","src":"5730:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835464631333744346230464443443439446341333063374346353745353738613032366432373839","id":4604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5769:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Predeploys","contractDependencies":[],"contractKind":"library","documentation":{"id":4478,"nodeType":"StructuredDocumentation","src":"57:116:14","text":"@title Predeploys\n @notice Contains constant addresses for contracts that are pre-deployed to the L2 system."},"fullyImplemented":true,"linearizedBaseContracts":[4606],"name":"Predeploys","nameLocation":"181:10:14","scope":4607,"usedErrors":[]}],"license":"MIT"},"id":14}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"173:5641:14:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;173:5641:14;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"173:5641:14:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"DEPLOYER_WHITELIST\":{\"custom:legacy\":\"@notice Address of the DeployerWhitelist predeploy. No longer active.\"},\"L1_BLOCK_NUMBER\":{\"custom:legacy\":\"@notice Address of the L1BlockNumber predeploy. Deprecated. Use the L1Block predeploy instead, which exposes more information about the L1 state.\"},\"L1_MESSAGE_SENDER\":{\"custom:legacy\":\"@notice Address of the L1MessageSender predeploy. Deprecated. Use L2CrossDomainMessenger or access tx.origin (or msg.sender) in a L1 to L2 transaction instead.\"},\"LEGACY_ERC20_ETH\":{\"custom:legacy\":\"@notice Address of the LegacyERC20ETH predeploy. Deprecated. Balances are migrated to the state trie as of the Bedrock upgrade. Contract has been locked and write functions can no longer be accessed.\"},\"LEGACY_MESSAGE_PASSER\":{\"custom:legacy\":\"@notice Address of the LegacyMessagePasser predeploy. Deprecate. Use the updated L2ToL1MessagePasser contract instead.\"}},\"title\":\"Predeploys\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains constant addresses for contracts that are pre-deployed to the L2 system.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Predeploys.sol\":\"Predeploys\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Predeploys.sol":"Predeploys"},"evmVersion":"paris","libraries":{}},"sources":{"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Contains constant addresses for contracts that are pre-deployed to the L2 system."},"devdoc":{"version":1,"kind":"dev","title":"Predeploys"},"id":14}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"162:2613:147:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:2613:147;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"162:2613:147:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"PreimageKeyLib\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Shared utilities for localizing local keys in the preimage oracle.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/cannon/PreimageKeyLib.sol\":\"PreimageKeyLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/PreimageKeyLib.sol\":{\"keccak256\":\"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc\",\"dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/cannon/PreimageKeyLib.sol":"PreimageKeyLib"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/PreimageKeyLib.sol":{"keccak256":"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85","urls":["bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc","dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Shared utilities for localizing local keys in the preimage oracle."},"devdoc":{"version":1,"kind":"dev","title":"PreimageKeyLib"},"ast":{"absolutePath":"src/cannon/PreimageKeyLib.sol","id":86418,"exportedSymbols":{"PreimageKeyLib":[86417]},"nodeType":"SourceUnit","src":"32:2744:147","nodes":[{"id":86374,"nodeType":"PragmaDirective","src":"32:23:147","nodes":[],"literals":["solidity","0.8",".15"]},{"id":86417,"nodeType":"ContractDefinition","src":"162:2613:147","nodes":[{"id":86394,"nodeType":"FunctionDefinition","src":"552:449:147","nodes":[],"body":{"id":86393,"nodeType":"Block","src":"651:350:147","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"670:221:147","statements":[{"nodeType":"YulAssignment","src":"824:57:147","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"839:3:147","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"844:1:147","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"835:3:147"},"nodeType":"YulFunctionCall","src":"835:11:147"},{"arguments":[{"name":"_ident","nodeType":"YulIdentifier","src":"852:6:147"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"868:3:147","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"873:4:147","type":"","value":"0xFF"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"864:3:147"},"nodeType":"YulFunctionCall","src":"864:14:147"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"860:3:147"},"nodeType":"YulFunctionCall","src":"860:19:147"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"848:3:147"},"nodeType":"YulFunctionCall","src":"848:32:147"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"832:2:147"},"nodeType":"YulFunctionCall","src":"832:49:147"},"variableNames":[{"name":"key_","nodeType":"YulIdentifier","src":"824:4:147"}]}]},"evmVersion":"london","externalReferences":[{"declaration":86378,"isOffset":false,"isSlot":false,"src":"852:6:147","valueSize":1},{"declaration":86383,"isOffset":false,"isSlot":false,"src":"824:4:147","valueSize":1}],"id":86385,"nodeType":"InlineAssembly","src":"661:230:147"},{"expression":{"id":86391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86386,"name":"key_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86383,"src":"958:4:147","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":86388,"name":"key_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86383,"src":"974:4:147","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86389,"name":"_localContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86380,"src":"980:13:147","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":86387,"name":"localize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86406,"src":"965:8:147","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) view returns (bytes32)"}},"id":86390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"965:29:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"958:36:147","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":86392,"nodeType":"ExpressionStatement","src":"958:36:147"}]},"documentation":{"id":86376,"nodeType":"StructuredDocumentation","src":"191:356:147","text":"@notice Generates a context-specific local key for the given local data identifier.\n @dev See `localize` for a description of the localization operation.\n @param _ident The identifier of the local data. [0, 32) bytes in size.\n @param _localContext The local context for the key.\n @return key_ The context-specific local key."},"implemented":true,"kind":"function","modifiers":[],"name":"localizeIdent","nameLocation":"561:13:147","parameters":{"id":86381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86378,"mutability":"mutable","name":"_ident","nameLocation":"583:6:147","nodeType":"VariableDeclaration","scope":86394,"src":"575:14:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86377,"name":"uint256","nodeType":"ElementaryTypeName","src":"575:7:147","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86380,"mutability":"mutable","name":"_localContext","nameLocation":"599:13:147","nodeType":"VariableDeclaration","scope":86394,"src":"591:21:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"591:7:147","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"574:39:147"},"returnParameters":{"id":86384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86383,"mutability":"mutable","name":"key_","nameLocation":"645:4:147","nodeType":"VariableDeclaration","scope":86394,"src":"637:12:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86382,"name":"bytes32","nodeType":"ElementaryTypeName","src":"637:7:147","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"636:14:147"},"scope":86417,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86406,"nodeType":"FunctionDefinition","src":"1455:676:147","nodes":[],"body":{"id":86405,"nodeType":"Block","src":"1556:575:147","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1575:550:147","statements":[{"nodeType":"YulVariableDeclaration","src":"1659:22:147","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1676:4:147","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1670:5:147"},"nodeType":"YulFunctionCall","src":"1670:11:147"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"1663:3:147","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1794:1:147","type":"","value":"0"},{"name":"_key","nodeType":"YulIdentifier","src":"1797:4:147"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1787:6:147"},"nodeType":"YulFunctionCall","src":"1787:15:147"},"nodeType":"YulExpressionStatement","src":"1787:15:147"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1822:4:147","type":"","value":"0x20"},{"arguments":[],"functionName":{"name":"caller","nodeType":"YulIdentifier","src":"1828:6:147"},"nodeType":"YulFunctionCall","src":"1828:8:147"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1815:6:147"},"nodeType":"YulFunctionCall","src":"1815:22:147"},"nodeType":"YulExpressionStatement","src":"1815:22:147"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1857:4:147","type":"","value":"0x40"},{"name":"_localContext","nodeType":"YulIdentifier","src":"1863:13:147"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1850:6:147"},"nodeType":"YulFunctionCall","src":"1850:27:147"},"nodeType":"YulExpressionStatement","src":"1850:27:147"},{"nodeType":"YulAssignment","src":"1959:78:147","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1993:1:147","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1996:4:147","type":"","value":"0x60"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1983:9:147"},"nodeType":"YulFunctionCall","src":"1983:18:147"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2011:3:147","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"2016:4:147","type":"","value":"0xFF"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2007:3:147"},"nodeType":"YulFunctionCall","src":"2007:14:147"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2003:3:147"},"nodeType":"YulFunctionCall","src":"2003:19:147"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1979:3:147"},"nodeType":"YulFunctionCall","src":"1979:44:147"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2029:3:147","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"2034:1:147","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2025:3:147"},"nodeType":"YulFunctionCall","src":"2025:11:147"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1976:2:147"},"nodeType":"YulFunctionCall","src":"1976:61:147"},"variableNames":[{"name":"localizedKey_","nodeType":"YulIdentifier","src":"1959:13:147"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2105:4:147","type":"","value":"0x40"},{"name":"ptr","nodeType":"YulIdentifier","src":"2111:3:147"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2098:6:147"},"nodeType":"YulFunctionCall","src":"2098:17:147"},"nodeType":"YulExpressionStatement","src":"2098:17:147"}]},"evmVersion":"london","externalReferences":[{"declaration":86397,"isOffset":false,"isSlot":false,"src":"1797:4:147","valueSize":1},{"declaration":86399,"isOffset":false,"isSlot":false,"src":"1863:13:147","valueSize":1},{"declaration":86402,"isOffset":false,"isSlot":false,"src":"1959:13:147","valueSize":1}],"id":86404,"nodeType":"InlineAssembly","src":"1566:559:147"}]},"documentation":{"id":86395,"nodeType":"StructuredDocumentation","src":"1007:443:147","text":"@notice Localizes a given local data key for the caller's context.\n @dev The localization operation is defined as:\n localize(k) = H(k .. sender .. local_context) & ~(0xFF << 248) | (0x01 << 248)\n where H is the Keccak-256 hash function.\n @param _key The local data key to localize.\n @param _localContext The local context for the key.\n @return localizedKey_ The localized local data key."},"implemented":true,"kind":"function","modifiers":[],"name":"localize","nameLocation":"1464:8:147","parameters":{"id":86400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86397,"mutability":"mutable","name":"_key","nameLocation":"1481:4:147","nodeType":"VariableDeclaration","scope":86406,"src":"1473:12:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86396,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1473:7:147","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86399,"mutability":"mutable","name":"_localContext","nameLocation":"1495:13:147","nodeType":"VariableDeclaration","scope":86406,"src":"1487:21:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86398,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1487:7:147","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1472:37:147"},"returnParameters":{"id":86403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86402,"mutability":"mutable","name":"localizedKey_","nameLocation":"1541:13:147","nodeType":"VariableDeclaration","scope":86406,"src":"1533:21:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86401,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1533:7:147","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1532:23:147"},"scope":86417,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86416,"nodeType":"FunctionDefinition","src":"2293:480:147","nodes":[],"body":{"id":86415,"nodeType":"Block","src":"2384:389:147","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2403:364:147","statements":[{"nodeType":"YulVariableDeclaration","src":"2465:28:147","value":{"arguments":[{"name":"_preimage","nodeType":"YulIdentifier","src":"2483:9:147"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2477:5:147"},"nodeType":"YulFunctionCall","src":"2477:16:147"},"variables":[{"name":"size","nodeType":"YulTypedName","src":"2469:4:147","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2583:46:147","value":{"arguments":[{"arguments":[{"name":"_preimage","nodeType":"YulIdentifier","src":"2606:9:147"},{"kind":"number","nodeType":"YulLiteral","src":"2617:4:147","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2602:3:147"},"nodeType":"YulFunctionCall","src":"2602:20:147"},{"name":"size","nodeType":"YulIdentifier","src":"2624:4:147"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2592:9:147"},"nodeType":"YulFunctionCall","src":"2592:37:147"},"variables":[{"name":"h","nodeType":"YulTypedName","src":"2587:1:147","type":""}]},{"nodeType":"YulAssignment","src":"2705:52:147","value":{"arguments":[{"arguments":[{"name":"h","nodeType":"YulIdentifier","src":"2720:1:147"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2731:3:147","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"2736:4:147","type":"","value":"0xFF"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2727:3:147"},"nodeType":"YulFunctionCall","src":"2727:14:147"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2723:3:147"},"nodeType":"YulFunctionCall","src":"2723:19:147"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2716:3:147"},"nodeType":"YulFunctionCall","src":"2716:27:147"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2749:3:147","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"2754:1:147","type":"","value":"2"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2745:3:147"},"nodeType":"YulFunctionCall","src":"2745:11:147"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2713:2:147"},"nodeType":"YulFunctionCall","src":"2713:44:147"},"variableNames":[{"name":"key_","nodeType":"YulIdentifier","src":"2705:4:147"}]}]},"evmVersion":"london","externalReferences":[{"declaration":86409,"isOffset":false,"isSlot":false,"src":"2483:9:147","valueSize":1},{"declaration":86409,"isOffset":false,"isSlot":false,"src":"2606:9:147","valueSize":1},{"declaration":86412,"isOffset":false,"isSlot":false,"src":"2705:4:147","valueSize":1}],"id":86414,"nodeType":"InlineAssembly","src":"2394:373:147"}]},"documentation":{"id":86407,"nodeType":"StructuredDocumentation","src":"2137:151:147","text":"@notice Computes and returns the key for a global keccak pre-image.\n @param _preimage The pre-image.\n @return key_ The pre-image key."},"implemented":true,"kind":"function","modifiers":[],"name":"keccak256PreimageKey","nameLocation":"2302:20:147","parameters":{"id":86410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86409,"mutability":"mutable","name":"_preimage","nameLocation":"2336:9:147","nodeType":"VariableDeclaration","scope":86416,"src":"2323:22:147","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86408,"name":"bytes","nodeType":"ElementaryTypeName","src":"2323:5:147","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2322:24:147"},"returnParameters":{"id":86413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86412,"mutability":"mutable","name":"key_","nameLocation":"2378:4:147","nodeType":"VariableDeclaration","scope":86416,"src":"2370:12:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2370:7:147","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2369:14:147"},"scope":86417,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"PreimageKeyLib","contractDependencies":[],"contractKind":"library","documentation":{"id":86375,"nodeType":"StructuredDocumentation","src":"57:105:147","text":"@title PreimageKeyLib\n @notice Shared utilities for localizing local keys in the preimage oracle."},"fullyImplemented":true,"linearizedBaseContracts":[86417],"name":"PreimageKeyLib","nameLocation":"170:14:147","scope":86418,"usedErrors":[]}],"license":"MIT"},"id":147}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"162:2613:152:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:2613:152;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"162:2613:152:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"PreimageKeyLib\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Shared utilities for localizing local keys in the preimage oracle.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/cannon/PreimageKeyLib.sol\":\"PreimageKeyLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/cannon/PreimageKeyLib.sol\":{\"keccak256\":\"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc\",\"dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/cannon/PreimageKeyLib.sol":"PreimageKeyLib"},"evmVersion":"london","libraries":{}},"sources":{"src/cannon/PreimageKeyLib.sol":{"keccak256":"0x082e910b8a3f523ac0920f0bc5a09e127fe9e48127694e5a0efce820d4654e85","urls":["bzz-raw://bce8c13880b75f2d8561188279b2333c455c831216fc29375570d9c93767c6cc","dweb:/ipfs/QmRmworxD49TBLcLS81sNUEfkQVgg3tf2L6pUDCduDJvWm"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Shared utilities for localizing local keys in the preimage oracle."},"devdoc":{"version":1,"kind":"dev","title":"PreimageKeyLib"},"id":152}

@@ -1,1 +0,1 @@

{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":"Initializable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47877,"contract":"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":47880,"contract":"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol:Initializable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\"MyToken\", \"MTK\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\"MyToken\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol","id":48022,"exportedSymbols":{"Address":[51612],"Initializable":[48021]},"nodeType":"SourceUnit","src":"113:5535:41","nodes":[{"id":47872,"nodeType":"PragmaDirective","src":"113:23:41","nodes":[],"literals":["solidity","^","0.8",".2"]},{"id":47873,"nodeType":"ImportDirective","src":"138:33:41","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"../../utils/Address.sol","nameLocation":"-1:-1:-1","scope":48022,"sourceUnit":51613,"symbolAliases":[],"unitAlias":""},{"id":48021,"nodeType":"ContractDefinition","src":"2372:3275:41","nodes":[{"id":47877,"nodeType":"VariableDeclaration","src":"2524:26:41","nodes":[],"constant":false,"documentation":{"id":47875,"nodeType":"StructuredDocumentation","src":"2410:109:41","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"mutability":"mutable","name":"_initialized","nameLocation":"2538:12:41","scope":48021,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47876,"name":"uint8","nodeType":"ElementaryTypeName","src":"2524:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"id":47880,"nodeType":"VariableDeclaration","src":"2653:26:41","nodes":[],"constant":false,"documentation":{"id":47878,"nodeType":"StructuredDocumentation","src":"2557:91:41","text":" @dev Indicates that the contract is in the process of being initialized."},"mutability":"mutable","name":"_initializing","nameLocation":"2666:13:41","scope":48021,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47879,"name":"bool","nodeType":"ElementaryTypeName","src":"2653:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":47885,"nodeType":"EventDefinition","src":"2781:33:41","nodes":[],"anonymous":false,"documentation":{"id":47881,"nodeType":"StructuredDocumentation","src":"2686:90:41","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498","name":"Initialized","nameLocation":"2787:11:41","parameters":{"id":47884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47883,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2805:7:41","nodeType":"VariableDeclaration","scope":47885,"src":"2799:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47882,"name":"uint8","nodeType":"ElementaryTypeName","src":"2799:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2798:15:41"}},{"id":47941,"nodeType":"ModifierDefinition","src":"3067:495:41","nodes":[],"body":{"id":47940,"nodeType":"Block","src":"3090:472:41","nodes":[],"statements":[{"assignments":[47889],"declarations":[{"constant":false,"id":47889,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3105:14:41","nodeType":"VariableDeclaration","scope":47940,"src":"3100:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47888,"name":"bool","nodeType":"ElementaryTypeName","src":"3100:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":47892,"initialValue":{"id":47891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3122:14:41","subExpression":{"id":47890,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47880,"src":"3123:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3100:36:41"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47894,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47889,"src":"3168:14:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":47897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47895,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47877,"src":"3186:12:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":47896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3201:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3186:16:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3168:34:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":47899,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3167:36:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3208:34:41","subExpression":{"arguments":[{"arguments":[{"id":47904,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3236:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$48021","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$48021","typeString":"contract Initializable"}],"id":47903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3228:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47902,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:41","typeDescriptions":{}}},"id":47905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3228:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47900,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51612,"src":"3209:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$51612_$","typeString":"type(library Address)"}},"id":47901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":51335,"src":"3209:18:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":47906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3209:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":47910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47908,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47877,"src":"3246:12:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":47909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3262:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3246:17:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3208:55:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":47912,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3207:57:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3167:97:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":47914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3278:48:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":47893,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3146:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3146:190:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47916,"nodeType":"ExpressionStatement","src":"3146:190:41"},{"expression":{"id":47919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47917,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47877,"src":"3346:12:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":47918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3361:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3346:16:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":47920,"nodeType":"ExpressionStatement","src":"3346:16:41"},{"condition":{"id":47921,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47889,"src":"3376:14:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47927,"nodeType":"IfStatement","src":"3372:65:41","trueBody":{"id":47926,"nodeType":"Block","src":"3392:45:41","statements":[{"expression":{"id":47924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47922,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47880,"src":"3406:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":47923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3422:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3406:20:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47925,"nodeType":"ExpressionStatement","src":"3406:20:41"}]}},{"id":47928,"nodeType":"PlaceholderStatement","src":"3446:1:41"},{"condition":{"id":47929,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47889,"src":"3461:14:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47939,"nodeType":"IfStatement","src":"3457:99:41","trueBody":{"id":47938,"nodeType":"Block","src":"3477:79:41","statements":[{"expression":{"id":47932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47930,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47880,"src":"3491:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":47931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3507:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3491:21:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47933,"nodeType":"ExpressionStatement","src":"3491:21:41"},{"eventCall":{"arguments":[{"hexValue":"31","id":47935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3543:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":47934,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47885,"src":"3531:11:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":47936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3531:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47937,"nodeType":"EmitStatement","src":"3526:19:41"}]}}]},"documentation":{"id":47886,"nodeType":"StructuredDocumentation","src":"2820:242:41","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts. Equivalent to `reinitializer(1)`."},"name":"initializer","nameLocation":"3076:11:41","parameters":{"id":47887,"nodeType":"ParameterList","parameters":[],"src":"3087:2:41"},"virtual":false,"visibility":"internal"},{"id":47974,"nodeType":"ModifierDefinition","src":"4339:293:41","nodes":[],"body":{"id":47973,"nodeType":"Block","src":"4377:255:41","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4395:14:41","subExpression":{"id":47947,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47880,"src":"4396:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":47951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47949,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47877,"src":"4413:12:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47950,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47944,"src":"4428:7:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4413:22:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4395:40:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":47953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4437:48:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":47946,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4387:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4387:99:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47955,"nodeType":"ExpressionStatement","src":"4387:99:41"},{"expression":{"id":47958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47956,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47877,"src":"4496:12:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47957,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47944,"src":"4511:7:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4496:22:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":47959,"nodeType":"ExpressionStatement","src":"4496:22:41"},{"expression":{"id":47962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47960,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47880,"src":"4528:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":47961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4544:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4528:20:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47963,"nodeType":"ExpressionStatement","src":"4528:20:41"},{"id":47964,"nodeType":"PlaceholderStatement","src":"4558:1:41"},{"expression":{"id":47967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47965,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47880,"src":"4569:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":47966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4585:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"4569:21:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47968,"nodeType":"ExpressionStatement","src":"4569:21:41"},{"eventCall":{"arguments":[{"id":47970,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47944,"src":"4617:7:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":47969,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47885,"src":"4605:11:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":47971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4605:20:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47972,"nodeType":"EmitStatement","src":"4600:25:41"}]},"documentation":{"id":47942,"nodeType":"StructuredDocumentation","src":"3568:766:41","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n `initializer` is equivalent to `reinitializer(1)`, so a reinitializer may be used after the original\n initialization step. This is essential to configure modules that are added through upgrades and that require\n initialization.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator."},"name":"reinitializer","nameLocation":"4348:13:41","parameters":{"id":47945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47944,"mutability":"mutable","name":"version","nameLocation":"4368:7:41","nodeType":"VariableDeclaration","scope":47974,"src":"4362:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47943,"name":"uint8","nodeType":"ElementaryTypeName","src":"4362:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4361:15:41"},"virtual":false,"visibility":"internal"},{"id":47984,"nodeType":"ModifierDefinition","src":"4842:125:41","nodes":[],"body":{"id":47983,"nodeType":"Block","src":"4870:97:41","nodes":[],"statements":[{"expression":{"arguments":[{"id":47978,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47880,"src":"4888:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":47979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4903:45:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""},"value":"Initializable: contract is not initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""}],"id":47977,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4880:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4880:69:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47981,"nodeType":"ExpressionStatement","src":"4880:69:41"},{"id":47982,"nodeType":"PlaceholderStatement","src":"4959:1:41"}]},"documentation":{"id":47975,"nodeType":"StructuredDocumentation","src":"4638:199:41","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"name":"onlyInitializing","nameLocation":"4851:16:41","parameters":{"id":47976,"nodeType":"ParameterList","parameters":[],"src":"4867:2:41"},"virtual":false,"visibility":"internal"},{"id":48020,"nodeType":"FunctionDefinition","src":"5366:279:41","nodes":[],"body":{"id":48019,"nodeType":"Block","src":"5415:230:41","nodes":[],"statements":[{"expression":{"arguments":[{"id":47990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5433:14:41","subExpression":{"id":47989,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47880,"src":"5434:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":47991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5449:41:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""},"value":"Initializable: contract is initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""}],"id":47988,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5425:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5425:66:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47993,"nodeType":"ExpressionStatement","src":"5425:66:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":48000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47994,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47877,"src":"5505:12:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"id":47997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5525:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":47996,"name":"uint8","nodeType":"ElementaryTypeName","src":"5525:5:41","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":47995,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5520:4:41","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":47998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5520:11:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":47999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5520:15:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5505:30:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48018,"nodeType":"IfStatement","src":"5501:138:41","trueBody":{"id":48017,"nodeType":"Block","src":"5537:102:41","statements":[{"expression":{"id":48007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48001,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47877,"src":"5551:12:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":48004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5571:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":48003,"name":"uint8","nodeType":"ElementaryTypeName","src":"5571:5:41","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":48002,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5566:4:41","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":48005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5566:11:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":48006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5566:15:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5551:30:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":48008,"nodeType":"ExpressionStatement","src":"5551:30:41"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":48012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5617:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":48011,"name":"uint8","nodeType":"ElementaryTypeName","src":"5617:5:41","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":48010,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5612:4:41","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":48013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5612:11:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":48014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5612:15:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":48009,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47885,"src":"5600:11:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":48015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5600:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48016,"nodeType":"EmitStatement","src":"5595:33:41"}]}}]},"documentation":{"id":47985,"nodeType":"StructuredDocumentation","src":"4973:388:41","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies."},"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5375:20:41","parameters":{"id":47986,"nodeType":"ParameterList","parameters":[],"src":"5395:2:41"},"returnParameters":{"id":47987,"nodeType":"ParameterList","parameters":[],"src":"5415:0:41"},"scope":48021,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":47874,"nodeType":"StructuredDocumentation","src":"173:2198:41","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"linearizedBaseContracts":[48021],"name":"Initializable","nameLocation":"2390:13:41","scope":48022,"usedErrors":[]}],"license":"MIT"},"id":41}
{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":"Initializable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47877,"contract":"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":47880,"contract":"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol:Initializable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\"MyToken\", \"MTK\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\"MyToken\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}}},"id":41}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":"ReentrancyGuard"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935","urls":["bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2","dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":48032,"contract":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol:ReentrancyGuard","label":"_status","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol","id":48062,"exportedSymbols":{"ReentrancyGuard":[48061]},"nodeType":"SourceUnit","src":"97:2563:42","nodes":[{"id":48023,"nodeType":"PragmaDirective","src":"97:23:42","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48061,"nodeType":"ContractDefinition","src":"873:1786:42","nodes":[{"id":48027,"nodeType":"VariableDeclaration","src":"1661:41:42","nodes":[],"constant":true,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"1686:12:42","scope":48061,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48025,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":48026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1701:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":48030,"nodeType":"VariableDeclaration","src":"1708:37:42","nodes":[],"constant":true,"mutability":"constant","name":"_ENTERED","nameLocation":"1733:8:42","scope":48061,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48028,"name":"uint256","nodeType":"ElementaryTypeName","src":"1708:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":48029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1744:1:42","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"id":48032,"nodeType":"VariableDeclaration","src":"1752:23:42","nodes":[],"constant":false,"mutability":"mutable","name":"_status","nameLocation":"1768:7:42","scope":48061,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48031,"name":"uint256","nodeType":"ElementaryTypeName","src":"1752:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":48040,"nodeType":"FunctionDefinition","src":"1782:53:42","nodes":[],"body":{"id":48039,"nodeType":"Block","src":"1796:39:42","nodes":[],"statements":[{"expression":{"id":48037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48035,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48032,"src":"1806:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48036,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48027,"src":"1816:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1806:22:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48038,"nodeType":"ExpressionStatement","src":"1806:22:42"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":48033,"nodeType":"ParameterList","parameters":[],"src":"1793:2:42"},"returnParameters":{"id":48034,"nodeType":"ParameterList","parameters":[],"src":"1796:0:42"},"scope":48061,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48060,"nodeType":"ModifierDefinition","src":"2212:445:42","nodes":[],"body":{"id":48059,"nodeType":"Block","src":"2236:421:42","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48044,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48032,"src":"2325:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":48045,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48030,"src":"2336:8:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2325:19:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265656e7472616e637947756172643a207265656e7472616e742063616c6c","id":48047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2346:33:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619","typeString":"literal_string \"ReentrancyGuard: reentrant call\""},"value":"ReentrancyGuard: reentrant call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619","typeString":"literal_string \"ReentrancyGuard: reentrant call\""}],"id":48043,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2317:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2317:63:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48049,"nodeType":"ExpressionStatement","src":"2317:63:42"},{"expression":{"id":48052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48050,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48032,"src":"2455:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48051,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48030,"src":"2465:8:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2455:18:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48053,"nodeType":"ExpressionStatement","src":"2455:18:42"},{"id":48054,"nodeType":"PlaceholderStatement","src":"2484:1:42"},{"expression":{"id":48057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48055,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48032,"src":"2628:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48056,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48027,"src":"2638:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2628:22:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48058,"nodeType":"ExpressionStatement","src":"2628:22:42"}]},"documentation":{"id":48041,"nodeType":"StructuredDocumentation","src":"1841:366:42","text":" @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and making it call a\n `private` function that does the actual work."},"name":"nonReentrant","nameLocation":"2221:12:42","parameters":{"id":48042,"nodeType":"ParameterList","parameters":[],"src":"2233:2:42"},"virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":48024,"nodeType":"StructuredDocumentation","src":"122:750:42","text":" @dev Contract module that helps prevent reentrant calls to a function.\n Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n available, which can be applied to functions to make sure there are no nested\n (reentrant) calls to them.\n Note that because there is a single `nonReentrant` guard, functions marked as\n `nonReentrant` may not call one another. This can be worked around by making\n those functions `private`, and then adding `external` `nonReentrant` entry\n points to them.\n TIP: If you would like to learn more about reentrancy and alternative ways\n to protect against it, check out our blog post\n https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."},"fullyImplemented":true,"linearizedBaseContracts":[48061],"name":"ReentrancyGuard","nameLocation":"891:15:42","scope":48062,"usedErrors":[]}],"license":"MIT"},"id":42}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":"ReentrancyGuard"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935","urls":["bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2","dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":48032,"contract":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol:ReentrancyGuard","label":"_status","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."},"id":42}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_addressManager","type":"address","internalType":"contract AddressManager"},{"name":"_implementationName","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516105f03803806105f083398101604081905261002f91610088565b30600090815260016020908152604080832080546001600160a01b0319166001600160a01b03871617905590829052902061006a8282610203565b5050506102c2565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561009b57600080fd5b82516001600160a01b03811681146100b257600080fd5b602084810151919350906001600160401b03808211156100d157600080fd5b818601915086601f8301126100e557600080fd5b8151818111156100f7576100f7610072565b604051601f8201601f19908116603f0116810190838211818310171561011f5761011f610072565b81604052828152898684870101111561013757600080fd5b600093505b82841015610159578484018601518185018701529285019261013c565b8284111561016a5760008684830101525b8096505050505050509250929050565b600181811c9082168061018e57607f821691505b6020821081036101ae57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fe57600081815260208120601f850160051c810160208610156101db5750805b601f850160051c820191505b818110156101fa578281556001016101e7565b5050505b505050565b81516001600160401b0381111561021c5761021c610072565b6102308161022a845461017a565b846101b4565b602080601f831160018114610265576000841561024d5750858301515b600019600386901b1c1916600185901b1785556101fa565b600085815260208120601f198616915b8281101561029457888601518255948401946001909101908401610275565b50858210156102b25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61031f806102d16000396000f3fe608060408181523060009081526001602090815282822054908290529181207fbf40fac1000000000000000000000000000000000000000000000000000000009093529173ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061006d9060846101e2565b602060405180830381865afa15801561008a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ae91906102c5565b905073ffffffffffffffffffffffffffffffffffffffff8116610157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f5265736f6c76656444656c656761746550726f78793a2074617267657420616460448201527f6472657373206d75737420626520696e697469616c697a656400000000000000606482015260840160405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff16600036604051610182929190610302565b600060405180830381855af49150503d80600081146101bd576040519150601f19603f3d011682016040523d82523d6000602084013e6101c2565b606091505b5090925090508115156001036101da57805160208201f35b805160208201fd5b600060208083526000845481600182811c91508083168061020457607f831692505b858310810361023a577f4e487b710000000000000000000000000000000000000000000000000000000085526022600452602485fd5b878601838152602001818015610257576001811461028b576102b6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616825284151560051b820196506102b6565b60008b81526020902060005b868110156102b057815484820152908501908901610297565b83019750505b50949998505050505050505050565b6000602082840312156102d757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146102fb57600080fd5b9392505050565b818382376000910190815291905056fea164736f6c634300080f000a","sourceMap":"448:2130:172:-:0;;;1573:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1685:4;1662:29;;;;:14;:29;;;;;;;;:47;;-1:-1:-1;;;;;;1662:47:172;-1:-1:-1;;;;;1662:47:172;;;;;1719:33;;;;;;:55;1755:19;1719:33;:55;:::i;:::-;;1573:208;;448:2130;;14:127:334;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1278;259:6;267;320:2;308:9;299:7;295:23;291:32;288:52;;;336:1;333;326:12;288:52;362:16;;-1:-1:-1;;;;;407:31:334;;397:42;;387:70;;453:1;450;443:12;387:70;500:2;531:18;;;525:25;476:5;;-1:-1:-1;500:2:334;-1:-1:-1;;;;;599:14:334;;;596:34;;;626:1;623;616:12;596:34;664:6;653:9;649:22;639:32;;709:7;702:4;698:2;694:13;690:27;680:55;;731:1;728;721:12;680:55;760:2;754:9;782:2;778;775:10;772:36;;;788:18;;:::i;:::-;863:2;857:9;831:2;917:13;;-1:-1:-1;;913:22:334;;;937:2;909:31;905:40;893:53;;;961:18;;;981:22;;;958:46;955:72;;;1007:18;;:::i;:::-;1047:10;1043:2;1036:22;1082:2;1074:6;1067:18;1122:7;1117:2;1112;1108;1104:11;1100:20;1097:33;1094:53;;;1143:1;1140;1133:12;1094:53;1165:1;1156:10;;1175:129;1189:2;1186:1;1183:9;1175:129;;;1277:10;;;1273:19;;1267:26;1246:14;;;1242:23;;1235:59;1200:10;;;;1175:129;;;1322:2;1319:1;1316:9;1313:80;;;1381:1;1376:2;1371;1363:6;1359:15;1355:24;1348:35;1313:80;1412:6;1402:16;;;;;;;;146:1278;;;;;:::o;1429:380::-;1508:1;1504:12;;;;1551;;;1572:61;;1626:4;1618:6;1614:17;1604:27;;1572:61;1679:2;1671:6;1668:14;1648:18;1645:38;1642:161;;1725:10;1720:3;1716:20;1713:1;1706:31;1760:4;1757:1;1750:15;1788:4;1785:1;1778:15;1642:161;;1429:380;;;:::o;1940:545::-;2042:2;2037:3;2034:11;2031:448;;;2078:1;2103:5;2099:2;2092:17;2148:4;2144:2;2134:19;2218:2;2206:10;2202:19;2199:1;2195:27;2189:4;2185:38;2254:4;2242:10;2239:20;2236:47;;;-1:-1:-1;2277:4:334;2236:47;2332:2;2327:3;2323:12;2320:1;2316:20;2310:4;2306:31;2296:41;;2387:82;2405:2;2398:5;2395:13;2387:82;;;2450:17;;;2431:1;2420:13;2387:82;;;2391:3;;;2031:448;1940:545;;;:::o;2661:1352::-;2781:10;;-1:-1:-1;;;;;2803:30:334;;2800:56;;;2836:18;;:::i;:::-;2865:97;2955:6;2915:38;2947:4;2941:11;2915:38;:::i;:::-;2909:4;2865:97;:::i;:::-;3017:4;;3081:2;3070:14;;3098:1;3093:663;;;;3800:1;3817:6;3814:89;;;-1:-1:-1;3869:19:334;;;3863:26;3814:89;-1:-1:-1;;2618:1:334;2614:11;;;2610:24;2606:29;2596:40;2642:1;2638:11;;;2593:57;3916:81;;3063:944;;3093:663;1887:1;1880:14;;;1924:4;1911:18;;-1:-1:-1;;3129:20:334;;;3247:236;3261:7;3258:1;3255:14;3247:236;;;3350:19;;;3344:26;3329:42;;3442:27;;;;3410:1;3398:14;;;;3277:19;;3247:236;;;3251:3;3511:6;3502:7;3499:19;3496:201;;;3572:19;;;3566:26;-1:-1:-1;;3655:1:334;3651:14;;;3667:3;3647:24;3643:37;3639:42;3624:58;3609:74;;3496:201;-1:-1:-1;;;;;3743:1:334;3727:14;;;3723:22;3710:36;;-1:-1:-1;2661:1352:334:o;:::-;448:2130:172;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060408181523060009081526001602090815282822054908290529181207fbf40fac1000000000000000000000000000000000000000000000000000000009093529173ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061006d9060846101e2565b602060405180830381865afa15801561008a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ae91906102c5565b905073ffffffffffffffffffffffffffffffffffffffff8116610157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f5265736f6c76656444656c656761746550726f78793a2074617267657420616460448201527f6472657373206d75737420626520696e697469616c697a656400000000000000606482015260840160405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff16600036604051610182929190610302565b600060405180830381855af49150503d80600081146101bd576040519150601f19603f3d011682016040523d82523d6000602084013e6101c2565b606091505b5090925090508115156001036101da57805160208201f35b805160208201fd5b600060208083526000845481600182811c91508083168061020457607f831692505b858310810361023a577f4e487b710000000000000000000000000000000000000000000000000000000085526022600452602485fd5b878601838152602001818015610257576001811461028b576102b6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616825284151560051b820196506102b6565b60008b81526020902060005b868110156102b057815484820152908501908901610297565b83019750505b50949998505050505050505050565b6000602082840312156102d757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146102fb57600080fd5b9392505050565b818382376000910190815291905056fea164736f6c634300080f000a","sourceMap":"448:2130:172:-:0;;;;;2008:4;1968:14;1985:29;;;:14;:29;;;;;;;;2027:33;;;;;;;1985:77;;;;1968:14;1985:29;;;;;:40;;:77;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1968:94;-1:-1:-1;2081:20:172;;;2073:90;;;;;;;2149:2:334;2073:90:172;;;2131:21:334;2188:2;2168:18;;;2161:30;2227:34;2207:18;;;2200:62;2298:27;2278:18;;;2271:55;2343:19;;2073:90:172;;;;;;;;2236:12;2250:23;2277:6;:19;;2297:8;;2277:29;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2235:71:172;;-1:-1:-1;2235:71:172;-1:-1:-1;2321:15:172;;;2332:4;2321:15;2317:253;;2415:10;2409:17;2402:4;2390:10;2386:21;2379:48;2317:253;2534:10;2528:17;2521:4;2509:10;2505:21;2498:48;295:1329:334;404:4;433:2;462;451:9;444:21;485:1;518:6;512:13;548:3;570:1;598:9;594:2;590:18;580:28;;658:2;647:9;643:18;680;670:61;;724:4;716:6;712:17;702:27;;670:61;777:2;769:6;766:14;746:18;743:38;740:222;;816:77;811:3;804:90;917:4;914:1;907:15;947:4;942:3;935:17;740:222;1018:18;;;101:19;;;153:4;144:14;1061:18;1088:186;;;;1288:1;1283:315;;;;1054:544;;1088:186;1136:66;1125:9;1121:82;1116:3;1109:95;1254:6;1247:14;1240:22;1237:1;1233:30;1228:3;1224:40;1217:47;;1088:186;;1283:315;242:1;235:14;;;279:4;266:18;;1378:1;1392:165;1406:6;1403:1;1400:13;1392:165;;;1484:14;;1471:11;;;1464:35;1527:16;;;;1421:10;;1392:165;;;1577:11;;;-1:-1:-1;;1054:544:334;-1:-1:-1;1615:3:334;;295:1329;-1:-1:-1;;;;;;;;;295:1329:334:o;1629:313::-;1699:6;1752:2;1740:9;1731:7;1727:23;1723:32;1720:52;;;1768:1;1765;1758:12;1720:52;1800:9;1794:16;1850:42;1843:5;1839:54;1832:5;1829:65;1819:93;;1908:1;1905;1898:12;1819:93;1931:5;1629:313;-1:-1:-1;;;1629:313:334:o;2373:271::-;2556:6;2548;2543:3;2530:33;2512:3;2582:16;;2607:13;;;2582:16;2373:271;-1:-1:-1;2373:271:334:o","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract AddressManager\",\"name\":\"_addressManager\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_implementationName\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"custom:legacy\":\"@title ResolvedDelegateProxy\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_addressManager\":\"Address of the AddressManager.\",\"_implementationName\":\"implementationName of the contract to proxy to.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"ResolvedDelegateProxy is a legacy proxy contract that makes use of the AddressManager to resolve the implementation address. We're maintaining this contract for backwards compatibility so we can manage all legacy proxies where necessary.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/ResolvedDelegateProxy.sol\":\"ResolvedDelegateProxy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/legacy/AddressManager.sol\":{\"keccak256\":\"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34\",\"dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt\"]},\"src/legacy/ResolvedDelegateProxy.sol\":{\"keccak256\":\"0x33425509c2982627f1e88977d76637096322954c474217bd4d03a3244814f332\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb3702c3c280ebf65e636b2d2fd8533aebae69014304014353afee129415c53\",\"dweb:/ipfs/QmYpcVwF8hzwCcPqv535oENbars988N21MVvvDw9eQNaSf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract AddressManager","name":"_addressManager","type":"address"},{"internalType":"string","name":"_implementationName","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_addressManager":"Address of the AddressManager.","_implementationName":"implementationName of the contract to proxy to."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/ResolvedDelegateProxy.sol":"ResolvedDelegateProxy"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/legacy/AddressManager.sol":{"keccak256":"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19","urls":["bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34","dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt"],"license":"MIT"},"src/legacy/ResolvedDelegateProxy.sol":{"keccak256":"0x33425509c2982627f1e88977d76637096322954c474217bd4d03a3244814f332","urls":["bzz-raw://2cb3702c3c280ebf65e636b2d2fd8533aebae69014304014353afee129415c53","dweb:/ipfs/QmYpcVwF8hzwCcPqv535oENbars988N21MVvvDw9eQNaSf"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":92372,"contract":"src/legacy/ResolvedDelegateProxy.sol:ResolvedDelegateProxy","label":"implementationName","offset":0,"slot":"0","type":"t_mapping(t_address,t_string_storage)"},{"astId":92378,"contract":"src/legacy/ResolvedDelegateProxy.sol:ResolvedDelegateProxy","label":"addressManager","offset":0,"slot":"1","type":"t_mapping(t_address,t_contract(AddressManager)91513)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_contract(AddressManager)91513":{"encoding":"inplace","label":"contract AddressManager","numberOfBytes":"20"},"t_mapping(t_address,t_contract(AddressManager)91513)":{"encoding":"mapping","key":"t_address","label":"mapping(address => contract AddressManager)","numberOfBytes":"32","value":"t_contract(AddressManager)91513"},"t_mapping(t_address,t_string_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","notice":"ResolvedDelegateProxy is a legacy proxy contract that makes use of the AddressManager to resolve the implementation address. We're maintaining this contract for backwards compatibility so we can manage all legacy proxies where necessary."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_addressManager":"Address of the AddressManager.","_implementationName":"implementationName of the contract to proxy to."}}}},"ast":{"absolutePath":"src/legacy/ResolvedDelegateProxy.sol","id":92459,"exportedSymbols":{"AddressManager":[91513],"ResolvedDelegateProxy":[92458]},"nodeType":"SourceUnit","src":"32:2547:172","nodes":[{"id":92364,"nodeType":"PragmaDirective","src":"32:23:172","nodes":[],"literals":["solidity","0.8",".15"]},{"id":92366,"nodeType":"ImportDirective","src":"57:63:172","nodes":[],"absolutePath":"src/legacy/AddressManager.sol","file":"src/legacy/AddressManager.sol","nameLocation":"-1:-1:-1","scope":92459,"sourceUnit":91514,"symbolAliases":[{"foreign":{"id":92365,"name":"AddressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91513,"src":"66:14:172","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":92458,"nodeType":"ContractDefinition","src":"448:2130:172","nodes":[{"id":92372,"nodeType":"VariableDeclaration","src":"969:53:172","nodes":[],"constant":false,"documentation":{"id":92368,"nodeType":"StructuredDocumentation","src":"485:479:172","text":"@notice Mapping used to store the implementation name that corresponds to this contract. A\n mapping was originally used as a way to bypass the same issue normally solved by\n storing the implementation address in a specific storage slot that does not conflict\n with any other storage slot. Generally NOT a safe solution but works as long as the\n implementation does not also keep a mapping in the first storage slot."},"mutability":"mutable","name":"implementationName","nameLocation":"1004:18:172","scope":92458,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"typeName":{"id":92371,"keyType":{"id":92369,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:172","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"969:26:172","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"valueType":{"id":92370,"name":"string","nodeType":"ElementaryTypeName","src":"988:6:172","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"id":92378,"nodeType":"VariableDeclaration","src":"1363:57:172","nodes":[],"constant":false,"documentation":{"id":92373,"nodeType":"StructuredDocumentation","src":"1029:329:172","text":"@notice Mapping used to store the address of the AddressManager contract where the\n implementation address will be resolved from. Same concept here as with the above\n mapping. Also generally unsafe but fine if the implementation doesn't keep a mapping\n in the second storage slot."},"mutability":"mutable","name":"addressManager","nameLocation":"1406:14:172","scope":92458,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_AddressManager_$91513_$","typeString":"mapping(address => contract AddressManager)"},"typeName":{"id":92377,"keyType":{"id":92374,"name":"address","nodeType":"ElementaryTypeName","src":"1371:7:172","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1363:34:172","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_AddressManager_$91513_$","typeString":"mapping(address => contract AddressManager)"},"valueType":{"id":92376,"nodeType":"UserDefinedTypeName","pathNode":{"id":92375,"name":"AddressManager","nodeType":"IdentifierPath","referencedDeclaration":91513,"src":"1382:14:172"},"referencedDeclaration":91513,"src":"1382:14:172","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$91513","typeString":"contract AddressManager"}}},"visibility":"private"},{"id":92406,"nodeType":"FunctionDefinition","src":"1573:208:172","nodes":[],"body":{"id":92405,"nodeType":"Block","src":"1652:129:172","nodes":[],"statements":[{"expression":{"id":92394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":92387,"name":"addressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92378,"src":"1662:14:172","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_AddressManager_$91513_$","typeString":"mapping(address => contract AddressManager)"}},"id":92392,"indexExpression":{"arguments":[{"id":92390,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1685:4:172","typeDescriptions":{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$92458","typeString":"contract ResolvedDelegateProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$92458","typeString":"contract ResolvedDelegateProxy"}],"id":92389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1677:7:172","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":92388,"name":"address","nodeType":"ElementaryTypeName","src":"1677:7:172","typeDescriptions":{}}},"id":92391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1677:13:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1662:29:172","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$91513","typeString":"contract AddressManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":92393,"name":"_addressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92382,"src":"1694:15:172","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$91513","typeString":"contract AddressManager"}},"src":"1662:47:172","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$91513","typeString":"contract AddressManager"}},"id":92395,"nodeType":"ExpressionStatement","src":"1662:47:172"},{"expression":{"id":92403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":92396,"name":"implementationName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92372,"src":"1719:18:172","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":92401,"indexExpression":{"arguments":[{"id":92399,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1746:4:172","typeDescriptions":{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$92458","typeString":"contract ResolvedDelegateProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$92458","typeString":"contract ResolvedDelegateProxy"}],"id":92398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1738:7:172","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":92397,"name":"address","nodeType":"ElementaryTypeName","src":"1738:7:172","typeDescriptions":{}}},"id":92400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1738:13:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1719:33:172","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":92402,"name":"_implementationName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92384,"src":"1755:19:172","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1719:55:172","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":92404,"nodeType":"ExpressionStatement","src":"1719:55:172"}]},"documentation":{"id":92379,"nodeType":"StructuredDocumentation","src":"1427:141:172","text":"@param _addressManager Address of the AddressManager.\n @param _implementationName implementationName of the contract to proxy to."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":92385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92382,"mutability":"mutable","name":"_addressManager","nameLocation":"1600:15:172","nodeType":"VariableDeclaration","scope":92406,"src":"1585:30:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$91513","typeString":"contract AddressManager"},"typeName":{"id":92381,"nodeType":"UserDefinedTypeName","pathNode":{"id":92380,"name":"AddressManager","nodeType":"IdentifierPath","referencedDeclaration":91513,"src":"1585:14:172"},"referencedDeclaration":91513,"src":"1585:14:172","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$91513","typeString":"contract AddressManager"}},"visibility":"internal"},{"constant":false,"id":92384,"mutability":"mutable","name":"_implementationName","nameLocation":"1631:19:172","nodeType":"VariableDeclaration","scope":92406,"src":"1617:33:172","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":92383,"name":"string","nodeType":"ElementaryTypeName","src":"1617:6:172","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1584:67:172"},"returnParameters":{"id":92386,"nodeType":"ParameterList","parameters":[],"src":"1652:0:172"},"scope":92458,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":92457,"nodeType":"FunctionDefinition","src":"1930:646:172","nodes":[],"body":{"id":92456,"nodeType":"Block","src":"1958:618:172","nodes":[],"statements":[{"assignments":[92411],"declarations":[{"constant":false,"id":92411,"mutability":"mutable","name":"target","nameLocation":"1976:6:172","nodeType":"VariableDeclaration","scope":92456,"src":"1968:14:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92410,"name":"address","nodeType":"ElementaryTypeName","src":"1968:7:172","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":92427,"initialValue":{"arguments":[{"components":[{"baseExpression":{"id":92419,"name":"implementationName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92372,"src":"2027:18:172","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":92424,"indexExpression":{"arguments":[{"id":92422,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2054:4:172","typeDescriptions":{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$92458","typeString":"contract ResolvedDelegateProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$92458","typeString":"contract ResolvedDelegateProxy"}],"id":92421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2046:7:172","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":92420,"name":"address","nodeType":"ElementaryTypeName","src":"2046:7:172","typeDescriptions":{}}},"id":92423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2046:13:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2027:33:172","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"id":92425,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2026:35:172","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"baseExpression":{"id":92412,"name":"addressManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92378,"src":"1985:14:172","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_AddressManager_$91513_$","typeString":"mapping(address => contract AddressManager)"}},"id":92417,"indexExpression":{"arguments":[{"id":92415,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2008:4:172","typeDescriptions":{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$92458","typeString":"contract ResolvedDelegateProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ResolvedDelegateProxy_$92458","typeString":"contract ResolvedDelegateProxy"}],"id":92414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2000:7:172","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":92413,"name":"address","nodeType":"ElementaryTypeName","src":"2000:7:172","typeDescriptions":{}}},"id":92416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2000:13:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1985:29:172","typeDescriptions":{"typeIdentifier":"t_contract$_AddressManager_$91513","typeString":"contract AddressManager"}},"id":92418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":91496,"src":"1985:40:172","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) view external returns (address)"}},"id":92426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1985:77:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1968:94:172"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":92434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":92429,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92411,"src":"2081:6:172","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":92432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2099:1:172","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":92431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2091:7:172","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":92430,"name":"address","nodeType":"ElementaryTypeName","src":"2091:7:172","typeDescriptions":{}}},"id":92433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2091:10:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2081:20:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265736f6c76656444656c656761746550726f78793a207461726765742061646472657373206d75737420626520696e697469616c697a6564","id":92435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2103:59:172","typeDescriptions":{"typeIdentifier":"t_stringliteral_4d854a8e116e0f3da73003360f03ac382ae8205c4798da9ecd48d43a1cc0a5e7","typeString":"literal_string \"ResolvedDelegateProxy: target address must be initialized\""},"value":"ResolvedDelegateProxy: target address must be initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4d854a8e116e0f3da73003360f03ac382ae8205c4798da9ecd48d43a1cc0a5e7","typeString":"literal_string \"ResolvedDelegateProxy: target address must be initialized\""}],"id":92428,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2073:7:172","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":92436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2073:90:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":92437,"nodeType":"ExpressionStatement","src":"2073:90:172"},{"assignments":[92439,92441],"declarations":[{"constant":false,"id":92439,"mutability":"mutable","name":"success","nameLocation":"2241:7:172","nodeType":"VariableDeclaration","scope":92456,"src":"2236:12:172","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":92438,"name":"bool","nodeType":"ElementaryTypeName","src":"2236:4:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":92441,"mutability":"mutable","name":"returndata","nameLocation":"2263:10:172","nodeType":"VariableDeclaration","scope":92456,"src":"2250:23:172","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":92440,"name":"bytes","nodeType":"ElementaryTypeName","src":"2250:5:172","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":92447,"initialValue":{"arguments":[{"expression":{"id":92444,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2297:3:172","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":92445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"2297:8:172","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":92442,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92411,"src":"2277:6:172","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":92443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"2277:19:172","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":92446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2277:29:172","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2235:71:172"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":92450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":92448,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":92439,"src":"2321:7:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"74727565","id":92449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2332:4:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2321:15:172","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":92454,"nodeType":"Block","src":"2457:113:172","statements":[{"AST":{"nodeType":"YulBlock","src":"2480:80:172","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"2509:10:172"},{"kind":"number","nodeType":"YulLiteral","src":"2521:4:172","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2505:3:172"},"nodeType":"YulFunctionCall","src":"2505:21:172"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"2534:10:172"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2528:5:172"},"nodeType":"YulFunctionCall","src":"2528:17:172"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2498:6:172"},"nodeType":"YulFunctionCall","src":"2498:48:172"},"nodeType":"YulExpressionStatement","src":"2498:48:172"}]},"evmVersion":"london","externalReferences":[{"declaration":92441,"isOffset":false,"isSlot":false,"src":"2509:10:172","valueSize":1},{"declaration":92441,"isOffset":false,"isSlot":false,"src":"2534:10:172","valueSize":1}],"id":92453,"nodeType":"InlineAssembly","src":"2471:89:172"}]},"id":92455,"nodeType":"IfStatement","src":"2317:253:172","trueBody":{"id":92452,"nodeType":"Block","src":"2338:113:172","statements":[{"AST":{"nodeType":"YulBlock","src":"2361:80:172","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"2390:10:172"},{"kind":"number","nodeType":"YulLiteral","src":"2402:4:172","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2386:3:172"},"nodeType":"YulFunctionCall","src":"2386:21:172"},{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"2415:10:172"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2409:5:172"},"nodeType":"YulFunctionCall","src":"2409:17:172"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"2379:6:172"},"nodeType":"YulFunctionCall","src":"2379:48:172"},"nodeType":"YulExpressionStatement","src":"2379:48:172"}]},"evmVersion":"london","externalReferences":[{"declaration":92441,"isOffset":false,"isSlot":false,"src":"2390:10:172","valueSize":1},{"declaration":92441,"isOffset":false,"isSlot":false,"src":"2415:10:172","valueSize":1}],"id":92451,"nodeType":"InlineAssembly","src":"2352:89:172"}]}}]},"documentation":{"id":92407,"nodeType":"StructuredDocumentation","src":"1787:85:172","text":"@notice Fallback, performs a delegatecall to the resolved implementation address."},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":92408,"nodeType":"ParameterList","parameters":[],"src":"1938:2:172"},"returnParameters":{"id":92409,"nodeType":"ParameterList","parameters":[],"src":"1958:0:172"},"scope":92458,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ResolvedDelegateProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":92367,"nodeType":"StructuredDocumentation","src":"122:326:172","text":"@custom:legacy\n @title ResolvedDelegateProxy\n @notice ResolvedDelegateProxy is a legacy proxy contract that makes use of the AddressManager to\n resolve the implementation address. We're maintaining this contract for backwards\n compatibility so we can manage all legacy proxies where necessary."},"fullyImplemented":true,"linearizedBaseContracts":[92458],"name":"ResolvedDelegateProxy","nameLocation":"457:21:172","scope":92459,"usedErrors":[]}],"license":"MIT"},"id":172}
{"abi":[{"type":"constructor","inputs":[{"name":"_addressManager","type":"address","internalType":"contract AddressManager"},{"name":"_implementationName","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516105f03803806105f083398101604081905261002f91610088565b30600090815260016020908152604080832080546001600160a01b0319166001600160a01b03871617905590829052902061006a8282610203565b5050506102c2565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561009b57600080fd5b82516001600160a01b03811681146100b257600080fd5b602084810151919350906001600160401b03808211156100d157600080fd5b818601915086601f8301126100e557600080fd5b8151818111156100f7576100f7610072565b604051601f8201601f19908116603f0116810190838211818310171561011f5761011f610072565b81604052828152898684870101111561013757600080fd5b600093505b82841015610159578484018601518185018701529285019261013c565b8284111561016a5760008684830101525b8096505050505050509250929050565b600181811c9082168061018e57607f821691505b6020821081036101ae57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fe57600081815260208120601f850160051c810160208610156101db5750805b601f850160051c820191505b818110156101fa578281556001016101e7565b5050505b505050565b81516001600160401b0381111561021c5761021c610072565b6102308161022a845461017a565b846101b4565b602080601f831160018114610265576000841561024d5750858301515b600019600386901b1c1916600185901b1785556101fa565b600085815260208120601f198616915b8281101561029457888601518255948401946001909101908401610275565b50858210156102b25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61031f806102d16000396000f3fe608060408181523060009081526001602090815282822054908290529181207fbf40fac1000000000000000000000000000000000000000000000000000000009093529173ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061006d9060846101e2565b602060405180830381865afa15801561008a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ae91906102c5565b905073ffffffffffffffffffffffffffffffffffffffff8116610157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f5265736f6c76656444656c656761746550726f78793a2074617267657420616460448201527f6472657373206d75737420626520696e697469616c697a656400000000000000606482015260840160405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff16600036604051610182929190610302565b600060405180830381855af49150503d80600081146101bd576040519150601f19603f3d011682016040523d82523d6000602084013e6101c2565b606091505b5090925090508115156001036101da57805160208201f35b805160208201fd5b600060208083526000845481600182811c91508083168061020457607f831692505b858310810361023a577f4e487b710000000000000000000000000000000000000000000000000000000085526022600452602485fd5b878601838152602001818015610257576001811461028b576102b6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616825284151560051b820196506102b6565b60008b81526020902060005b868110156102b057815484820152908501908901610297565b83019750505b50949998505050505050505050565b6000602082840312156102d757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146102fb57600080fd5b9392505050565b818382376000910190815291905056fea164736f6c634300080f000a","sourceMap":"448:2077:183:-:0;;;1573:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1685:4;1662:29;;;;:14;:29;;;;;;;;:47;;-1:-1:-1;;;;;;1662:47:183;-1:-1:-1;;;;;1662:47:183;;;;;1719:33;;;;;;:55;1755:19;1719:33;:55;:::i;:::-;;1573:208;;448:2077;;14:127:350;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1278;259:6;267;320:2;308:9;299:7;295:23;291:32;288:52;;;336:1;333;326:12;288:52;362:16;;-1:-1:-1;;;;;407:31:350;;397:42;;387:70;;453:1;450;443:12;387:70;500:2;531:18;;;525:25;476:5;;-1:-1:-1;500:2:350;-1:-1:-1;;;;;599:14:350;;;596:34;;;626:1;623;616:12;596:34;664:6;653:9;649:22;639:32;;709:7;702:4;698:2;694:13;690:27;680:55;;731:1;728;721:12;680:55;760:2;754:9;782:2;778;775:10;772:36;;;788:18;;:::i;:::-;863:2;857:9;831:2;917:13;;-1:-1:-1;;913:22:350;;;937:2;909:31;905:40;893:53;;;961:18;;;981:22;;;958:46;955:72;;;1007:18;;:::i;:::-;1047:10;1043:2;1036:22;1082:2;1074:6;1067:18;1122:7;1117:2;1112;1108;1104:11;1100:20;1097:33;1094:53;;;1143:1;1140;1133:12;1094:53;1165:1;1156:10;;1175:129;1189:2;1186:1;1183:9;1175:129;;;1277:10;;;1273:19;;1267:26;1246:14;;;1242:23;;1235:59;1200:10;;;;1175:129;;;1322:2;1319:1;1316:9;1313:80;;;1381:1;1376:2;1371;1363:6;1359:15;1355:24;1348:35;1313:80;1412:6;1402:16;;;;;;;;146:1278;;;;;:::o;1429:380::-;1508:1;1504:12;;;;1551;;;1572:61;;1626:4;1618:6;1614:17;1604:27;;1572:61;1679:2;1671:6;1668:14;1648:18;1645:38;1642:161;;1725:10;1720:3;1716:20;1713:1;1706:31;1760:4;1757:1;1750:15;1788:4;1785:1;1778:15;1642:161;;1429:380;;;:::o;1940:545::-;2042:2;2037:3;2034:11;2031:448;;;2078:1;2103:5;2099:2;2092:17;2148:4;2144:2;2134:19;2218:2;2206:10;2202:19;2199:1;2195:27;2189:4;2185:38;2254:4;2242:10;2239:20;2236:47;;;-1:-1:-1;2277:4:350;2236:47;2332:2;2327:3;2323:12;2320:1;2316:20;2310:4;2306:31;2296:41;;2387:82;2405:2;2398:5;2395:13;2387:82;;;2450:17;;;2431:1;2420:13;2387:82;;;2391:3;;;2031:448;1940:545;;;:::o;2661:1352::-;2781:10;;-1:-1:-1;;;;;2803:30:350;;2800:56;;;2836:18;;:::i;:::-;2865:97;2955:6;2915:38;2947:4;2941:11;2915:38;:::i;:::-;2909:4;2865:97;:::i;:::-;3017:4;;3081:2;3070:14;;3098:1;3093:663;;;;3800:1;3817:6;3814:89;;;-1:-1:-1;3869:19:350;;;3863:26;3814:89;-1:-1:-1;;2618:1:350;2614:11;;;2610:24;2606:29;2596:40;2642:1;2638:11;;;2593:57;3916:81;;3063:944;;3093:663;1887:1;1880:14;;;1924:4;1911:18;;-1:-1:-1;;3129:20:350;;;3247:236;3261:7;3258:1;3255:14;3247:236;;;3350:19;;;3344:26;3329:42;;3442:27;;;;3410:1;3398:14;;;;3277:19;;3247:236;;;3251:3;3511:6;3502:7;3499:19;3496:201;;;3572:19;;;3566:26;-1:-1:-1;;3655:1:350;3651:14;;;3667:3;3647:24;3643:37;3639:42;3624:58;3609:74;;3496:201;-1:-1:-1;;;;;3743:1:350;3727:14;;;3723:22;3710:36;;-1:-1:-1;2661:1352:350:o;:::-;448:2077:183;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060408181523060009081526001602090815282822054908290529181207fbf40fac1000000000000000000000000000000000000000000000000000000009093529173ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061006d9060846101e2565b602060405180830381865afa15801561008a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ae91906102c5565b905073ffffffffffffffffffffffffffffffffffffffff8116610157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f5265736f6c76656444656c656761746550726f78793a2074617267657420616460448201527f6472657373206d75737420626520696e697469616c697a656400000000000000606482015260840160405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff16600036604051610182929190610302565b600060405180830381855af49150503d80600081146101bd576040519150601f19603f3d011682016040523d82523d6000602084013e6101c2565b606091505b5090925090508115156001036101da57805160208201f35b805160208201fd5b600060208083526000845481600182811c91508083168061020457607f831692505b858310810361023a577f4e487b710000000000000000000000000000000000000000000000000000000085526022600452602485fd5b878601838152602001818015610257576001811461028b576102b6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616825284151560051b820196506102b6565b60008b81526020902060005b868110156102b057815484820152908501908901610297565b83019750505b50949998505050505050505050565b6000602082840312156102d757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146102fb57600080fd5b9392505050565b818382376000910190815291905056fea164736f6c634300080f000a","sourceMap":"448:2077:183:-:0;;;;;1955:4;1915:14;1932:29;;;:14;:29;;;;;;;;1974:33;;;;;;;1932:77;;;;1915:14;1932:29;;;;;:40;;:77;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1915:94;-1:-1:-1;2028:20:183;;;2020:90;;;;;;;2149:2:350;2020:90:183;;;2131:21:350;2188:2;2168:18;;;2161:30;2227:34;2207:18;;;2200:62;2298:27;2278:18;;;2271:55;2343:19;;2020:90:183;;;;;;;;2183:12;2197:23;2224:6;:19;;2244:8;;2224:29;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2182:71:183;;-1:-1:-1;2182:71:183;-1:-1:-1;2268:15:183;;;2279:4;2268:15;2264:253;;2362:10;2356:17;2349:4;2337:10;2333:21;2326:48;2264:253;2481:10;2475:17;2468:4;2456:10;2452:21;2445:48;295:1329:350;404:4;433:2;462;451:9;444:21;485:1;518:6;512:13;548:3;570:1;598:9;594:2;590:18;580:28;;658:2;647:9;643:18;680;670:61;;724:4;716:6;712:17;702:27;;670:61;777:2;769:6;766:14;746:18;743:38;740:222;;816:77;811:3;804:90;917:4;914:1;907:15;947:4;942:3;935:17;740:222;1018:18;;;101:19;;;153:4;144:14;1061:18;1088:186;;;;1288:1;1283:315;;;;1054:544;;1088:186;1136:66;1125:9;1121:82;1116:3;1109:95;1254:6;1247:14;1240:22;1237:1;1233:30;1228:3;1224:40;1217:47;;1088:186;;1283:315;242:1;235:14;;;279:4;266:18;;1378:1;1392:165;1406:6;1403:1;1400:13;1392:165;;;1484:14;;1471:11;;;1464:35;1527:16;;;;1421:10;;1392:165;;;1577:11;;;-1:-1:-1;;1054:544:350;-1:-1:-1;1615:3:350;;295:1329;-1:-1:-1;;;;;;;;;295:1329:350:o;1629:313::-;1699:6;1752:2;1740:9;1731:7;1727:23;1723:32;1720:52;;;1768:1;1765;1758:12;1720:52;1800:9;1794:16;1850:42;1843:5;1839:54;1832:5;1829:65;1819:93;;1908:1;1905;1898:12;1819:93;1931:5;1629:313;-1:-1:-1;;;1629:313:350:o;2373:271::-;2556:6;2548;2543:3;2530:33;2512:3;2582:16;;2607:13;;;2582:16;2373:271;-1:-1:-1;2373:271:350:o","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract AddressManager\",\"name\":\"_addressManager\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_implementationName\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"custom:legacy\":\"@title ResolvedDelegateProxy\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_addressManager\":\"Address of the AddressManager.\",\"_implementationName\":\"implementationName of the contract to proxy to.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"ResolvedDelegateProxy is a legacy proxy contract that makes use of the AddressManager to resolve the implementation address. We're maintaining this contract for backwards compatibility so we can manage all legacy proxies where necessary.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/legacy/ResolvedDelegateProxy.sol\":\"ResolvedDelegateProxy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/legacy/AddressManager.sol\":{\"keccak256\":\"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34\",\"dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt\"]},\"src/legacy/ResolvedDelegateProxy.sol\":{\"keccak256\":\"0xb24f18d87e260cd6a8338c770c8be4f58e55c94ce106457fbffbde4e1e6548d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d74acc206a863a1f593bf65f13e44c919bb8df78a18df31a9ef0b1d210f86c32\",\"dweb:/ipfs/QmXNiAPiX6WRVDZrKu7SPgv4biCPft7ER673Jeyy89YCFQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract AddressManager","name":"_addressManager","type":"address"},{"internalType":"string","name":"_implementationName","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_addressManager":"Address of the AddressManager.","_implementationName":"implementationName of the contract to proxy to."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/legacy/ResolvedDelegateProxy.sol":"ResolvedDelegateProxy"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/legacy/AddressManager.sol":{"keccak256":"0x1fcb990df6473f7fa360d5924d62d39ce2ca97d45668e3901e5405cfbe598b19","urls":["bzz-raw://9d08358b60dea54dbc32e988a1bb7ea909488063eaae3c5ae28a322f125c9b34","dweb:/ipfs/QmZPQwdjLh9gaamNAoTUmWwwbRKj3yHovBYfnTPnfuKvUt"],"license":"MIT"},"src/legacy/ResolvedDelegateProxy.sol":{"keccak256":"0xb24f18d87e260cd6a8338c770c8be4f58e55c94ce106457fbffbde4e1e6548d9","urls":["bzz-raw://d74acc206a863a1f593bf65f13e44c919bb8df78a18df31a9ef0b1d210f86c32","dweb:/ipfs/QmXNiAPiX6WRVDZrKu7SPgv4biCPft7ER673Jeyy89YCFQ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":99224,"contract":"src/legacy/ResolvedDelegateProxy.sol:ResolvedDelegateProxy","label":"implementationName","offset":0,"slot":"0","type":"t_mapping(t_address,t_string_storage)"},{"astId":99230,"contract":"src/legacy/ResolvedDelegateProxy.sol:ResolvedDelegateProxy","label":"addressManager","offset":0,"slot":"1","type":"t_mapping(t_address,t_contract(AddressManager)98517)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_contract(AddressManager)98517":{"encoding":"inplace","label":"contract AddressManager","numberOfBytes":"20"},"t_mapping(t_address,t_contract(AddressManager)98517)":{"encoding":"mapping","key":"t_address","label":"mapping(address => contract AddressManager)","numberOfBytes":"32","value":"t_contract(AddressManager)98517"},"t_mapping(t_address,t_string_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","notice":"ResolvedDelegateProxy is a legacy proxy contract that makes use of the AddressManager to resolve the implementation address. We're maintaining this contract for backwards compatibility so we can manage all legacy proxies where necessary."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_addressManager":"Address of the AddressManager.","_implementationName":"implementationName of the contract to proxy to."}}}},"id":183}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"118:6623:184:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;118:6623:184;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"118:6623:184:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeCall\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Perform low level safe calls\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/SafeCall.sol\":\"SafeCall\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/SafeCall.sol":"SafeCall"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Perform low level safe calls"},"devdoc":{"version":1,"kind":"dev","title":"SafeCall"},"ast":{"absolutePath":"src/libraries/SafeCall.sol","id":93946,"exportedSymbols":{"SafeCall":[93945]},"nodeType":"SourceUnit","src":"32:6710:184","nodes":[{"id":93858,"nodeType":"PragmaDirective","src":"32:23:184","nodes":[],"literals":["solidity","0.8",".15"]},{"id":93945,"nodeType":"ContractDefinition","src":"118:6623:184","nodes":[{"id":93878,"nodeType":"FunctionDefinition","src":"429:480:184","nodes":[],"body":{"id":93877,"nodeType":"Block","src":"514:395:184","nodes":[],"statements":[{"assignments":[93872],"declarations":[{"constant":false,"id":93872,"mutability":"mutable","name":"_success","nameLocation":"529:8:184","nodeType":"VariableDeclaration","scope":93877,"src":"524:13:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":93871,"name":"bool","nodeType":"ElementaryTypeName","src":"524:4:184","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":93873,"nodeType":"VariableDeclarationStatement","src":"524:13:184"},{"AST":{"nodeType":"YulBlock","src":"556:322:184","statements":[{"nodeType":"YulAssignment","src":"570:298:184","value":{"arguments":[{"name":"_gas","nodeType":"YulIdentifier","src":"624:4:184"},{"name":"_target","nodeType":"YulIdentifier","src":"657:7:184"},{"name":"_value","nodeType":"YulIdentifier","src":"699:6:184"},{"kind":"number","nodeType":"YulLiteral","src":"742:1:184","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"774:1:184","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"806:1:184","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"839:1:184","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"598:4:184"},"nodeType":"YulFunctionCall","src":"598:270:184"},"variableNames":[{"name":"_success","nodeType":"YulIdentifier","src":"570:8:184"}]}]},"evmVersion":"london","externalReferences":[{"declaration":93864,"isOffset":false,"isSlot":false,"src":"624:4:184","valueSize":1},{"declaration":93872,"isOffset":false,"isSlot":false,"src":"570:8:184","valueSize":1},{"declaration":93862,"isOffset":false,"isSlot":false,"src":"657:7:184","valueSize":1},{"declaration":93866,"isOffset":false,"isSlot":false,"src":"699:6:184","valueSize":1}],"id":93874,"nodeType":"InlineAssembly","src":"547:331:184"},{"expression":{"id":93875,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93872,"src":"894:8:184","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":93870,"id":93876,"nodeType":"Return","src":"887:15:184"}]},"documentation":{"id":93860,"nodeType":"StructuredDocumentation","src":"141:283:184","text":"@notice Performs a low level call without copying any returndata.\n @dev Passes no calldata to the call context.\n @param _target Address to call\n @param _gas Amount of gas to pass to the call\n @param _value Amount of value to pass to the call"},"implemented":true,"kind":"function","modifiers":[],"name":"send","nameLocation":"438:4:184","parameters":{"id":93867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93862,"mutability":"mutable","name":"_target","nameLocation":"451:7:184","nodeType":"VariableDeclaration","scope":93878,"src":"443:15:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93861,"name":"address","nodeType":"ElementaryTypeName","src":"443:7:184","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":93864,"mutability":"mutable","name":"_gas","nameLocation":"468:4:184","nodeType":"VariableDeclaration","scope":93878,"src":"460:12:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93863,"name":"uint256","nodeType":"ElementaryTypeName","src":"460:7:184","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93866,"mutability":"mutable","name":"_value","nameLocation":"482:6:184","nodeType":"VariableDeclaration","scope":93878,"src":"474:14:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93865,"name":"uint256","nodeType":"ElementaryTypeName","src":"474:7:184","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"442:47:184"},"returnParameters":{"id":93870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93869,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":93878,"src":"508:4:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":93868,"name":"bool","nodeType":"ElementaryTypeName","src":"508:4:184","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"507:6:184"},"scope":93945,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":93899,"nodeType":"FunctionDefinition","src":"1202:536:184","nodes":[],"body":{"id":93898,"nodeType":"Block","src":"1311:427:184","nodes":[],"statements":[{"assignments":[93893],"declarations":[{"constant":false,"id":93893,"mutability":"mutable","name":"_success","nameLocation":"1326:8:184","nodeType":"VariableDeclaration","scope":93898,"src":"1321:13:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":93892,"name":"bool","nodeType":"ElementaryTypeName","src":"1321:4:184","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":93894,"nodeType":"VariableDeclarationStatement","src":"1321:13:184"},{"AST":{"nodeType":"YulBlock","src":"1353:354:184","statements":[{"nodeType":"YulAssignment","src":"1367:330:184","value":{"arguments":[{"name":"_gas","nodeType":"YulIdentifier","src":"1421:4:184"},{"name":"_target","nodeType":"YulIdentifier","src":"1454:7:184"},{"name":"_value","nodeType":"YulIdentifier","src":"1496:6:184"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"1543:9:184"},{"kind":"number","nodeType":"YulLiteral","src":"1554:2:184","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1539:3:184"},"nodeType":"YulFunctionCall","src":"1539:18:184"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"1594:9:184"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1588:5:184"},"nodeType":"YulFunctionCall","src":"1588:16:184"},{"kind":"number","nodeType":"YulLiteral","src":"1635:1:184","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1668:1:184","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"1395:4:184"},"nodeType":"YulFunctionCall","src":"1395:302:184"},"variableNames":[{"name":"_success","nodeType":"YulIdentifier","src":"1367:8:184"}]}]},"evmVersion":"london","externalReferences":[{"declaration":93887,"isOffset":false,"isSlot":false,"src":"1543:9:184","valueSize":1},{"declaration":93887,"isOffset":false,"isSlot":false,"src":"1594:9:184","valueSize":1},{"declaration":93883,"isOffset":false,"isSlot":false,"src":"1421:4:184","valueSize":1},{"declaration":93893,"isOffset":false,"isSlot":false,"src":"1367:8:184","valueSize":1},{"declaration":93881,"isOffset":false,"isSlot":false,"src":"1454:7:184","valueSize":1},{"declaration":93885,"isOffset":false,"isSlot":false,"src":"1496:6:184","valueSize":1}],"id":93895,"nodeType":"InlineAssembly","src":"1344:363:184"},{"expression":{"id":93896,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93893,"src":"1723:8:184","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":93891,"id":93897,"nodeType":"Return","src":"1716:15:184"}]},"documentation":{"id":93879,"nodeType":"StructuredDocumentation","src":"915:282:184","text":"@notice Perform a low level call without copying any returndata\n @param _target Address to call\n @param _gas Amount of gas to pass to the call\n @param _value Amount of value to pass to the call\n @param _calldata Calldata to pass to the call"},"implemented":true,"kind":"function","modifiers":[],"name":"call","nameLocation":"1211:4:184","parameters":{"id":93888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93881,"mutability":"mutable","name":"_target","nameLocation":"1224:7:184","nodeType":"VariableDeclaration","scope":93899,"src":"1216:15:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93880,"name":"address","nodeType":"ElementaryTypeName","src":"1216:7:184","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":93883,"mutability":"mutable","name":"_gas","nameLocation":"1241:4:184","nodeType":"VariableDeclaration","scope":93899,"src":"1233:12:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93882,"name":"uint256","nodeType":"ElementaryTypeName","src":"1233:7:184","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93885,"mutability":"mutable","name":"_value","nameLocation":"1255:6:184","nodeType":"VariableDeclaration","scope":93899,"src":"1247:14:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93884,"name":"uint256","nodeType":"ElementaryTypeName","src":"1247:7:184","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93887,"mutability":"mutable","name":"_calldata","nameLocation":"1276:9:184","nodeType":"VariableDeclaration","scope":93899,"src":"1263:22:184","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":93886,"name":"bytes","nodeType":"ElementaryTypeName","src":"1263:5:184","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1215:71:184"},"returnParameters":{"id":93891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":93899,"src":"1305:4:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":93889,"name":"bool","nodeType":"ElementaryTypeName","src":"1305:4:184","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1304:6:184"},"scope":93945,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":93916,"nodeType":"FunctionDefinition","src":"3615:365:184","nodes":[],"body":{"id":93915,"nodeType":"Block","src":"3702:278:184","nodes":[],"statements":[{"assignments":[93910],"declarations":[{"constant":false,"id":93910,"mutability":"mutable","name":"_hasMinGas","nameLocation":"3717:10:184","nodeType":"VariableDeclaration","scope":93915,"src":"3712:15:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":93909,"name":"bool","nodeType":"ElementaryTypeName","src":"3712:4:184","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":93911,"nodeType":"VariableDeclarationStatement","src":"3712:15:184"},{"AST":{"nodeType":"YulBlock","src":"3746:201:184","statements":[{"nodeType":"YulAssignment","src":"3839:98:184","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"3867:3:184"},"nodeType":"YulFunctionCall","src":"3867:5:184"},{"kind":"number","nodeType":"YulLiteral","src":"3874:2:184","type":"","value":"63"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3863:3:184"},"nodeType":"YulFunctionCall","src":"3863:14:184"},{"arguments":[{"arguments":[{"name":"_minGas","nodeType":"YulIdentifier","src":"3887:7:184"},{"kind":"number","nodeType":"YulLiteral","src":"3896:2:184","type":"","value":"64"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3883:3:184"},"nodeType":"YulFunctionCall","src":"3883:16:184"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3909:5:184","type":"","value":"40000"},{"name":"_reservedGas","nodeType":"YulIdentifier","src":"3916:12:184"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3905:3:184"},"nodeType":"YulFunctionCall","src":"3905:24:184"},{"kind":"number","nodeType":"YulLiteral","src":"3931:2:184","type":"","value":"63"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3901:3:184"},"nodeType":"YulFunctionCall","src":"3901:33:184"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3879:3:184"},"nodeType":"YulFunctionCall","src":"3879:56:184"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3860:2:184"},"nodeType":"YulFunctionCall","src":"3860:76:184"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3853:6:184"},"nodeType":"YulFunctionCall","src":"3853:84:184"},"variableNames":[{"name":"_hasMinGas","nodeType":"YulIdentifier","src":"3839:10:184"}]}]},"evmVersion":"london","externalReferences":[{"declaration":93910,"isOffset":false,"isSlot":false,"src":"3839:10:184","valueSize":1},{"declaration":93902,"isOffset":false,"isSlot":false,"src":"3887:7:184","valueSize":1},{"declaration":93904,"isOffset":false,"isSlot":false,"src":"3916:12:184","valueSize":1}],"id":93912,"nodeType":"InlineAssembly","src":"3737:210:184"},{"expression":{"id":93913,"name":"_hasMinGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93910,"src":"3963:10:184","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":93908,"id":93914,"nodeType":"Return","src":"3956:17:184"}]},"documentation":{"id":93900,"nodeType":"StructuredDocumentation","src":"1744:1866:184","text":"@notice Helper function to determine if there is sufficient gas remaining within the context\n to guarantee that the minimum gas requirement for a call will be met as well as\n optionally reserving a specified amount of gas for after the call has concluded.\n @param _minGas The minimum amount of gas that may be passed to the target context.\n @param _reservedGas Optional amount of gas to reserve for the caller after the execution\n of the target context.\n @return `true` if there is enough gas remaining to safely supply `_minGas` to the target\n context as well as reserve `_reservedGas` for the caller after the execution of\n the target context.\n @dev !!!!! FOOTGUN ALERT !!!!!\n 1.) The 40_000 base buffer is to account for the worst case of the dynamic cost of the\n `CALL` opcode's `address_access_cost`, `positive_value_cost`, and\n `value_to_empty_account_cost` factors with an added buffer of 5,700 gas. It is\n still possible to self-rekt by initiating a withdrawal with a minimum gas limit\n that does not account for the `memory_expansion_cost` & `code_execution_cost`\n factors of the dynamic cost of the `CALL` opcode.\n 2.) This function should *directly* precede the external call if possible. There is an\n added buffer to account for gas consumed between this check and the call, but it\n is only 5,700 gas.\n 3.) Because EIP-150 ensures that a maximum of 63/64ths of the remaining gas in the call\n frame may be passed to a subcontext, we need to ensure that the gas will not be\n truncated.\n 4.) Use wisely. This function is not a silver bullet."},"implemented":true,"kind":"function","modifiers":[],"name":"hasMinGas","nameLocation":"3624:9:184","parameters":{"id":93905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93902,"mutability":"mutable","name":"_minGas","nameLocation":"3642:7:184","nodeType":"VariableDeclaration","scope":93916,"src":"3634:15:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93901,"name":"uint256","nodeType":"ElementaryTypeName","src":"3634:7:184","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93904,"mutability":"mutable","name":"_reservedGas","nameLocation":"3659:12:184","nodeType":"VariableDeclaration","scope":93916,"src":"3651:20:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93903,"name":"uint256","nodeType":"ElementaryTypeName","src":"3651:7:184","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3633:39:184"},"returnParameters":{"id":93908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":93916,"src":"3696:4:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":93906,"name":"bool","nodeType":"ElementaryTypeName","src":"3696:4:184","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3695:6:184"},"scope":93945,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":93944,"nodeType":"FunctionDefinition","src":"4419:2320:184","nodes":[],"body":{"id":93943,"nodeType":"Block","src":"4599:2140:184","nodes":[],"statements":[{"assignments":[93931],"declarations":[{"constant":false,"id":93931,"mutability":"mutable","name":"_success","nameLocation":"4614:8:184","nodeType":"VariableDeclaration","scope":93943,"src":"4609:13:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":93930,"name":"bool","nodeType":"ElementaryTypeName","src":"4609:4:184","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":93932,"nodeType":"VariableDeclarationStatement","src":"4609:13:184"},{"assignments":[93934],"declarations":[{"constant":false,"id":93934,"mutability":"mutable","name":"_hasMinGas","nameLocation":"4637:10:184","nodeType":"VariableDeclaration","scope":93943,"src":"4632:15:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":93933,"name":"bool","nodeType":"ElementaryTypeName","src":"4632:4:184","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":93939,"initialValue":{"arguments":[{"id":93936,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93921,"src":"4660:7:184","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":93937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4669:1:184","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":93935,"name":"hasMinGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93916,"src":"4650:9:184","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) view returns (bool)"}},"id":93938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4650:21:184","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4632:39:184"},{"AST":{"nodeType":"YulBlock","src":"4690:2018:184","statements":[{"body":{"nodeType":"YulBlock","src":"4794:1124:184","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4891:1:184","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4894:10:184","type":"","value":"0x08c379a0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4884:6:184"},"nodeType":"YulFunctionCall","src":"4884:21:184"},"nodeType":"YulExpressionStatement","src":"4884:21:184"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5005:2:184","type":"","value":"32"},{"kind":"number","nodeType":"YulLiteral","src":"5009:2:184","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4998:6:184"},"nodeType":"YulFunctionCall","src":"4998:14:184"},"nodeType":"YulExpressionStatement","src":"4998:14:184"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5743:2:184","type":"","value":"88"},{"kind":"number","nodeType":"YulLiteral","src":"5747:56:184","type":"","value":"0x0000185361666543616c6c3a204e6f7420656e6f75676820676173"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5736:6:184"},"nodeType":"YulFunctionCall","src":"5736:68:184"},"nodeType":"YulExpressionStatement","src":"5736:68:184"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5896:2:184","type":"","value":"28"},{"kind":"number","nodeType":"YulLiteral","src":"5900:3:184","type":"","value":"100"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5889:6:184"},"nodeType":"YulFunctionCall","src":"5889:15:184"},"nodeType":"YulExpressionStatement","src":"5889:15:184"}]},"condition":{"arguments":[{"name":"_hasMinGas","nodeType":"YulIdentifier","src":"4782:10:184"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4775:6:184"},"nodeType":"YulFunctionCall","src":"4775:18:184"},"nodeType":"YulIf","src":"4772:1146:184"},{"nodeType":"YulAssignment","src":"6361:337:184","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"6415:3:184"},"nodeType":"YulFunctionCall","src":"6415:5:184"},{"name":"_target","nodeType":"YulIdentifier","src":"6449:7:184"},{"name":"_value","nodeType":"YulIdentifier","src":"6491:6:184"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"6538:9:184"},{"kind":"number","nodeType":"YulLiteral","src":"6549:2:184","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6534:3:184"},"nodeType":"YulFunctionCall","src":"6534:18:184"},{"arguments":[{"name":"_calldata","nodeType":"YulIdentifier","src":"6589:9:184"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6583:5:184"},"nodeType":"YulFunctionCall","src":"6583:16:184"},{"kind":"number","nodeType":"YulLiteral","src":"6630:4:184","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"6666:4:184","type":"","value":"0x00"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"6389:4:184"},"nodeType":"YulFunctionCall","src":"6389:309:184"},"variableNames":[{"name":"_success","nodeType":"YulIdentifier","src":"6361:8:184"}]}]},"evmVersion":"london","externalReferences":[{"declaration":93925,"isOffset":false,"isSlot":false,"src":"6538:9:184","valueSize":1},{"declaration":93925,"isOffset":false,"isSlot":false,"src":"6589:9:184","valueSize":1},{"declaration":93934,"isOffset":false,"isSlot":false,"src":"4782:10:184","valueSize":1},{"declaration":93931,"isOffset":false,"isSlot":false,"src":"6361:8:184","valueSize":1},{"declaration":93919,"isOffset":false,"isSlot":false,"src":"6449:7:184","valueSize":1},{"declaration":93923,"isOffset":false,"isSlot":false,"src":"6491:6:184","valueSize":1}],"id":93940,"nodeType":"InlineAssembly","src":"4681:2027:184"},{"expression":{"id":93941,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93931,"src":"6724:8:184","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":93929,"id":93942,"nodeType":"Return","src":"6717:15:184"}]},"documentation":{"id":93917,"nodeType":"StructuredDocumentation","src":"3986:428:184","text":"@notice Perform a low level call without copying any returndata. This function\n will revert if the call cannot be performed with the specified minimum\n gas.\n @param _target Address to call\n @param _minGas The minimum amount of gas that may be passed to the call\n @param _value Amount of value to pass to the call\n @param _calldata Calldata to pass to the call"},"implemented":true,"kind":"function","modifiers":[],"name":"callWithMinGas","nameLocation":"4428:14:184","parameters":{"id":93926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93919,"mutability":"mutable","name":"_target","nameLocation":"4460:7:184","nodeType":"VariableDeclaration","scope":93944,"src":"4452:15:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93918,"name":"address","nodeType":"ElementaryTypeName","src":"4452:7:184","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":93921,"mutability":"mutable","name":"_minGas","nameLocation":"4485:7:184","nodeType":"VariableDeclaration","scope":93944,"src":"4477:15:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93920,"name":"uint256","nodeType":"ElementaryTypeName","src":"4477:7:184","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93923,"mutability":"mutable","name":"_value","nameLocation":"4510:6:184","nodeType":"VariableDeclaration","scope":93944,"src":"4502:14:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93922,"name":"uint256","nodeType":"ElementaryTypeName","src":"4502:7:184","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":93925,"mutability":"mutable","name":"_calldata","nameLocation":"4539:9:184","nodeType":"VariableDeclaration","scope":93944,"src":"4526:22:184","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":93924,"name":"bytes","nodeType":"ElementaryTypeName","src":"4526:5:184","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4442:112:184"},"returnParameters":{"id":93929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":93944,"src":"4589:4:184","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":93927,"name":"bool","nodeType":"ElementaryTypeName","src":"4589:4:184","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4588:6:184"},"scope":93945,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SafeCall","contractDependencies":[],"contractKind":"library","documentation":{"id":93859,"nodeType":"StructuredDocumentation","src":"57:61:184","text":"@title SafeCall\n @notice Perform low level safe calls"},"fullyImplemented":true,"linearizedBaseContracts":[93945],"name":"SafeCall","nameLocation":"126:8:184","scope":93946,"usedErrors":[]}],"license":"MIT"},"id":184}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"118:6623:195:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;118:6623:195;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"118:6623:195:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeCall\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Perform low level safe calls\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/SafeCall.sol\":\"SafeCall\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/SafeCall.sol":"SafeCall"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Perform low level safe calls"},"devdoc":{"version":1,"kind":"dev","title":"SafeCall"},"id":195}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"190:1563:84:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;190:1563:84;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"190:1563:84:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeMath\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Math operations with safety checks that revert on error (overflow/underflow)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/external/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/external/SafeMath.sol\":{\"keccak256\":\"0x5f856674d9be11344c5899deb43364e19baa75bc881cada4c159938270b2bd89\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://351c66e5fe92c0a51f79d133521545dabdd3f756312a7b1428c1fc813c512a1c\",\"dweb:/ipfs/QmdnrRmgef8SdamEU6fVEqFD5RQwXeDFTfQuZEfX2vxC4x\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/external/SafeMath.sol":"SafeMath"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/external/SafeMath.sol":{"keccak256":"0x5f856674d9be11344c5899deb43364e19baa75bc881cada4c159938270b2bd89","urls":["bzz-raw://351c66e5fe92c0a51f79d133521545dabdd3f756312a7b1428c1fc813c512a1c","dweb:/ipfs/QmdnrRmgef8SdamEU6fVEqFD5RQwXeDFTfQuZEfX2vxC4x"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Math operations with safety checks that revert on error (overflow/underflow)"},"devdoc":{"version":1,"kind":"dev","title":"SafeMath"},"ast":{"absolutePath":"lib/safe-contracts/contracts/external/SafeMath.sol","id":58187,"exportedSymbols":{"SafeMath":[58186]},"nodeType":"SourceUnit","src":"42:1712:84","nodes":[{"id":58082,"nodeType":"PragmaDirective","src":"42:31:84","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58186,"nodeType":"ContractDefinition","src":"190:1563:84","nodes":[{"id":58117,"nodeType":"FunctionDefinition","src":"382:421:84","nodes":[],"body":{"id":58116,"nodeType":"Block","src":"449:354:84","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58093,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58086,"src":"680:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"685:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"680:6:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58099,"nodeType":"IfStatement","src":"676:45:84","trueBody":{"id":58098,"nodeType":"Block","src":"688:33:84","statements":[{"expression":{"hexValue":"30","id":58096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"709:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":58092,"id":58097,"nodeType":"Return","src":"702:8:84"}]}},{"assignments":[58101],"declarations":[{"constant":false,"id":58101,"mutability":"mutable","name":"c","nameLocation":"739:1:84","nodeType":"VariableDeclaration","scope":58116,"src":"731:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58100,"name":"uint256","nodeType":"ElementaryTypeName","src":"731:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58105,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58102,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58086,"src":"743:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":58103,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58088,"src":"747:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"743:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"731:17:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58107,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58101,"src":"766:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":58108,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58086,"src":"770:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"766:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":58110,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58088,"src":"775:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"766:10:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58106,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"758:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"758:19:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58113,"nodeType":"ExpressionStatement","src":"758:19:84"},{"expression":{"id":58114,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58101,"src":"795:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":58092,"id":58115,"nodeType":"Return","src":"788:8:84"}]},"documentation":{"id":58084,"nodeType":"StructuredDocumentation","src":"213:164:84","text":" @notice Multiplies two numbers, reverts on overflow.\n @param a First number\n @param b Second number\n @return Product of a and b"},"implemented":true,"kind":"function","modifiers":[],"name":"mul","nameLocation":"391:3:84","parameters":{"id":58089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58086,"mutability":"mutable","name":"a","nameLocation":"403:1:84","nodeType":"VariableDeclaration","scope":58117,"src":"395:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58085,"name":"uint256","nodeType":"ElementaryTypeName","src":"395:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58088,"mutability":"mutable","name":"b","nameLocation":"414:1:84","nodeType":"VariableDeclaration","scope":58117,"src":"406:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58087,"name":"uint256","nodeType":"ElementaryTypeName","src":"406:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"394:22:84"},"returnParameters":{"id":58092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58117,"src":"440:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58090,"name":"uint256","nodeType":"ElementaryTypeName","src":"440:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"439:9:84"},"scope":58186,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":58142,"nodeType":"FunctionDefinition","src":"1025:145:84","nodes":[],"body":{"id":58141,"nodeType":"Block","src":"1092:78:84","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58128,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58122,"src":"1110:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":58129,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58120,"src":"1115:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1110:6:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58127,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1102:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1102:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58132,"nodeType":"ExpressionStatement","src":"1102:15:84"},{"assignments":[58134],"declarations":[{"constant":false,"id":58134,"mutability":"mutable","name":"c","nameLocation":"1135:1:84","nodeType":"VariableDeclaration","scope":58141,"src":"1127:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58133,"name":"uint256","nodeType":"ElementaryTypeName","src":"1127:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58138,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58135,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58120,"src":"1139:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":58136,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58122,"src":"1143:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1139:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1127:17:84"},{"expression":{"id":58139,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58134,"src":"1162:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":58126,"id":58140,"nodeType":"Return","src":"1155:8:84"}]},"documentation":{"id":58118,"nodeType":"StructuredDocumentation","src":"809:211:84","text":" @notice Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).\n @param a First number\n @param b Second number\n @return Difference of a and b"},"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"1034:3:84","parameters":{"id":58123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58120,"mutability":"mutable","name":"a","nameLocation":"1046:1:84","nodeType":"VariableDeclaration","scope":58142,"src":"1038:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58119,"name":"uint256","nodeType":"ElementaryTypeName","src":"1038:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58122,"mutability":"mutable","name":"b","nameLocation":"1057:1:84","nodeType":"VariableDeclaration","scope":58142,"src":"1049:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58121,"name":"uint256","nodeType":"ElementaryTypeName","src":"1049:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1037:22:84"},"returnParameters":{"id":58126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58142,"src":"1083:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58124,"name":"uint256","nodeType":"ElementaryTypeName","src":"1083:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1082:9:84"},"scope":58186,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":58167,"nodeType":"FunctionDefinition","src":"1335:145:84","nodes":[],"body":{"id":58166,"nodeType":"Block","src":"1402:78:84","nodes":[],"statements":[{"assignments":[58153],"declarations":[{"constant":false,"id":58153,"mutability":"mutable","name":"c","nameLocation":"1420:1:84","nodeType":"VariableDeclaration","scope":58166,"src":"1412:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58152,"name":"uint256","nodeType":"ElementaryTypeName","src":"1412:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58157,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58154,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58145,"src":"1424:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":58155,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58147,"src":"1428:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1424:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1412:17:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58159,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58153,"src":"1447:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":58160,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58145,"src":"1452:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1447:6:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58158,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1439:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1439:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58163,"nodeType":"ExpressionStatement","src":"1439:15:84"},{"expression":{"id":58164,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58153,"src":"1472:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":58151,"id":58165,"nodeType":"Return","src":"1465:8:84"}]},"documentation":{"id":58143,"nodeType":"StructuredDocumentation","src":"1176:154:84","text":" @notice Adds two numbers, reverts on overflow.\n @param a First number\n @param b Second number\n @return Sum of a and b"},"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"1344:3:84","parameters":{"id":58148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58145,"mutability":"mutable","name":"a","nameLocation":"1356:1:84","nodeType":"VariableDeclaration","scope":58167,"src":"1348:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58144,"name":"uint256","nodeType":"ElementaryTypeName","src":"1348:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58147,"mutability":"mutable","name":"b","nameLocation":"1367:1:84","nodeType":"VariableDeclaration","scope":58167,"src":"1359:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58146,"name":"uint256","nodeType":"ElementaryTypeName","src":"1359:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1347:22:84"},"returnParameters":{"id":58151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58167,"src":"1393:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58149,"name":"uint256","nodeType":"ElementaryTypeName","src":"1393:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1392:9:84"},"scope":58186,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":58185,"nodeType":"FunctionDefinition","src":"1646:105:84","nodes":[],"body":{"id":58184,"nodeType":"Block","src":"1713:38:84","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58177,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58170,"src":"1730:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":58178,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58172,"src":"1735:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1730:6:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":58181,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58172,"src":"1743:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1730:14:84","trueExpression":{"id":58180,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58170,"src":"1739:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":58176,"id":58183,"nodeType":"Return","src":"1723:21:84"}]},"documentation":{"id":58168,"nodeType":"StructuredDocumentation","src":"1486:155:84","text":" @notice Returns the largest of two numbers.\n @param a First number\n @param b Second number\n @return Largest of a and b"},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"1655:3:84","parameters":{"id":58173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58170,"mutability":"mutable","name":"a","nameLocation":"1667:1:84","nodeType":"VariableDeclaration","scope":58185,"src":"1659:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58169,"name":"uint256","nodeType":"ElementaryTypeName","src":"1659:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58172,"mutability":"mutable","name":"b","nameLocation":"1678:1:84","nodeType":"VariableDeclaration","scope":58185,"src":"1670:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58171,"name":"uint256","nodeType":"ElementaryTypeName","src":"1670:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1658:22:84"},"returnParameters":{"id":58176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58185,"src":"1704:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58174,"name":"uint256","nodeType":"ElementaryTypeName","src":"1704:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1703:9:84"},"scope":58186,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SafeMath","contractDependencies":[],"contractKind":"library","documentation":{"id":58083,"nodeType":"StructuredDocumentation","src":"75:114:84","text":" @title SafeMath\n @notice Math operations with safety checks that revert on error (overflow/underflow)"},"fullyImplemented":true,"linearizedBaseContracts":[58186],"name":"SafeMath","nameLocation":"198:8:84","scope":58187,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":84}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"190:1563:84:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;190:1563:84;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"190:1563:84:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeMath\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Math operations with safety checks that revert on error (overflow/underflow)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/external/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/external/SafeMath.sol\":{\"keccak256\":\"0x5f856674d9be11344c5899deb43364e19baa75bc881cada4c159938270b2bd89\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://351c66e5fe92c0a51f79d133521545dabdd3f756312a7b1428c1fc813c512a1c\",\"dweb:/ipfs/QmdnrRmgef8SdamEU6fVEqFD5RQwXeDFTfQuZEfX2vxC4x\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/external/SafeMath.sol":"SafeMath"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/external/SafeMath.sol":{"keccak256":"0x5f856674d9be11344c5899deb43364e19baa75bc881cada4c159938270b2bd89","urls":["bzz-raw://351c66e5fe92c0a51f79d133521545dabdd3f756312a7b1428c1fc813c512a1c","dweb:/ipfs/QmdnrRmgef8SdamEU6fVEqFD5RQwXeDFTfQuZEfX2vxC4x"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Math operations with safety checks that revert on error (overflow/underflow)"},"devdoc":{"version":1,"kind":"dev","title":"SafeMath"},"id":84}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"masterCopy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"masterCopy()":"a619486e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"masterCopy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"IProxy - Helper interface to access the singleton address of the Proxy on-chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/proxies/SafeProxy.sol\":\"IProxy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/proxies/SafeProxy.sol\":{\"keccak256\":\"0x5dccbe86285c1d4c4b2fed0ae8007620c3186d22411f43feecfbf8a028e5c7e2\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://a1a02d01a92895110505e141d05b0924ea457a25b89a161f0aeedf6b5cb41aec\",\"dweb:/ipfs/QmYWEsFbWwtrVvEF9MNQtf4X3Qt13dAE8o44tEyAS9jmKP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"masterCopy","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/proxies/SafeProxy.sol":"IProxy"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/proxies/SafeProxy.sol":{"keccak256":"0x5dccbe86285c1d4c4b2fed0ae8007620c3186d22411f43feecfbf8a028e5c7e2","urls":["bzz-raw://a1a02d01a92895110505e141d05b0924ea457a25b89a161f0aeedf6b5cb41aec","dweb:/ipfs/QmYWEsFbWwtrVvEF9MNQtf4X3Qt13dAE8o44tEyAS9jmKP"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"IProxy - Helper interface to access the singleton address of the Proxy on-chain."},"ast":{"absolutePath":"lib/safe-contracts/contracts/proxies/SafeProxy.sol","id":58468,"exportedSymbols":{"IProxy":[58436],"SafeProxy":[58467]},"nodeType":"SourceUnit","src":"42:1987:93","nodes":[{"id":58429,"nodeType":"PragmaDirective","src":"42:31:93","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58436,"nodeType":"ContractDefinition","src":"215:79:93","nodes":[{"id":58435,"nodeType":"FunctionDefinition","src":"238:54:93","nodes":[],"functionSelector":"a619486e","implemented":false,"kind":"function","modifiers":[],"name":"masterCopy","nameLocation":"247:10:93","parameters":{"id":58431,"nodeType":"ParameterList","parameters":[],"src":"257:2:93"},"returnParameters":{"id":58434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58435,"src":"283:7:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58432,"name":"address","nodeType":"ElementaryTypeName","src":"283:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"282:9:93"},"scope":58436,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IProxy","contractDependencies":[],"contractKind":"interface","documentation":{"id":58430,"nodeType":"StructuredDocumentation","src":"75:139:93","text":" @title IProxy - Helper interface to access the singleton address of the Proxy on-chain.\n @author Richard Meissner - @rmeissner"},"fullyImplemented":false,"linearizedBaseContracts":[58436],"name":"IProxy","nameLocation":"225:6:93","scope":58468,"usedErrors":[]},{"id":58467,"nodeType":"ContractDefinition","src":"520:1508:93","nodes":[{"id":58439,"nodeType":"VariableDeclaration","src":"800:26:93","nodes":[],"constant":false,"mutability":"mutable","name":"singleton","nameLocation":"817:9:93","scope":58467,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58438,"name":"address","nodeType":"ElementaryTypeName","src":"800:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":58460,"nodeType":"FunctionDefinition","src":"965:152:93","nodes":[],"body":{"id":58459,"nodeType":"Block","src":"997:120:93","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58446,"name":"_singleton","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58442,"src":"1015:10:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":58449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1037:1:93","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":58448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1029:7:93","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58447,"name":"address","nodeType":"ElementaryTypeName","src":"1029:7:93","typeDescriptions":{}}},"id":58450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1029:10:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1015:24:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642073696e676c65746f6e20616464726573732070726f7669646564","id":58452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1041:36:93","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4a46125d24bcf992f3a005546c0f3eafebe1847b2ccd7a103878ded65e88250","typeString":"literal_string \"Invalid singleton address provided\""},"value":"Invalid singleton address provided"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f4a46125d24bcf992f3a005546c0f3eafebe1847b2ccd7a103878ded65e88250","typeString":"literal_string \"Invalid singleton address provided\""}],"id":58445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1007:7:93","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1007:71:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58454,"nodeType":"ExpressionStatement","src":"1007:71:93"},{"expression":{"id":58457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58455,"name":"singleton","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58439,"src":"1088:9:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58456,"name":"_singleton","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58442,"src":"1100:10:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1088:22:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58458,"nodeType":"ExpressionStatement","src":"1088:22:93"}]},"documentation":{"id":58440,"nodeType":"StructuredDocumentation","src":"833:127:93","text":" @notice Constructor function sets address of singleton contract.\n @param _singleton Singleton address."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":58443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58442,"mutability":"mutable","name":"_singleton","nameLocation":"985:10:93","nodeType":"VariableDeclaration","scope":58460,"src":"977:18:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58441,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"976:20:93"},"returnParameters":{"id":58444,"nodeType":"ParameterList","parameters":[],"src":"997:0:93"},"scope":58467,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58466,"nodeType":"FunctionDefinition","src":"1218:808:93","nodes":[],"body":{"id":58465,"nodeType":"Block","src":"1246:780:93","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1321:699:93","statements":[{"nodeType":"YulVariableDeclaration","src":"1335:75:93","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1363:1:93","type":"","value":"0"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1357:5:93"},"nodeType":"YulFunctionCall","src":"1357:8:93"},{"kind":"number","nodeType":"YulLiteral","src":"1367:42:93","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1353:3:93"},"nodeType":"YulFunctionCall","src":"1353:57:93"},"variables":[{"name":"_singleton","nodeType":"YulTypedName","src":"1339:10:93","type":""}]},{"body":{"nodeType":"YulBlock","src":"1613:85:93","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1638:1:93","type":"","value":"0"},{"name":"_singleton","nodeType":"YulIdentifier","src":"1641:10:93"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1631:6:93"},"nodeType":"YulFunctionCall","src":"1631:21:93"},"nodeType":"YulExpressionStatement","src":"1631:21:93"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1676:1:93","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1679:4:93","type":"","value":"0x20"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1669:6:93"},"nodeType":"YulFunctionCall","src":"1669:15:93"},"nodeType":"YulExpressionStatement","src":"1669:15:93"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1541:1:93","type":"","value":"0"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1528:12:93"},"nodeType":"YulFunctionCall","src":"1528:15:93"},{"kind":"number","nodeType":"YulLiteral","src":"1545:66:93","type":"","value":"0xa619486e00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1525:2:93"},"nodeType":"YulFunctionCall","src":"1525:87:93"},"nodeType":"YulIf","src":"1522:176:93"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1724:1:93","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1727:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1730:12:93"},"nodeType":"YulFunctionCall","src":"1730:14:93"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1711:12:93"},"nodeType":"YulFunctionCall","src":"1711:34:93"},"nodeType":"YulExpressionStatement","src":"1711:34:93"},{"nodeType":"YulVariableDeclaration","src":"1758:71:93","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"1786:3:93"},"nodeType":"YulFunctionCall","src":"1786:5:93"},{"name":"_singleton","nodeType":"YulIdentifier","src":"1793:10:93"},{"kind":"number","nodeType":"YulLiteral","src":"1805:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1808:12:93"},"nodeType":"YulFunctionCall","src":"1808:14:93"},{"kind":"number","nodeType":"YulLiteral","src":"1824:1:93","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1827:1:93","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"1773:12:93"},"nodeType":"YulFunctionCall","src":"1773:56:93"},"variables":[{"name":"success","nodeType":"YulTypedName","src":"1762:7:93","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1857:1:93","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1860:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1863:14:93"},"nodeType":"YulFunctionCall","src":"1863:16:93"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"1842:14:93"},"nodeType":"YulFunctionCall","src":"1842:38:93"},"nodeType":"YulExpressionStatement","src":"1842:38:93"},{"body":{"nodeType":"YulBlock","src":"1911:59:93","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1936:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1939:14:93"},"nodeType":"YulFunctionCall","src":"1939:16:93"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1929:6:93"},"nodeType":"YulFunctionCall","src":"1929:27:93"},"nodeType":"YulExpressionStatement","src":"1929:27:93"}]},"condition":{"arguments":[{"name":"success","nodeType":"YulIdentifier","src":"1899:7:93"},{"kind":"number","nodeType":"YulLiteral","src":"1908:1:93","type":"","value":"0"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1896:2:93"},"nodeType":"YulFunctionCall","src":"1896:14:93"},"nodeType":"YulIf","src":"1893:77:93"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1990:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1993:14:93"},"nodeType":"YulFunctionCall","src":"1993:16:93"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1983:6:93"},"nodeType":"YulFunctionCall","src":"1983:27:93"},"nodeType":"YulExpressionStatement","src":"1983:27:93"}]},"evmVersion":"london","externalReferences":[],"id":58464,"nodeType":"InlineAssembly","src":"1312:708:93"}]},"documentation":{"id":58461,"nodeType":"StructuredDocumentation","src":"1123:90:93","text":"@dev Fallback function forwards all transactions and returns all received return data."},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":58462,"nodeType":"ParameterList","parameters":[],"src":"1226:2:93"},"returnParameters":{"id":58463,"nodeType":"ParameterList","parameters":[],"src":"1246:0:93"},"scope":58467,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SafeProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":58437,"nodeType":"StructuredDocumentation","src":"296:223:93","text":" @title SafeProxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n @author Stefan George - <stefan@gnosis.io>\n @author Richard Meissner - <richard@gnosis.io>"},"fullyImplemented":true,"linearizedBaseContracts":[58467],"name":"SafeProxy","nameLocation":"529:9:93","scope":58468,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":93}
{"abi":[{"type":"function","name":"masterCopy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"masterCopy()":"a619486e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"masterCopy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"IProxy - Helper interface to access the singleton address of the Proxy on-chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/proxies/SafeProxy.sol\":\"IProxy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/proxies/SafeProxy.sol\":{\"keccak256\":\"0x5dccbe86285c1d4c4b2fed0ae8007620c3186d22411f43feecfbf8a028e5c7e2\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://a1a02d01a92895110505e141d05b0924ea457a25b89a161f0aeedf6b5cb41aec\",\"dweb:/ipfs/QmYWEsFbWwtrVvEF9MNQtf4X3Qt13dAE8o44tEyAS9jmKP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"masterCopy","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/proxies/SafeProxy.sol":"IProxy"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/proxies/SafeProxy.sol":{"keccak256":"0x5dccbe86285c1d4c4b2fed0ae8007620c3186d22411f43feecfbf8a028e5c7e2","urls":["bzz-raw://a1a02d01a92895110505e141d05b0924ea457a25b89a161f0aeedf6b5cb41aec","dweb:/ipfs/QmYWEsFbWwtrVvEF9MNQtf4X3Qt13dAE8o44tEyAS9jmKP"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"IProxy - Helper interface to access the singleton address of the Proxy on-chain."},"id":93}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_singleton","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161016f38038061016f83398101604081905261002f916100b9565b6001600160a01b0381166100945760405162461bcd60e51b815260206004820152602260248201527f496e76616c69642073696e676c65746f6e20616464726573732070726f766964604482015261195960f21b606482015260840160405180910390fd5b600080546001600160a01b0319166001600160a01b03929092169190911790556100e9565b6000602082840312156100cb57600080fd5b81516001600160a01b03811681146100e257600080fd5b9392505050565b6078806100f76000396000f3fe6080604052600073ffffffffffffffffffffffffffffffffffffffff8154167fa619486e00000000000000000000000000000000000000000000000000000000823503604d57808252602082f35b3682833781823684845af490503d82833e806066573d82fd5b503d81f3fea164736f6c634300080f000a","sourceMap":"520:1508:93:-:0;;;965:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1015:24:93;;1007:71;;;;-1:-1:-1;;;1007:71:93;;511:2:334;1007:71:93;;;493:21:334;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:334;;;633:32;682:19;;1007:71:93;;;;;;;;1088:9;:22;;-1:-1:-1;;;;;;1088:22:93;-1:-1:-1;;;;;1088:22:93;;;;;;;;;;520:1508;;14:290:334;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:334;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:334:o;309:398::-;520:1508:93;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600073ffffffffffffffffffffffffffffffffffffffff8154167fa619486e00000000000000000000000000000000000000000000000000000000823503604d57808252602082f35b3682833781823684845af490503d82833e806066573d82fd5b503d81f3fea164736f6c634300080f000a","sourceMap":"520:1508:93:-:0;;;1363:1;1367:42;1363:1;1357:8;1353:57;1545:66;1363:1;1528:15;1525:87;1522:176;;1641:10;1363:1;1631:21;1679:4;1363:1;1669:15;1522:176;1730:14;1363:1;;1711:34;1363:1;;1730:14;1363:1;1793:10;1786:5;1773:56;1758:71;;1863:16;1363:1;;1842:38;1899:7;1893:77;;1939:16;1363:1;1929:27;1893:77;;1993:16;1363:1;1983:27","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_singleton\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"author\":\"Stefan George - <stefan@gnosis.io>Richard Meissner - <richard@gnosis.io>\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_singleton\":\"Singleton address.\"}}},\"title\":\"SafeProxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor function sets address of singleton contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/proxies/SafeProxy.sol\":\"SafeProxy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/proxies/SafeProxy.sol\":{\"keccak256\":\"0x5dccbe86285c1d4c4b2fed0ae8007620c3186d22411f43feecfbf8a028e5c7e2\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://a1a02d01a92895110505e141d05b0924ea457a25b89a161f0aeedf6b5cb41aec\",\"dweb:/ipfs/QmYWEsFbWwtrVvEF9MNQtf4X3Qt13dAE8o44tEyAS9jmKP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_singleton","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_singleton":"Singleton address."}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Constructor function sets address of singleton contract."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/proxies/SafeProxy.sol":"SafeProxy"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/proxies/SafeProxy.sol":{"keccak256":"0x5dccbe86285c1d4c4b2fed0ae8007620c3186d22411f43feecfbf8a028e5c7e2","urls":["bzz-raw://a1a02d01a92895110505e141d05b0924ea457a25b89a161f0aeedf6b5cb41aec","dweb:/ipfs/QmYWEsFbWwtrVvEF9MNQtf4X3Qt13dAE8o44tEyAS9jmKP"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":58439,"contract":"lib/safe-contracts/contracts/proxies/SafeProxy.sol:SafeProxy","label":"singleton","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","methods":{"constructor":{"notice":"Constructor function sets address of singleton contract."}}},"devdoc":{"version":1,"kind":"dev","author":"Stefan George - <stefan@gnosis.io>Richard Meissner - <richard@gnosis.io>","methods":{"constructor":{"params":{"_singleton":"Singleton address."}}},"title":"SafeProxy - Generic proxy contract allows to execute all transactions applying the code of a master contract."},"ast":{"absolutePath":"lib/safe-contracts/contracts/proxies/SafeProxy.sol","id":58468,"exportedSymbols":{"IProxy":[58436],"SafeProxy":[58467]},"nodeType":"SourceUnit","src":"42:1987:93","nodes":[{"id":58429,"nodeType":"PragmaDirective","src":"42:31:93","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58436,"nodeType":"ContractDefinition","src":"215:79:93","nodes":[{"id":58435,"nodeType":"FunctionDefinition","src":"238:54:93","nodes":[],"functionSelector":"a619486e","implemented":false,"kind":"function","modifiers":[],"name":"masterCopy","nameLocation":"247:10:93","parameters":{"id":58431,"nodeType":"ParameterList","parameters":[],"src":"257:2:93"},"returnParameters":{"id":58434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58435,"src":"283:7:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58432,"name":"address","nodeType":"ElementaryTypeName","src":"283:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"282:9:93"},"scope":58436,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IProxy","contractDependencies":[],"contractKind":"interface","documentation":{"id":58430,"nodeType":"StructuredDocumentation","src":"75:139:93","text":" @title IProxy - Helper interface to access the singleton address of the Proxy on-chain.\n @author Richard Meissner - @rmeissner"},"fullyImplemented":false,"linearizedBaseContracts":[58436],"name":"IProxy","nameLocation":"225:6:93","scope":58468,"usedErrors":[]},{"id":58467,"nodeType":"ContractDefinition","src":"520:1508:93","nodes":[{"id":58439,"nodeType":"VariableDeclaration","src":"800:26:93","nodes":[],"constant":false,"mutability":"mutable","name":"singleton","nameLocation":"817:9:93","scope":58467,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58438,"name":"address","nodeType":"ElementaryTypeName","src":"800:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":58460,"nodeType":"FunctionDefinition","src":"965:152:93","nodes":[],"body":{"id":58459,"nodeType":"Block","src":"997:120:93","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58446,"name":"_singleton","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58442,"src":"1015:10:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":58449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1037:1:93","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":58448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1029:7:93","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58447,"name":"address","nodeType":"ElementaryTypeName","src":"1029:7:93","typeDescriptions":{}}},"id":58450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1029:10:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1015:24:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642073696e676c65746f6e20616464726573732070726f7669646564","id":58452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1041:36:93","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4a46125d24bcf992f3a005546c0f3eafebe1847b2ccd7a103878ded65e88250","typeString":"literal_string \"Invalid singleton address provided\""},"value":"Invalid singleton address provided"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f4a46125d24bcf992f3a005546c0f3eafebe1847b2ccd7a103878ded65e88250","typeString":"literal_string \"Invalid singleton address provided\""}],"id":58445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1007:7:93","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1007:71:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58454,"nodeType":"ExpressionStatement","src":"1007:71:93"},{"expression":{"id":58457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58455,"name":"singleton","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58439,"src":"1088:9:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58456,"name":"_singleton","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58442,"src":"1100:10:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1088:22:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58458,"nodeType":"ExpressionStatement","src":"1088:22:93"}]},"documentation":{"id":58440,"nodeType":"StructuredDocumentation","src":"833:127:93","text":" @notice Constructor function sets address of singleton contract.\n @param _singleton Singleton address."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":58443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58442,"mutability":"mutable","name":"_singleton","nameLocation":"985:10:93","nodeType":"VariableDeclaration","scope":58460,"src":"977:18:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58441,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"976:20:93"},"returnParameters":{"id":58444,"nodeType":"ParameterList","parameters":[],"src":"997:0:93"},"scope":58467,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58466,"nodeType":"FunctionDefinition","src":"1218:808:93","nodes":[],"body":{"id":58465,"nodeType":"Block","src":"1246:780:93","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1321:699:93","statements":[{"nodeType":"YulVariableDeclaration","src":"1335:75:93","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1363:1:93","type":"","value":"0"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1357:5:93"},"nodeType":"YulFunctionCall","src":"1357:8:93"},{"kind":"number","nodeType":"YulLiteral","src":"1367:42:93","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1353:3:93"},"nodeType":"YulFunctionCall","src":"1353:57:93"},"variables":[{"name":"_singleton","nodeType":"YulTypedName","src":"1339:10:93","type":""}]},{"body":{"nodeType":"YulBlock","src":"1613:85:93","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1638:1:93","type":"","value":"0"},{"name":"_singleton","nodeType":"YulIdentifier","src":"1641:10:93"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1631:6:93"},"nodeType":"YulFunctionCall","src":"1631:21:93"},"nodeType":"YulExpressionStatement","src":"1631:21:93"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1676:1:93","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1679:4:93","type":"","value":"0x20"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1669:6:93"},"nodeType":"YulFunctionCall","src":"1669:15:93"},"nodeType":"YulExpressionStatement","src":"1669:15:93"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1541:1:93","type":"","value":"0"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1528:12:93"},"nodeType":"YulFunctionCall","src":"1528:15:93"},{"kind":"number","nodeType":"YulLiteral","src":"1545:66:93","type":"","value":"0xa619486e00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1525:2:93"},"nodeType":"YulFunctionCall","src":"1525:87:93"},"nodeType":"YulIf","src":"1522:176:93"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1724:1:93","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1727:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1730:12:93"},"nodeType":"YulFunctionCall","src":"1730:14:93"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1711:12:93"},"nodeType":"YulFunctionCall","src":"1711:34:93"},"nodeType":"YulExpressionStatement","src":"1711:34:93"},{"nodeType":"YulVariableDeclaration","src":"1758:71:93","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"1786:3:93"},"nodeType":"YulFunctionCall","src":"1786:5:93"},{"name":"_singleton","nodeType":"YulIdentifier","src":"1793:10:93"},{"kind":"number","nodeType":"YulLiteral","src":"1805:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1808:12:93"},"nodeType":"YulFunctionCall","src":"1808:14:93"},{"kind":"number","nodeType":"YulLiteral","src":"1824:1:93","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1827:1:93","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"1773:12:93"},"nodeType":"YulFunctionCall","src":"1773:56:93"},"variables":[{"name":"success","nodeType":"YulTypedName","src":"1762:7:93","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1857:1:93","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1860:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1863:14:93"},"nodeType":"YulFunctionCall","src":"1863:16:93"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"1842:14:93"},"nodeType":"YulFunctionCall","src":"1842:38:93"},"nodeType":"YulExpressionStatement","src":"1842:38:93"},{"body":{"nodeType":"YulBlock","src":"1911:59:93","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1936:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1939:14:93"},"nodeType":"YulFunctionCall","src":"1939:16:93"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1929:6:93"},"nodeType":"YulFunctionCall","src":"1929:27:93"},"nodeType":"YulExpressionStatement","src":"1929:27:93"}]},"condition":{"arguments":[{"name":"success","nodeType":"YulIdentifier","src":"1899:7:93"},{"kind":"number","nodeType":"YulLiteral","src":"1908:1:93","type":"","value":"0"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1896:2:93"},"nodeType":"YulFunctionCall","src":"1896:14:93"},"nodeType":"YulIf","src":"1893:77:93"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1990:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1993:14:93"},"nodeType":"YulFunctionCall","src":"1993:16:93"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1983:6:93"},"nodeType":"YulFunctionCall","src":"1983:27:93"},"nodeType":"YulExpressionStatement","src":"1983:27:93"}]},"evmVersion":"london","externalReferences":[],"id":58464,"nodeType":"InlineAssembly","src":"1312:708:93"}]},"documentation":{"id":58461,"nodeType":"StructuredDocumentation","src":"1123:90:93","text":"@dev Fallback function forwards all transactions and returns all received return data."},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":58462,"nodeType":"ParameterList","parameters":[],"src":"1226:2:93"},"returnParameters":{"id":58463,"nodeType":"ParameterList","parameters":[],"src":"1246:0:93"},"scope":58467,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SafeProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":58437,"nodeType":"StructuredDocumentation","src":"296:223:93","text":" @title SafeProxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n @author Stefan George - <stefan@gnosis.io>\n @author Richard Meissner - <richard@gnosis.io>"},"fullyImplemented":true,"linearizedBaseContracts":[58467],"name":"SafeProxy","nameLocation":"529:9:93","scope":58468,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":93}
{"abi":[{"type":"constructor","inputs":[{"name":"_singleton","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161016f38038061016f83398101604081905261002f916100b9565b6001600160a01b0381166100945760405162461bcd60e51b815260206004820152602260248201527f496e76616c69642073696e676c65746f6e20616464726573732070726f766964604482015261195960f21b606482015260840160405180910390fd5b600080546001600160a01b0319166001600160a01b03929092169190911790556100e9565b6000602082840312156100cb57600080fd5b81516001600160a01b03811681146100e257600080fd5b9392505050565b6078806100f76000396000f3fe6080604052600073ffffffffffffffffffffffffffffffffffffffff8154167fa619486e00000000000000000000000000000000000000000000000000000000823503604d57808252602082f35b3682833781823684845af490503d82833e806066573d82fd5b503d81f3fea164736f6c634300080f000a","sourceMap":"520:1508:93:-:0;;;965:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1015:24:93;;1007:71;;;;-1:-1:-1;;;1007:71:93;;511:2:350;1007:71:93;;;493:21:350;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:350;;;633:32;682:19;;1007:71:93;;;;;;;;1088:9;:22;;-1:-1:-1;;;;;;1088:22:93;-1:-1:-1;;;;;1088:22:93;;;;;;;;;;520:1508;;14:290:350;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:350;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:350:o;309:398::-;520:1508:93;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600073ffffffffffffffffffffffffffffffffffffffff8154167fa619486e00000000000000000000000000000000000000000000000000000000823503604d57808252602082f35b3682833781823684845af490503d82833e806066573d82fd5b503d81f3fea164736f6c634300080f000a","sourceMap":"520:1508:93:-:0;;;1363:1;1367:42;1363:1;1357:8;1353:57;1545:66;1363:1;1528:15;1525:87;1522:176;;1641:10;1363:1;1631:21;1679:4;1363:1;1669:15;1522:176;1730:14;1363:1;;1711:34;1363:1;;1730:14;1363:1;1793:10;1786:5;1773:56;1758:71;;1863:16;1363:1;;1842:38;1899:7;1893:77;;1939:16;1363:1;1929:27;1893:77;;1993:16;1363:1;1983:27","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_singleton\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"author\":\"Stefan George - <stefan@gnosis.io>Richard Meissner - <richard@gnosis.io>\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_singleton\":\"Singleton address.\"}}},\"title\":\"SafeProxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor function sets address of singleton contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/proxies/SafeProxy.sol\":\"SafeProxy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/proxies/SafeProxy.sol\":{\"keccak256\":\"0x5dccbe86285c1d4c4b2fed0ae8007620c3186d22411f43feecfbf8a028e5c7e2\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://a1a02d01a92895110505e141d05b0924ea457a25b89a161f0aeedf6b5cb41aec\",\"dweb:/ipfs/QmYWEsFbWwtrVvEF9MNQtf4X3Qt13dAE8o44tEyAS9jmKP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_singleton","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_singleton":"Singleton address."}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Constructor function sets address of singleton contract."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/proxies/SafeProxy.sol":"SafeProxy"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/proxies/SafeProxy.sol":{"keccak256":"0x5dccbe86285c1d4c4b2fed0ae8007620c3186d22411f43feecfbf8a028e5c7e2","urls":["bzz-raw://a1a02d01a92895110505e141d05b0924ea457a25b89a161f0aeedf6b5cb41aec","dweb:/ipfs/QmYWEsFbWwtrVvEF9MNQtf4X3Qt13dAE8o44tEyAS9jmKP"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":58439,"contract":"lib/safe-contracts/contracts/proxies/SafeProxy.sol:SafeProxy","label":"singleton","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","methods":{"constructor":{"notice":"Constructor function sets address of singleton contract."}}},"devdoc":{"version":1,"kind":"dev","author":"Stefan George - <stefan@gnosis.io>Richard Meissner - <richard@gnosis.io>","methods":{"constructor":{"params":{"_singleton":"Singleton address."}}},"title":"SafeProxy - Generic proxy contract allows to execute all transactions applying the code of a master contract."},"id":93}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"57:3942:145:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;57:3942:145;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"57:3942:145:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Safe/SafeSigners.sol\":\"SafeSigners\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/Safe/SafeSigners.sol\":{\"keccak256\":\"0xa29a86f9d932fb5368dc722deeb9f74f46c9dee3a34d1804ef2d225cc5dbbfa2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1b7f3228af41a9abd99430971534b71ad171138d97ef861106c15978ee0d495\",\"dweb:/ipfs/QmZZZeT3u5C7YvZTVSsdUyYmALVewSd1bxj6bWeaqT4nwN\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/Safe/SafeSigners.sol":"SafeSigners"},"evmVersion":"london","libraries":{}},"sources":{"src/Safe/SafeSigners.sol":{"keccak256":"0xa29a86f9d932fb5368dc722deeb9f74f46c9dee3a34d1804ef2d225cc5dbbfa2","urls":["bzz-raw://f1b7f3228af41a9abd99430971534b71ad171138d97ef861106c15978ee0d495","dweb:/ipfs/QmZZZeT3u5C7YvZTVSsdUyYmALVewSd1bxj6bWeaqT4nwN"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/Safe/SafeSigners.sol","id":83937,"exportedSymbols":{"SafeSigners":[83936]},"nodeType":"SourceUnit","src":"32:3968:145","nodes":[{"id":83786,"nodeType":"PragmaDirective","src":"32:23:145","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":83936,"nodeType":"ContractDefinition","src":"57:3942:145","nodes":[{"id":83802,"nodeType":"FunctionDefinition","src":"969:794:145","nodes":[],"body":{"id":83801,"nodeType":"Block","src":"1135:628:145","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1210:547:145","statements":[{"nodeType":"YulVariableDeclaration","src":"1224:34:145","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1248:4:145","type":"","value":"0x41"},{"name":"pos","nodeType":"YulIdentifier","src":"1254:3:145"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"1244:3:145"},"nodeType":"YulFunctionCall","src":"1244:14:145"},"variables":[{"name":"signaturePos","nodeType":"YulTypedName","src":"1228:12:145","type":""}]},{"nodeType":"YulAssignment","src":"1271:52:145","value":{"arguments":[{"arguments":[{"name":"signatures","nodeType":"YulIdentifier","src":"1286:10:145"},{"arguments":[{"name":"signaturePos","nodeType":"YulIdentifier","src":"1302:12:145"},{"kind":"number","nodeType":"YulLiteral","src":"1316:4:145","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1298:3:145"},"nodeType":"YulFunctionCall","src":"1298:23:145"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1282:3:145"},"nodeType":"YulFunctionCall","src":"1282:40:145"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1276:5:145"},"nodeType":"YulFunctionCall","src":"1276:47:145"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1271:1:145"}]},{"nodeType":"YulAssignment","src":"1336:52:145","value":{"arguments":[{"arguments":[{"name":"signatures","nodeType":"YulIdentifier","src":"1351:10:145"},{"arguments":[{"name":"signaturePos","nodeType":"YulIdentifier","src":"1367:12:145"},{"kind":"number","nodeType":"YulLiteral","src":"1381:4:145","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1363:3:145"},"nodeType":"YulFunctionCall","src":"1363:23:145"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1347:3:145"},"nodeType":"YulFunctionCall","src":"1347:40:145"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1341:5:145"},"nodeType":"YulFunctionCall","src":"1341:47:145"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"1336:1:145"}]},{"nodeType":"YulAssignment","src":"1684:63:145","value":{"arguments":[{"arguments":[{"arguments":[{"name":"signatures","nodeType":"YulIdentifier","src":"1703:10:145"},{"arguments":[{"name":"signaturePos","nodeType":"YulIdentifier","src":"1719:12:145"},{"kind":"number","nodeType":"YulLiteral","src":"1733:4:145","type":"","value":"0x41"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1715:3:145"},"nodeType":"YulFunctionCall","src":"1715:23:145"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1699:3:145"},"nodeType":"YulFunctionCall","src":"1699:40:145"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1693:5:145"},"nodeType":"YulFunctionCall","src":"1693:47:145"},{"kind":"number","nodeType":"YulLiteral","src":"1742:4:145","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1689:3:145"},"nodeType":"YulFunctionCall","src":"1689:58:145"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"1684:1:145"}]}]},"evmVersion":"london","externalReferences":[{"declaration":83791,"isOffset":false,"isSlot":false,"src":"1254:3:145","valueSize":1},{"declaration":83796,"isOffset":false,"isSlot":false,"src":"1271:1:145","valueSize":1},{"declaration":83798,"isOffset":false,"isSlot":false,"src":"1336:1:145","valueSize":1},{"declaration":83789,"isOffset":false,"isSlot":false,"src":"1286:10:145","valueSize":1},{"declaration":83789,"isOffset":false,"isSlot":false,"src":"1351:10:145","valueSize":1},{"declaration":83789,"isOffset":false,"isSlot":false,"src":"1703:10:145","valueSize":1},{"declaration":83794,"isOffset":false,"isSlot":false,"src":"1684:1:145","valueSize":1}],"id":83800,"nodeType":"InlineAssembly","src":"1201:556:145"}]},"documentation":{"id":83787,"nodeType":"StructuredDocumentation","src":"83:881:145","text":"@notice Splits signature bytes into `uint8 v, bytes32 r, bytes32 s`.\n Copied directly from\n https://github.com/safe-global/safe-contracts/blob/e870f514ad34cd9654c72174d6d4a839e3c6639f/contracts/common/SignatureDecoder.sol\n @dev Make sure to perform a bounds check for @param pos, to avoid out of bounds access on @param signatures\n The signature format is a compact form of {bytes32 r}{bytes32 s}{uint8 v}\n Compact means uint8 is not padded to 32 bytes.\n @param pos Which signature to read.\n A prior bounds check of this parameter should be performed, to avoid out of bounds access.\n @param signatures Concatenated {r, s, v} signatures.\n @return v Recovery ID or Safe signature type.\n @return r Output value r of the signature.\n @return s Output value s of the signature."},"implemented":true,"kind":"function","modifiers":[],"name":"signatureSplit","nameLocation":"978:14:145","parameters":{"id":83792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83789,"mutability":"mutable","name":"signatures","nameLocation":"1015:10:145","nodeType":"VariableDeclaration","scope":83802,"src":"1002:23:145","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":83788,"name":"bytes","nodeType":"ElementaryTypeName","src":"1002:5:145","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":83791,"mutability":"mutable","name":"pos","nameLocation":"1043:3:145","nodeType":"VariableDeclaration","scope":83802,"src":"1035:11:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83790,"name":"uint256","nodeType":"ElementaryTypeName","src":"1035:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"992:60:145"},"returnParameters":{"id":83799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83794,"mutability":"mutable","name":"v","nameLocation":"1106:1:145","nodeType":"VariableDeclaration","scope":83802,"src":"1100:7:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83793,"name":"uint8","nodeType":"ElementaryTypeName","src":"1100:5:145","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83796,"mutability":"mutable","name":"r","nameLocation":"1117:1:145","nodeType":"VariableDeclaration","scope":83802,"src":"1109:9:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83795,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1109:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83798,"mutability":"mutable","name":"s","nameLocation":"1128:1:145","nodeType":"VariableDeclaration","scope":83802,"src":"1120:9:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83797,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1120:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1099:31:145"},"scope":83936,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83935,"nodeType":"FunctionDefinition","src":"2301:1696:145","nodes":[],"body":{"id":83934,"nodeType":"Block","src":"2500:1497:145","nodes":[],"statements":[{"expression":{"id":83821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83815,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83813,"src":"2510:7:145","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":83819,"name":"requiredSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83809,"src":"2534:18:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2520:13:145","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":83816,"name":"address","nodeType":"ElementaryTypeName","src":"2524:7:145","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83817,"nodeType":"ArrayTypeName","src":"2524:9:145","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":83820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2520:33:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2510:43:145","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":83822,"nodeType":"ExpressionStatement","src":"2510:43:145"},{"assignments":[83824],"declarations":[{"constant":false,"id":83824,"mutability":"mutable","name":"currentOwner","nameLocation":"2572:12:145","nodeType":"VariableDeclaration","scope":83934,"src":"2564:20:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83823,"name":"address","nodeType":"ElementaryTypeName","src":"2564:7:145","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83825,"nodeType":"VariableDeclarationStatement","src":"2564:20:145"},{"assignments":[83827],"declarations":[{"constant":false,"id":83827,"mutability":"mutable","name":"v","nameLocation":"2600:1:145","nodeType":"VariableDeclaration","scope":83934,"src":"2594:7:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83826,"name":"uint8","nodeType":"ElementaryTypeName","src":"2594:5:145","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":83828,"nodeType":"VariableDeclarationStatement","src":"2594:7:145"},{"assignments":[83830],"declarations":[{"constant":false,"id":83830,"mutability":"mutable","name":"r","nameLocation":"2619:1:145","nodeType":"VariableDeclaration","scope":83934,"src":"2611:9:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83829,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2611:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83831,"nodeType":"VariableDeclarationStatement","src":"2611:9:145"},{"assignments":[83833],"declarations":[{"constant":false,"id":83833,"mutability":"mutable","name":"s","nameLocation":"2638:1:145","nodeType":"VariableDeclaration","scope":83934,"src":"2630:9:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2630:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83834,"nodeType":"VariableDeclarationStatement","src":"2630:9:145"},{"assignments":[83836],"declarations":[{"constant":false,"id":83836,"mutability":"mutable","name":"i","nameLocation":"2657:1:145","nodeType":"VariableDeclaration","scope":83934,"src":"2649:9:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83835,"name":"uint256","nodeType":"ElementaryTypeName","src":"2649:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83837,"nodeType":"VariableDeclarationStatement","src":"2649:9:145"},{"body":{"id":83932,"nodeType":"Block","src":"2709:1282:145","statements":[{"expression":{"id":83856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":83848,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83827,"src":"2724:1:145","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83849,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83830,"src":"2727:1:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83850,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83833,"src":"2730:1:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":83851,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2723:9:145","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":83853,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83807,"src":"2750:10:145","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":83854,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83836,"src":"2762:1:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83852,"name":"signatureSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83802,"src":"2735:14:145","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)"}},"id":83855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2735:29:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"src":"2723:41:145","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83857,"nodeType":"ExpressionStatement","src":"2723:41:145"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":83860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83858,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83827,"src":"2782:1:145","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2787:1:145","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2782:6:145","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":83877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83875,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83827,"src":"3036:1:145","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":83876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3041:1:145","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3036:6:145","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":83894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83892,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83827,"src":"3282:1:145","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3330","id":83893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3286:2:145","typeDescriptions":{"typeIdentifier":"t_rational_30_by_1","typeString":"int_const 30"},"value":"30"},"src":"3282:6:145","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83922,"nodeType":"Block","src":"3716:226:145","statements":[{"expression":{"id":83920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83913,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83824,"src":"3884:12:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":83915,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83805,"src":"3909:8:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83916,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83827,"src":"3919:1:145","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83917,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83830,"src":"3922:1:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83918,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83833,"src":"3925:1:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83914,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"3899:9:145","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":83919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3899:28:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3884:43:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83921,"nodeType":"ExpressionStatement","src":"3884:43:145"}]},"id":83923,"nodeType":"IfStatement","src":"3278:664:145","trueBody":{"id":83912,"nodeType":"Block","src":"3290:420:145","statements":[{"expression":{"id":83910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83895,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83824,"src":"3563:12:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","id":83900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3635:34:145","typeDescriptions":{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},"value":"\u0019Ethereum Signed Message:\n32"},{"id":83901,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83805,"src":"3671:8:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83898,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3618:3:145","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3618:16:145","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3618:62:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83897,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3608:9:145","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3608:73:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":83906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83904,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83827,"src":"3683:1:145","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"34","id":83905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3687:1:145","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"3683:5:145","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83907,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83830,"src":"3690:1:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83908,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83833,"src":"3693:1:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83896,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"3598:9:145","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":83909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3598:97:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3563:132:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83911,"nodeType":"ExpressionStatement","src":"3563:132:145"}]}},"id":83924,"nodeType":"IfStatement","src":"3032:910:145","trueBody":{"id":83891,"nodeType":"Block","src":"3044:228:145","statements":[{"expression":{"id":83889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83878,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83824,"src":"3214:12:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":83885,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83830,"src":"3253:1:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3245:7:145","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":83883,"name":"uint256","nodeType":"ElementaryTypeName","src":"3245:7:145","typeDescriptions":{}}},"id":83886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3245:10:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3237:7:145","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":83881,"name":"uint160","nodeType":"ElementaryTypeName","src":"3237:7:145","typeDescriptions":{}}},"id":83887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3237:19:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":83880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3229:7:145","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83879,"name":"address","nodeType":"ElementaryTypeName","src":"3229:7:145","typeDescriptions":{}}},"id":83888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3229:28:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3214:43:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83890,"nodeType":"ExpressionStatement","src":"3214:43:145"}]}},"id":83925,"nodeType":"IfStatement","src":"2778:1164:145","trueBody":{"id":83874,"nodeType":"Block","src":"2790:236:145","statements":[{"expression":{"id":83872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83861,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83824,"src":"2968:12:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":83868,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83830,"src":"3007:1:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2999:7:145","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":83866,"name":"uint256","nodeType":"ElementaryTypeName","src":"2999:7:145","typeDescriptions":{}}},"id":83869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2999:10:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2991:7:145","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":83864,"name":"uint160","nodeType":"ElementaryTypeName","src":"2991:7:145","typeDescriptions":{}}},"id":83870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2991:19:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":83863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2983:7:145","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83862,"name":"address","nodeType":"ElementaryTypeName","src":"2983:7:145","typeDescriptions":{}}},"id":83871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2983:28:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2968:43:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83873,"nodeType":"ExpressionStatement","src":"2968:43:145"}]}},{"expression":{"id":83930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":83926,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83813,"src":"3955:7:145","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":83928,"indexExpression":{"id":83927,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83836,"src":"3963:1:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3955:10:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83929,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83824,"src":"3968:12:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3955:25:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83931,"nodeType":"ExpressionStatement","src":"3955:25:145"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83842,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83836,"src":"2680:1:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83843,"name":"requiredSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83809,"src":"2684:18:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2680:22:145","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83933,"initializationExpression":{"expression":{"id":83840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83838,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83836,"src":"2673:1:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":83839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2677:1:145","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2673:5:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83841,"nodeType":"ExpressionStatement","src":"2673:5:145"},"loopExpression":{"expression":{"id":83846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2704:3:145","subExpression":{"id":83845,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83836,"src":"2704:1:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83847,"nodeType":"ExpressionStatement","src":"2704:3:145"},"nodeType":"ForStatement","src":"2668:1323:145"}]},"documentation":{"id":83803,"nodeType":"StructuredDocumentation","src":"1769:527:145","text":"@notice Extract the signers from a set of signatures.\n This method is based closely on the code in the Safe.checkNSignatures() method.\n https://github.com/safe-global/safe-contracts/blob/e870f514ad34cd9654c72174d6d4a839e3c6639f/contracts/Safe.sol#L274\n It has been modified by removing all signature _validation_ code. We trust the Safe to properly validate\n the signatures.\n This method therefore simply extracts the addresses from the signatures."},"implemented":true,"kind":"function","modifiers":[],"name":"getNSigners","nameLocation":"2310:11:145","parameters":{"id":83810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83805,"mutability":"mutable","name":"dataHash","nameLocation":"2339:8:145","nodeType":"VariableDeclaration","scope":83935,"src":"2331:16:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83804,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2331:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83807,"mutability":"mutable","name":"signatures","nameLocation":"2370:10:145","nodeType":"VariableDeclaration","scope":83935,"src":"2357:23:145","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":83806,"name":"bytes","nodeType":"ElementaryTypeName","src":"2357:5:145","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":83809,"mutability":"mutable","name":"requiredSignatures","nameLocation":"2398:18:145","nodeType":"VariableDeclaration","scope":83935,"src":"2390:26:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83808,"name":"uint256","nodeType":"ElementaryTypeName","src":"2390:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2321:101:145"},"returnParameters":{"id":83814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83813,"mutability":"mutable","name":"_owners","nameLocation":"2487:7:145","nodeType":"VariableDeclaration","scope":83935,"src":"2470:24:145","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83811,"name":"address","nodeType":"ElementaryTypeName","src":"2470:7:145","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83812,"nodeType":"ArrayTypeName","src":"2470:9:145","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2469:26:145"},"scope":83936,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SafeSigners","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[83936],"name":"SafeSigners","nameLocation":"65:11:145","scope":83937,"usedErrors":[]}],"license":"MIT"},"id":145}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"57:3886:150:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;57:3886:150;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"57:3886:150:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Safe/SafeSigners.sol\":\"SafeSigners\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/Safe/SafeSigners.sol\":{\"keccak256\":\"0xc3c1ece8d6cdc8587926e2c67c401ee49a9adc2fbdb983679434f07c521576b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6bf9dfb2dcc579a3cb58eb307223b48e5ee42678a42a4ba4453251a6e2c25ba3\",\"dweb:/ipfs/QmUwFHA8SxsVYBigJEsZaKqPuyYgYSa5juYXWZpYwfuNVT\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/Safe/SafeSigners.sol":"SafeSigners"},"evmVersion":"london","libraries":{}},"sources":{"src/Safe/SafeSigners.sol":{"keccak256":"0xc3c1ece8d6cdc8587926e2c67c401ee49a9adc2fbdb983679434f07c521576b5","urls":["bzz-raw://6bf9dfb2dcc579a3cb58eb307223b48e5ee42678a42a4ba4453251a6e2c25ba3","dweb:/ipfs/QmUwFHA8SxsVYBigJEsZaKqPuyYgYSa5juYXWZpYwfuNVT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":150}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50601680601d6000396000f3fe6080604052600080fdfea164736f6c634300080f000a","sourceMap":"298:563:90:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea164736f6c634300080f000a","sourceMap":"298:563:90:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"details\":\"Should be always the first base contract of a library that is used with a Safe.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeStorage - Storage layout of the Safe contracts to be used in libraries.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/libraries/SafeStorage.sol\":\"SafeStorage\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/libraries/SafeStorage.sol\":{\"keccak256\":\"0xae0c704f3e4ec6b1436bbbd10b153feaa665ac36e556ccc4f2155e4c02f5c46a\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://f2c67b22791022356f5ca85533ecdda740aa8d5c9ed263d0c2761f2560dd1b87\",\"dweb:/ipfs/QmYf6gm89StvSTgZGR83UgSmUgJGjhGbBRRNvmxwywfiMc\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/libraries/SafeStorage.sol":"SafeStorage"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/libraries/SafeStorage.sol":{"keccak256":"0xae0c704f3e4ec6b1436bbbd10b153feaa665ac36e556ccc4f2155e4c02f5c46a","urls":["bzz-raw://f2c67b22791022356f5ca85533ecdda740aa8d5c9ed263d0c2761f2560dd1b87","dweb:/ipfs/QmYf6gm89StvSTgZGR83UgSmUgJGjhGbBRRNvmxwywfiMc"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":58297,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"singleton","offset":0,"slot":"0","type":"t_address"},{"astId":58301,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"modules","offset":0,"slot":"1","type":"t_mapping(t_address,t_address)"},{"astId":58305,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"owners","offset":0,"slot":"2","type":"t_mapping(t_address,t_address)"},{"astId":58307,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"ownerCount","offset":0,"slot":"3","type":"t_uint256"},{"astId":58309,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"threshold","offset":0,"slot":"4","type":"t_uint256"},{"astId":58311,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"nonce","offset":0,"slot":"5","type":"t_uint256"},{"astId":58313,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"_deprecatedDomainSeparator","offset":0,"slot":"6","type":"t_bytes32"},{"astId":58317,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"signedMessages","offset":0,"slot":"7","type":"t_mapping(t_bytes32,t_uint256)"},{"astId":58323,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"approvedHashes","offset":0,"slot":"8","type":"t_mapping(t_address,t_mapping(t_bytes32,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","details":"Should be always the first base contract of a library that is used with a Safe.","title":"SafeStorage - Storage layout of the Safe contracts to be used in libraries."},"ast":{"absolutePath":"lib/safe-contracts/contracts/libraries/SafeStorage.sol","id":58325,"exportedSymbols":{"SafeStorage":[58324]},"nodeType":"SourceUnit","src":"42:820:90","nodes":[{"id":58294,"nodeType":"PragmaDirective","src":"42:31:90","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58324,"nodeType":"ContractDefinition","src":"298:563:90","nodes":[{"id":58297,"nodeType":"VariableDeclaration","src":"359:26:90","nodes":[],"constant":false,"mutability":"mutable","name":"singleton","nameLocation":"376:9:90","scope":58324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58296,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":58301,"nodeType":"VariableDeclaration","src":"429:44:90","nodes":[],"constant":false,"mutability":"mutable","name":"modules","nameLocation":"466:7:90","scope":58324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":58300,"keyType":{"id":58298,"name":"address","nodeType":"ElementaryTypeName","src":"437:7:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"429:27:90","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":58299,"name":"address","nodeType":"ElementaryTypeName","src":"448:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"id":58305,"nodeType":"VariableDeclaration","src":"516:43:90","nodes":[],"constant":false,"mutability":"mutable","name":"owners","nameLocation":"553:6:90","scope":58324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":58304,"keyType":{"id":58302,"name":"address","nodeType":"ElementaryTypeName","src":"524:7:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"516:27:90","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":58303,"name":"address","nodeType":"ElementaryTypeName","src":"535:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"id":58307,"nodeType":"VariableDeclaration","src":"565:27:90","nodes":[],"constant":false,"mutability":"mutable","name":"ownerCount","nameLocation":"582:10:90","scope":58324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58306,"name":"uint256","nodeType":"ElementaryTypeName","src":"565:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":58309,"nodeType":"VariableDeclaration","src":"598:26:90","nodes":[],"constant":false,"mutability":"mutable","name":"threshold","nameLocation":"615:9:90","scope":58324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58308,"name":"uint256","nodeType":"ElementaryTypeName","src":"598:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":58311,"nodeType":"VariableDeclaration","src":"653:22:90","nodes":[],"constant":false,"mutability":"mutable","name":"nonce","nameLocation":"670:5:90","scope":58324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58310,"name":"uint256","nodeType":"ElementaryTypeName","src":"653:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":58313,"nodeType":"VariableDeclaration","src":"681:43:90","nodes":[],"constant":false,"mutability":"mutable","name":"_deprecatedDomainSeparator","nameLocation":"698:26:90","scope":58324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"681:7:90","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":58317,"nodeType":"VariableDeclaration","src":"730:51:90","nodes":[],"constant":false,"mutability":"mutable","name":"signedMessages","nameLocation":"767:14:90","scope":58324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":58316,"keyType":{"id":58314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"738:7:90","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"730:27:90","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":58315,"name":"uint256","nodeType":"ElementaryTypeName","src":"749:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"id":58323,"nodeType":"VariableDeclaration","src":"787:71:90","nodes":[],"constant":false,"mutability":"mutable","name":"approvedHashes","nameLocation":"844:14:90","scope":58324,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(address => mapping(bytes32 => uint256))"},"typeName":{"id":58322,"keyType":{"id":58318,"name":"address","nodeType":"ElementaryTypeName","src":"795:7:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"787:47:90","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(address => mapping(bytes32 => uint256))"},"valueType":{"id":58321,"keyType":{"id":58319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"814:7:90","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"806:27:90","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":58320,"name":"uint256","nodeType":"ElementaryTypeName","src":"825:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SafeStorage","contractDependencies":[],"contractKind":"contract","documentation":{"id":58295,"nodeType":"StructuredDocumentation","src":"75:222:90","text":" @title SafeStorage - Storage layout of the Safe contracts to be used in libraries.\n @dev Should be always the first base contract of a library that is used with a Safe.\n @author Richard Meissner - @rmeissner"},"fullyImplemented":true,"linearizedBaseContracts":[58324],"name":"SafeStorage","nameLocation":"307:11:90","scope":58325,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":90}
{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50601680601d6000396000f3fe6080604052600080fdfea164736f6c634300080f000a","sourceMap":"298:563:90:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea164736f6c634300080f000a","sourceMap":"298:563:90:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"details\":\"Should be always the first base contract of a library that is used with a Safe.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeStorage - Storage layout of the Safe contracts to be used in libraries.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/libraries/SafeStorage.sol\":\"SafeStorage\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/libraries/SafeStorage.sol\":{\"keccak256\":\"0xae0c704f3e4ec6b1436bbbd10b153feaa665ac36e556ccc4f2155e4c02f5c46a\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://f2c67b22791022356f5ca85533ecdda740aa8d5c9ed263d0c2761f2560dd1b87\",\"dweb:/ipfs/QmYf6gm89StvSTgZGR83UgSmUgJGjhGbBRRNvmxwywfiMc\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/libraries/SafeStorage.sol":"SafeStorage"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/libraries/SafeStorage.sol":{"keccak256":"0xae0c704f3e4ec6b1436bbbd10b153feaa665ac36e556ccc4f2155e4c02f5c46a","urls":["bzz-raw://f2c67b22791022356f5ca85533ecdda740aa8d5c9ed263d0c2761f2560dd1b87","dweb:/ipfs/QmYf6gm89StvSTgZGR83UgSmUgJGjhGbBRRNvmxwywfiMc"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":58297,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"singleton","offset":0,"slot":"0","type":"t_address"},{"astId":58301,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"modules","offset":0,"slot":"1","type":"t_mapping(t_address,t_address)"},{"astId":58305,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"owners","offset":0,"slot":"2","type":"t_mapping(t_address,t_address)"},{"astId":58307,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"ownerCount","offset":0,"slot":"3","type":"t_uint256"},{"astId":58309,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"threshold","offset":0,"slot":"4","type":"t_uint256"},{"astId":58311,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"nonce","offset":0,"slot":"5","type":"t_uint256"},{"astId":58313,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"_deprecatedDomainSeparator","offset":0,"slot":"6","type":"t_bytes32"},{"astId":58317,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"signedMessages","offset":0,"slot":"7","type":"t_mapping(t_bytes32,t_uint256)"},{"astId":58323,"contract":"lib/safe-contracts/contracts/libraries/SafeStorage.sol:SafeStorage","label":"approvedHashes","offset":0,"slot":"8","type":"t_mapping(t_address,t_mapping(t_bytes32,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","details":"Should be always the first base contract of a library that is used with a Safe.","title":"SafeStorage - Storage layout of the Safe contracts to be used in libraries."},"id":90}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"getSchema","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"register","inputs":[{"name":"schema","type":"string","internalType":"string"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Registered","inputs":[{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"registerer","type":"address","indexed":true,"internalType":"address"},{"name":"schema","type":"tuple","indexed":false,"internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"error","name":"AlreadyExists","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107fe806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806360d7a27814610098578063a2ea7c6e146100b9575b600080fd5b6100826040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f9190610473565b60405180910390f35b6100ab6100a636600461048d565b6100d9565b60405190815260200161008f565b6100cc6100c736600461053f565b61029d565b60405161008f9190610558565b60008060405180608001604052806000801b81526020018573ffffffffffffffffffffffffffffffffffffffff168152602001841515815260200187878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061015b9050826103c5565b600081815260208190526040902054909150156101a4576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825260008181526020818152604091829020845181559084015160018201805493860151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090941673ffffffffffffffffffffffffffffffffffffffff9092169190911792909217909155606083015183919060028201906102409082610682565b509050503373ffffffffffffffffffffffffffffffffffffffff16817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e8460405161028b9190610558565b60405180910390a39695505050505050565b604080516080810182526000808252602082018190529181019190915260608082015260008281526020818152604091829020825160808101845281548152600182015473ffffffffffffffffffffffffffffffffffffffff8116938201939093527401000000000000000000000000000000000000000090920460ff1615159282019290925260028201805491929160608401919061033c906105e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610368906105e0565b80156103b55780601f1061038a576101008083540402835291602001916103b5565b820191906000526020600020905b81548152906001019060200180831161039857829003601f168201915b5050505050815250509050919050565b60008160600151826020015183604001516040516020016103e89392919061079c565b604051602081830303815290604052805190602001209050919050565b60005b83811015610420578181015183820152602001610408565b50506000910152565b60008151808452610441816020860160208601610405565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104866020830184610429565b9392505050565b600080600080606085870312156104a357600080fd5b843567ffffffffffffffff808211156104bb57600080fd5b818701915087601f8301126104cf57600080fd5b8135818111156104de57600080fd5b8860208285010111156104f057600080fd5b6020928301965094505085013573ffffffffffffffffffffffffffffffffffffffff8116811461051f57600080fd5b91506040850135801515811461053457600080fd5b939692955090935050565b60006020828403121561055157600080fd5b5035919050565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff6020830151166040820152604082015115156060820152600060608301516080808401526105a960a0840182610429565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c908216806105f457607f821691505b60208210810361062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561067d57600081815260208120601f850160051c8101602086101561065a5750805b601f850160051c820191505b8181101561067957828155600101610666565b5050505b505050565b815167ffffffffffffffff81111561069c5761069c6105b1565b6106b0816106aa84546105e0565b84610633565b602080601f83116001811461070357600084156106cd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610679565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561075057888601518255948401946001909101908401610731565b508582101561078c57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600084516107ae818460208901610405565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815290151560f81b60148201526015019291505056fea164736f6c6343000813000a","sourceMap":"518:1503:10:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806360d7a27814610098578063a2ea7c6e146100b9575b600080fd5b6100826040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f9190610473565b60405180910390f35b6100ab6100a636600461048d565b6100d9565b60405190815260200161008f565b6100cc6100c736600461053f565b61029d565b60405161008f9190610558565b60008060405180608001604052806000801b81526020018573ffffffffffffffffffffffffffffffffffffffff168152602001841515815260200187878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061015b9050826103c5565b600081815260208190526040902054909150156101a4576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825260008181526020818152604091829020845181559084015160018201805493860151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090941673ffffffffffffffffffffffffffffffffffffffff9092169190911792909217909155606083015183919060028201906102409082610682565b509050503373ffffffffffffffffffffffffffffffffffffffff16817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e8460405161028b9190610558565b60405180910390a39695505050505050565b604080516080810182526000808252602082018190529181019190915260608082015260008281526020818152604091829020825160808101845281548152600182015473ffffffffffffffffffffffffffffffffffffffff8116938201939093527401000000000000000000000000000000000000000090920460ff1615159282019290925260028201805491929160608401919061033c906105e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610368906105e0565b80156103b55780601f1061038a576101008083540402835291602001916103b5565b820191906000526020600020905b81548152906001019060200180831161039857829003601f168201915b5050505050815250509050919050565b60008160600151826020015183604001516040516020016103e89392919061079c565b604051602081830303815290604052805190602001209050919050565b60005b83811015610420578181015183820152602001610408565b50506000910152565b60008151808452610441816020860160208601610405565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104866020830184610429565b9392505050565b600080600080606085870312156104a357600080fd5b843567ffffffffffffffff808211156104bb57600080fd5b818701915087601f8301126104cf57600080fd5b8135818111156104de57600080fd5b8860208285010111156104f057600080fd5b6020928301965094505085013573ffffffffffffffffffffffffffffffffffffffff8116811461051f57600080fd5b91506040850135801515811461053457600080fd5b939692955090935050565b60006020828403121561055157600080fd5b5035919050565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff6020830151166040820152604082015115156060820152600060608301516080808401526105a960a0840182610429565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c908216806105f457607f821691505b60208210810361062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561067d57600081815260208120601f850160051c8101602086101561065a5750805b601f850160051c820191505b8181101561067957828155600101610666565b5050505b505050565b815167ffffffffffffffff81111561069c5761069c6105b1565b6106b0816106aa84546105e0565b84610633565b602080601f83116001811461070357600084156106cd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610679565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561075057888601518255948401946001909101908401610731565b508582101561078c57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600084516107ae818460208901610405565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815290151560f81b60148201526015019291505056fea164736f6c6343000813000a","sourceMap":"518:1503:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;895:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;978:554;;;;;;:::i;:::-;;:::i;:::-;;;1968:25:16;;;1956:2;1941:18;978:554:10;1822:177:16;1574:114:10;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;978:554::-;1080:7;1099:32;1146:90;;;;;;;;137:1:6;1166:9:10;;1146:90;;;;1203:8;1146:90;;;;;;1224:9;1146:90;;;;;;1185:6;;1146:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1146:90:10;;;;-1:-1:-1;1099:137:10;;-1:-1:-1;1146:90:10;-1:-1:-1;1261:21:10;;-1:-1:-1;1099:137:10;1261:7;:21::i;:::-;137:1:6;1296:14:10;;;;;;;;;;:18;1247:35;;-1:-1:-1;1296:31:10;1292:84;;1350:15;;;;;;;;;;;;;;1292:84;1386:22;;;:16;1418:14;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1386:12;;1418:14;:29;;;;;;;;:::i;:::-;;;;;1479:10;1463:41;;1474:3;1463:41;1491:12;1463:41;;;;;;:::i;:::-;;;;;;;;1522:3;978:554;-1:-1:-1;;;;;;978:554:10:o;1574:114::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:9:10;:14;;;;;;;;;;;;1660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:14;1660:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1574:114;;;:::o;1818:201::-;1891:7;1944:12;:19;;;1965:12;:21;;;1988:12;:22;;;1927:84;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1917:95;;;;;;1910:102;;1818:201;;;:::o;14:250:16:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:16;238:16;;231:27;14:250::o;269:330::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;513:2;501:15;518:66;497:88;488:98;;;;588:4;484:109;;269:330;-1:-1:-1;;269:330:16:o;604:220::-;753:2;742:9;735:21;716:4;773:45;814:2;803:9;799:18;791:6;773:45;:::i;:::-;765:53;604:220;-1:-1:-1;;;604:220:16:o;829:988::-;939:6;947;955;963;1016:2;1004:9;995:7;991:23;987:32;984:52;;;1032:1;1029;1022:12;984:52;1072:9;1059:23;1101:18;1142:2;1134:6;1131:14;1128:34;;;1158:1;1155;1148:12;1128:34;1196:6;1185:9;1181:22;1171:32;;1241:7;1234:4;1230:2;1226:13;1222:27;1212:55;;1263:1;1260;1253:12;1212:55;1303:2;1290:16;1329:2;1321:6;1318:14;1315:34;;;1345:1;1342;1335:12;1315:34;1392:7;1385:4;1376:6;1372:2;1368:15;1364:26;1361:39;1358:59;;;1413:1;1410;1403:12;1358:59;1444:4;1436:13;;;;-1:-1:-1;1468:6:16;-1:-1:-1;;1509:20:16;;1496:34;1570:42;1559:54;;1549:65;;1539:93;;1628:1;1625;1618:12;1539:93;1651:5;-1:-1:-1;1708:2:16;1693:18;;1680:32;1750:15;;1743:23;1731:36;;1721:64;;1781:1;1778;1771:12;1721:64;829:988;;;;-1:-1:-1;829:988:16;;-1:-1:-1;;829:988:16:o;2004:180::-;2063:6;2116:2;2104:9;2095:7;2091:23;2087:32;2084:52;;;2132:1;2129;2122:12;2084:52;-1:-1:-1;2155:23:16;;2004:180;-1:-1:-1;2004:180:16:o;2189:594::-;2378:2;2367:9;2360:21;2423:6;2417:13;2412:2;2401:9;2397:18;2390:41;2495:42;2489:2;2481:6;2477:15;2471:22;2467:71;2462:2;2451:9;2447:18;2440:99;2607:2;2599:6;2595:15;2589:22;2582:30;2575:38;2570:2;2559:9;2555:18;2548:66;2341:4;2661:2;2653:6;2649:15;2643:22;2703:4;2696;2685:9;2681:20;2674:34;2725:52;2772:3;2761:9;2757:19;2743:12;2725:52;:::i;:::-;2717:60;2189:594;-1:-1:-1;;;;2189:594:16:o;2788:184::-;2840:77;2837:1;2830:88;2937:4;2934:1;2927:15;2961:4;2958:1;2951:15;2977:437;3056:1;3052:12;;;;3099;;;3120:61;;3174:4;3166:6;3162:17;3152:27;;3120:61;3227:2;3219:6;3216:14;3196:18;3193:38;3190:218;;3264:77;3261:1;3254:88;3365:4;3362:1;3355:15;3393:4;3390:1;3383:15;3190:218;;2977:437;;;:::o;3545:545::-;3647:2;3642:3;3639:11;3636:448;;;3683:1;3708:5;3704:2;3697:17;3753:4;3749:2;3739:19;3823:2;3811:10;3807:19;3804:1;3800:27;3794:4;3790:38;3859:4;3847:10;3844:20;3841:47;;;-1:-1:-1;3882:4:16;3841:47;3937:2;3932:3;3928:12;3925:1;3921:20;3915:4;3911:31;3901:41;;3992:82;4010:2;4003:5;4000:13;3992:82;;;4055:17;;;4036:1;4025:13;3992:82;;;3996:3;;;3636:448;3545:545;;;:::o;4326:1471::-;4452:3;4446:10;4479:18;4471:6;4468:30;4465:56;;;4501:18;;:::i;:::-;4530:97;4620:6;4580:38;4612:4;4606:11;4580:38;:::i;:::-;4574:4;4530:97;:::i;:::-;4682:4;;4746:2;4735:14;;4763:1;4758:782;;;;5584:1;5601:6;5598:89;;;-1:-1:-1;5653:19:16;;;5647:26;5598:89;4232:66;4223:1;4219:11;;;4215:84;4211:89;4201:100;4307:1;4303:11;;;4198:117;5700:81;;4728:1063;;4758:782;3492:1;3485:14;;;3529:4;3516:18;;4806:66;4794:79;;;4971:236;4985:7;4982:1;4979:14;4971:236;;;5074:19;;;5068:26;5053:42;;5166:27;;;;5134:1;5122:14;;;;5001:19;;4971:236;;;4975:3;5235:6;5226:7;5223:19;5220:261;;;5296:19;;;5290:26;5397:66;5379:1;5375:14;;;5391:3;5371:24;5367:97;5363:102;5348:118;5333:134;;5220:261;-1:-1:-1;;;;;5527:1:16;5511:14;;;5507:22;5494:36;;-1:-1:-1;4326:1471:16:o;5802:576::-;6007:3;6045:6;6039:13;6061:66;6120:6;6115:3;6108:4;6100:6;6096:17;6061:66;:::i;:::-;6196:2;6192:15;;;;6209:66;6188:88;6149:16;;;;6174:103;;;6325:14;;6318:22;6313:3;6309:32;6304:2;6293:14;;6286:56;6369:2;6358:14;;5802:576;-1:-1:-1;;5802:576:16:o","linkReferences":{}},"methodIdentifiers":{"getSchema(bytes32)":"a2ea7c6e","register(string,address,bool)":"60d7a278","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyExists\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registerer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct SchemaRecord\",\"name\":\"schema\",\"type\":\"tuple\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"getSchema\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"internalType\":\"struct SchemaRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000020\",\"events\":{\"Registered(bytes32,address,(bytes32,address,bool,string))\":{\"details\":\"Emitted when a new schema has been registered\",\"params\":{\"registerer\":\"The address of the account used to register the schema.\",\"schema\":\"The schema data.\",\"uid\":\"The schema UID.\"}}},\"kind\":\"dev\",\"methods\":{\"getSchema(bytes32)\":{\"details\":\"Returns an existing schema by UID\",\"params\":{\"uid\":\"The UID of the schema to retrieve.\"},\"returns\":{\"_0\":\"The schema data members.\"}},\"register(string,address,bool)\":{\"details\":\"Submits and reserves a new schema\",\"params\":{\"resolver\":\"An optional schema resolver.\",\"revocable\":\"Whether the schema allows revocations explicitly.\",\"schema\":\"The schema data schema.\"},\"returns\":{\"_0\":\"The UID of the new schema.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.3.0\"}},\"title\":\"SchemaRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The global attestation schemas for the Ethereum Attestation Service protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/EAS/SchemaRegistry.sol\":\"SchemaRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/EAS/Common.sol\":{\"keccak256\":\"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe\",\"dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd\"]},\"src/EAS/ISchemaRegistry.sol\":{\"keccak256\":\"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125\",\"dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq\"]},\"src/EAS/SchemaRegistry.sol\":{\"keccak256\":\"0xce55204139cfaede75d511e372e94fdb17a8b03bcff87bed34ddeaa31b123fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f96648cea0c4567e08ffaf5f1b96b35b61ccfe01e9f30c27c89d3c472a87bb68\",\"dweb:/ipfs/Qmdep2mSAGNwxtbMEUGmH5SMPGP4fEDGM2yeJc8fk6rQHT\"]},\"src/EAS/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61\",\"dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AlreadyExists"},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true},{"internalType":"address","name":"registerer","type":"address","indexed":true},{"internalType":"struct SchemaRecord","name":"schema","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}],"indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSchema","outputs":[{"internalType":"struct SchemaRecord","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}]}]},{"inputs":[{"internalType":"string","name":"schema","type":"string"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/EAS/SchemaRegistry.sol":"SchemaRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"src/EAS/Common.sol":{"keccak256":"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309","urls":["bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe","dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd"],"license":"MIT"},"src/EAS/ISchemaRegistry.sol":{"keccak256":"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b","urls":["bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125","dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq"],"license":"MIT"},"src/EAS/SchemaRegistry.sol":{"keccak256":"0xce55204139cfaede75d511e372e94fdb17a8b03bcff87bed34ddeaa31b123fdd","urls":["bzz-raw://f96648cea0c4567e08ffaf5f1b96b35b61ccfe01e9f30c27c89d3c472a87bb68","dweb:/ipfs/Qmdep2mSAGNwxtbMEUGmH5SMPGP4fEDGM2yeJc8fk6rQHT"],"license":"MIT"},"src/EAS/resolver/ISchemaResolver.sol":{"keccak256":"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000","urls":["bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61","dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":3645,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"_registry","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(SchemaRecord)3587_storage)"},{"astId":3651,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)49_storage"}],"types":{"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(ISchemaResolver)4157":{"encoding":"inplace","label":"contract ISchemaResolver","numberOfBytes":"20"},"t_mapping(t_bytes32,t_struct(SchemaRecord)3587_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct SchemaRecord)","numberOfBytes":"32","value":"t_struct(SchemaRecord)3587_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(SchemaRecord)3587_storage":{"encoding":"inplace","label":"struct SchemaRecord","numberOfBytes":"96","members":[{"astId":3579,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"uid","offset":0,"slot":"0","type":"t_bytes32"},{"astId":3582,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"resolver","offset":0,"slot":"1","type":"t_contract(ISchemaResolver)4157"},{"astId":3584,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"revocable","offset":20,"slot":"1","type":"t_bool"},{"astId":3586,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"schema","offset":0,"slot":"2","type":"t_string_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Semantic version."}},"notice":"The global attestation schemas for the Ethereum Attestation Service protocol."},"devdoc":{"version":1,"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"events":{"Registered(bytes32,address,(bytes32,address,bool,string))":{"details":"Emitted when a new schema has been registered","params":{"registerer":"The address of the account used to register the schema.","schema":"The schema data.","uid":"The schema UID."}}},"title":"SchemaRegistry"},"ast":{"absolutePath":"src/EAS/SchemaRegistry.sol","id":3755,"exportedSymbols":{"EMPTY_UID":[1164],"ISchemaRegistry":[3621],"ISchemaResolver":[4157],"ISemver":[4616],"MAX_GAP":[1210],"SchemaRecord":[3587],"SchemaRegistry":[3754]},"nodeType":"SourceUnit","src":"32:1990:10","nodes":[{"id":3623,"nodeType":"PragmaDirective","src":"32:23:10","nodes":[],"literals":["solidity","0.8",".19"]},{"id":3625,"nodeType":"ImportDirective","src":"57:52:10","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":3755,"sourceUnit":4617,"symbolAliases":[{"foreign":{"id":3624,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4616,"src":"66:7:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3627,"nodeType":"ImportDirective","src":"110:71:10","nodes":[],"absolutePath":"src/EAS/resolver/ISchemaResolver.sol","file":"src/EAS/resolver/ISchemaResolver.sol","nameLocation":"-1:-1:-1","scope":3755,"sourceUnit":4158,"symbolAliases":[{"foreign":{"id":3626,"name":"ISchemaResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4157,"src":"119:15:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3630,"nodeType":"ImportDirective","src":"182:56:10","nodes":[],"absolutePath":"src/EAS/Common.sol","file":"src/EAS/Common.sol","nameLocation":"-1:-1:-1","scope":3755,"sourceUnit":1336,"symbolAliases":[{"foreign":{"id":3628,"name":"EMPTY_UID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"191:9:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":3629,"name":"MAX_GAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"202:7:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3633,"nodeType":"ImportDirective","src":"239:76:10","nodes":[],"absolutePath":"src/EAS/ISchemaRegistry.sol","file":"src/EAS/ISchemaRegistry.sol","nameLocation":"-1:-1:-1","scope":3755,"sourceUnit":3622,"symbolAliases":[{"foreign":{"id":3631,"name":"ISchemaRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3621,"src":"248:15:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":3632,"name":"SchemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3587,"src":"265:12:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3754,"nodeType":"ContractDefinition","src":"518:1503:10","nodes":[{"id":3640,"nodeType":"ErrorDefinition","src":"576:22:10","nodes":[],"errorSelector":"23369fa6","name":"AlreadyExists","nameLocation":"582:13:10","parameters":{"id":3639,"nodeType":"ParameterList","parameters":[],"src":"595:2:10"}},{"id":3645,"nodeType":"VariableDeclaration","src":"668:67:10","nodes":[],"constant":false,"mutability":"mutable","name":"_registry","nameLocation":"726:9:10","scope":3754,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemaRecord_$3587_storage_$","typeString":"mapping(bytes32 => struct SchemaRecord)"},"typeName":{"id":3644,"keyName":"uid","keyNameLocation":"684:3:10","keyType":{"id":3641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"676:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"668:49:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemaRecord_$3587_storage_$","typeString":"mapping(bytes32 => struct SchemaRecord)"},"valueName":"schemaRecord","valueNameLocation":"704:12:10","valueType":{"id":3643,"nodeType":"UserDefinedTypeName","pathNode":{"id":3642,"name":"SchemaRecord","nameLocations":["691:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"691:12:10"},"referencedDeclaration":3587,"src":"691:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage_ptr","typeString":"struct SchemaRecord"}}},"visibility":"private"},{"id":3651,"nodeType":"VariableDeclaration","src":"791:34:10","nodes":[],"constant":false,"mutability":"mutable","name":"__gap","nameLocation":"820:5:10","scope":3754,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":3646,"name":"uint256","nodeType":"ElementaryTypeName","src":"791:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3650,"length":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":3649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":3647,"name":"MAX_GAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"799:7:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"809:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"799:11:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"ArrayTypeName","src":"791:20:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"id":3655,"nodeType":"VariableDeclaration","src":"895:40:10","nodes":[],"baseFunctions":[4615],"constant":true,"documentation":{"id":3652,"nodeType":"StructuredDocumentation","src":"832:58:10","text":"@notice Semantic version.\n @custom:semver 1.3.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"918:7:10","scope":3754,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3653,"name":"string","nodeType":"ElementaryTypeName","src":"895:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e332e30","id":3654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"928:7:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a08c3e203132c561752255a4d52ffae85bb9c5d33cb3291520dea1b84356389","typeString":"literal_string \"1.3.0\""},"value":"1.3.0"},"visibility":"public"},{"id":3717,"nodeType":"FunctionDefinition","src":"978:554:10","nodes":[],"body":{"id":3716,"nodeType":"Block","src":"1089:443:10","nodes":[],"statements":[{"assignments":[3670],"declarations":[{"constant":false,"id":3670,"mutability":"mutable","name":"schemaRecord","nameLocation":"1119:12:10","nodeType":"VariableDeclaration","scope":3716,"src":"1099:32:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord"},"typeName":{"id":3669,"nodeType":"UserDefinedTypeName","pathNode":{"id":3668,"name":"SchemaRecord","nameLocations":["1099:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"1099:12:10"},"referencedDeclaration":3587,"src":"1099:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage_ptr","typeString":"struct SchemaRecord"}},"visibility":"internal"}],"id":3677,"initialValue":{"arguments":[{"id":3672,"name":"EMPTY_UID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"1166:9:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3673,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3658,"src":"1185:6:10","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":3674,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3661,"src":"1203:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"}},{"id":3675,"name":"revocable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"1224:9:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":3671,"name":"SchemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3587,"src":"1146:12:10","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SchemaRecord_$3587_storage_ptr_$","typeString":"type(struct SchemaRecord storage pointer)"}},"id":3676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1161:3:10","1177:6:10","1193:8:10","1213:9:10"],"names":["uid","schema","resolver","revocable"],"nodeType":"FunctionCall","src":"1146:90:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}},"nodeType":"VariableDeclarationStatement","src":"1099:137:10"},{"assignments":[3679],"declarations":[{"constant":false,"id":3679,"mutability":"mutable","name":"uid","nameLocation":"1255:3:10","nodeType":"VariableDeclaration","scope":3716,"src":"1247:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1247:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3683,"initialValue":{"arguments":[{"id":3681,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3670,"src":"1269:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}],"id":3680,"name":"_getUID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3753,"src":"1261:7:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SchemaRecord_$3587_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct SchemaRecord memory) pure returns (bytes32)"}},"id":3682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1261:21:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1247:35:10"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":3684,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3645,"src":"1296:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemaRecord_$3587_storage_$","typeString":"mapping(bytes32 => struct SchemaRecord storage ref)"}},"id":3686,"indexExpression":{"id":3685,"name":"uid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"1306:3:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1296:14:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage","typeString":"struct SchemaRecord storage ref"}},"id":3687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:3:10","memberName":"uid","nodeType":"MemberAccess","referencedDeclaration":3579,"src":"1296:18:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3688,"name":"EMPTY_UID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"1318:9:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1296:31:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3694,"nodeType":"IfStatement","src":"1292:84:10","trueBody":{"id":3693,"nodeType":"Block","src":"1329:47:10","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3690,"name":"AlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3640,"src":"1350:13:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1350:15:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3692,"nodeType":"RevertStatement","src":"1343:22:10"}]}},{"expression":{"id":3699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3695,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3670,"src":"1386:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}},"id":3697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1399:3:10","memberName":"uid","nodeType":"MemberAccess","referencedDeclaration":3579,"src":"1386:16:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3698,"name":"uid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"1405:3:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1386:22:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3700,"nodeType":"ExpressionStatement","src":"1386:22:10"},{"expression":{"id":3705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3701,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3645,"src":"1418:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemaRecord_$3587_storage_$","typeString":"mapping(bytes32 => struct SchemaRecord storage ref)"}},"id":3703,"indexExpression":{"id":3702,"name":"uid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"1428:3:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1418:14:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage","typeString":"struct SchemaRecord storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3704,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3670,"src":"1435:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}},"src":"1418:29:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage","typeString":"struct SchemaRecord storage ref"}},"id":3706,"nodeType":"ExpressionStatement","src":"1418:29:10"},{"eventCall":{"arguments":[{"id":3708,"name":"uid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"1474:3:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3709,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1479:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1483:6:10","memberName":"sender","nodeType":"MemberAccess","src":"1479:10:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3711,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3670,"src":"1491:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}],"id":3707,"name":"Registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3598,"src":"1463:10:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_struct$_SchemaRecord_$3587_memory_ptr_$returns$__$","typeString":"function (bytes32,address,struct SchemaRecord memory)"}},"id":3712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1463:41:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3713,"nodeType":"EmitStatement","src":"1458:46:10"},{"expression":{"id":3714,"name":"uid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"1522:3:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3667,"id":3715,"nodeType":"Return","src":"1515:10:10"}]},"baseFunctions":[3611],"documentation":{"id":3656,"nodeType":"StructuredDocumentation","src":"942:31:10","text":"@inheritdoc ISchemaRegistry"},"functionSelector":"60d7a278","implemented":true,"kind":"function","modifiers":[],"name":"register","nameLocation":"987:8:10","parameters":{"id":3664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3658,"mutability":"mutable","name":"schema","nameLocation":"1012:6:10","nodeType":"VariableDeclaration","scope":3717,"src":"996:22:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3657,"name":"string","nodeType":"ElementaryTypeName","src":"996:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3661,"mutability":"mutable","name":"resolver","nameLocation":"1036:8:10","nodeType":"VariableDeclaration","scope":3717,"src":"1020:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"},"typeName":{"id":3660,"nodeType":"UserDefinedTypeName","pathNode":{"id":3659,"name":"ISchemaResolver","nameLocations":["1020:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":4157,"src":"1020:15:10"},"referencedDeclaration":4157,"src":"1020:15:10","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"}},"visibility":"internal"},{"constant":false,"id":3663,"mutability":"mutable","name":"revocable","nameLocation":"1051:9:10","nodeType":"VariableDeclaration","scope":3717,"src":"1046:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3662,"name":"bool","nodeType":"ElementaryTypeName","src":"1046:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"995:66:10"},"returnParameters":{"id":3667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3717,"src":"1080:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3665,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1080:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1079:9:10"},"scope":3754,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":3731,"nodeType":"FunctionDefinition","src":"1574:114:10","nodes":[],"body":{"id":3730,"nodeType":"Block","src":"1650:38:10","nodes":[],"statements":[{"expression":{"baseExpression":{"id":3726,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3645,"src":"1667:9:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemaRecord_$3587_storage_$","typeString":"mapping(bytes32 => struct SchemaRecord storage ref)"}},"id":3728,"indexExpression":{"id":3727,"name":"uid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"1677:3:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1667:14:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage","typeString":"struct SchemaRecord storage ref"}},"functionReturnParameters":3725,"id":3729,"nodeType":"Return","src":"1660:21:10"}]},"baseFunctions":[3620],"documentation":{"id":3718,"nodeType":"StructuredDocumentation","src":"1538:31:10","text":"@inheritdoc ISchemaRegistry"},"functionSelector":"a2ea7c6e","implemented":true,"kind":"function","modifiers":[],"name":"getSchema","nameLocation":"1583:9:10","parameters":{"id":3721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3720,"mutability":"mutable","name":"uid","nameLocation":"1601:3:10","nodeType":"VariableDeclaration","scope":3731,"src":"1593:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3719,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1593:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1592:13:10"},"returnParameters":{"id":3725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3731,"src":"1629:19:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord"},"typeName":{"id":3723,"nodeType":"UserDefinedTypeName","pathNode":{"id":3722,"name":"SchemaRecord","nameLocations":["1629:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"1629:12:10"},"referencedDeclaration":3587,"src":"1629:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage_ptr","typeString":"struct SchemaRecord"}},"visibility":"internal"}],"src":"1628:21:10"},"scope":3754,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":3753,"nodeType":"FunctionDefinition","src":"1818:201:10","nodes":[],"body":{"id":3752,"nodeType":"Block","src":"1900:119:10","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":3743,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"1944:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}},"id":3744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1957:6:10","memberName":"schema","nodeType":"MemberAccess","referencedDeclaration":3586,"src":"1944:19:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":3745,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"1965:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}},"id":3746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1978:8:10","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":3582,"src":"1965:21:10","typeDescriptions":{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"}},{"expression":{"id":3747,"name":"schemaRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"1988:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord memory"}},"id":3748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2001:9:10","memberName":"revocable","nodeType":"MemberAccess","referencedDeclaration":3584,"src":"1988:22:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_contract$_ISchemaResolver_$4157","typeString":"contract ISchemaResolver"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3741,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1927:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1931:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"1927:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1927:84:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3740,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1917:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1917:95:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3739,"id":3751,"nodeType":"Return","src":"1910:102:10"}]},"documentation":{"id":3732,"nodeType":"StructuredDocumentation","src":"1694:119:10","text":"@dev Calculates a UID for a given schema.\n @param schemaRecord The input schema.\n @return schema UID."},"implemented":true,"kind":"function","modifiers":[],"name":"_getUID","nameLocation":"1827:7:10","parameters":{"id":3736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3735,"mutability":"mutable","name":"schemaRecord","nameLocation":"1855:12:10","nodeType":"VariableDeclaration","scope":3753,"src":"1835:32:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_memory_ptr","typeString":"struct SchemaRecord"},"typeName":{"id":3734,"nodeType":"UserDefinedTypeName","pathNode":{"id":3733,"name":"SchemaRecord","nameLocations":["1835:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":3587,"src":"1835:12:10"},"referencedDeclaration":3587,"src":"1835:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_SchemaRecord_$3587_storage_ptr","typeString":"struct SchemaRecord"}},"visibility":"internal"}],"src":"1834:34:10"},"returnParameters":{"id":3739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3738,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3753,"src":"1891:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1891:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1890:9:10"},"scope":3754,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":3635,"name":"ISchemaRegistry","nameLocations":["545:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":3621,"src":"545:15:10"},"id":3636,"nodeType":"InheritanceSpecifier","src":"545:15:10"},{"baseName":{"id":3637,"name":"ISemver","nameLocations":["562:7:10"],"nodeType":"IdentifierPath","referencedDeclaration":4616,"src":"562:7:10"},"id":3638,"nodeType":"InheritanceSpecifier","src":"562:7:10"}],"canonicalName":"SchemaRegistry","contractDependencies":[],"contractKind":"contract","documentation":{"id":3634,"nodeType":"StructuredDocumentation","src":"317:201:10","text":"@custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000020\n @title SchemaRegistry\n @notice The global attestation schemas for the Ethereum Attestation Service protocol."},"fullyImplemented":true,"linearizedBaseContracts":[3754,4616,3621],"name":"SchemaRegistry","nameLocation":"527:14:10","scope":3755,"usedErrors":[3640]}],"license":"MIT"},"id":10}
{"abi":[{"type":"function","name":"getSchema","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"register","inputs":[{"name":"schema","type":"string","internalType":"string"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Registered","inputs":[{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"registerer","type":"address","indexed":true,"internalType":"address"},{"name":"schema","type":"tuple","indexed":false,"internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"error","name":"AlreadyExists","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107fe806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806360d7a27814610098578063a2ea7c6e146100b9575b600080fd5b6100826040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f9190610473565b60405180910390f35b6100ab6100a636600461048d565b6100d9565b60405190815260200161008f565b6100cc6100c736600461053f565b61029d565b60405161008f9190610558565b60008060405180608001604052806000801b81526020018573ffffffffffffffffffffffffffffffffffffffff168152602001841515815260200187878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061015b9050826103c5565b600081815260208190526040902054909150156101a4576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825260008181526020818152604091829020845181559084015160018201805493860151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090941673ffffffffffffffffffffffffffffffffffffffff9092169190911792909217909155606083015183919060028201906102409082610682565b509050503373ffffffffffffffffffffffffffffffffffffffff16817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e8460405161028b9190610558565b60405180910390a39695505050505050565b604080516080810182526000808252602082018190529181019190915260608082015260008281526020818152604091829020825160808101845281548152600182015473ffffffffffffffffffffffffffffffffffffffff8116938201939093527401000000000000000000000000000000000000000090920460ff1615159282019290925260028201805491929160608401919061033c906105e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610368906105e0565b80156103b55780601f1061038a576101008083540402835291602001916103b5565b820191906000526020600020905b81548152906001019060200180831161039857829003601f168201915b5050505050815250509050919050565b60008160600151826020015183604001516040516020016103e89392919061079c565b604051602081830303815290604052805190602001209050919050565b60005b83811015610420578181015183820152602001610408565b50506000910152565b60008151808452610441816020860160208601610405565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104866020830184610429565b9392505050565b600080600080606085870312156104a357600080fd5b843567ffffffffffffffff808211156104bb57600080fd5b818701915087601f8301126104cf57600080fd5b8135818111156104de57600080fd5b8860208285010111156104f057600080fd5b6020928301965094505085013573ffffffffffffffffffffffffffffffffffffffff8116811461051f57600080fd5b91506040850135801515811461053457600080fd5b939692955090935050565b60006020828403121561055157600080fd5b5035919050565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff6020830151166040820152604082015115156060820152600060608301516080808401526105a960a0840182610429565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c908216806105f457607f821691505b60208210810361062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561067d57600081815260208120601f850160051c8101602086101561065a5750805b601f850160051c820191505b8181101561067957828155600101610666565b5050505b505050565b815167ffffffffffffffff81111561069c5761069c6105b1565b6106b0816106aa84546105e0565b84610633565b602080601f83116001811461070357600084156106cd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610679565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561075057888601518255948401946001909101908401610731565b508582101561078c57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600084516107ae818460208901610405565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815290151560f81b60148201526015019291505056fea164736f6c6343000813000a","sourceMap":"518:1503:10:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c806354fd4d501461004657806360d7a27814610098578063a2ea7c6e146100b9575b600080fd5b6100826040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b60405161008f9190610473565b60405180910390f35b6100ab6100a636600461048d565b6100d9565b60405190815260200161008f565b6100cc6100c736600461053f565b61029d565b60405161008f9190610558565b60008060405180608001604052806000801b81526020018573ffffffffffffffffffffffffffffffffffffffff168152602001841515815260200187878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061015b9050826103c5565b600081815260208190526040902054909150156101a4576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80825260008181526020818152604091829020845181559084015160018201805493860151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090941673ffffffffffffffffffffffffffffffffffffffff9092169190911792909217909155606083015183919060028201906102409082610682565b509050503373ffffffffffffffffffffffffffffffffffffffff16817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e8460405161028b9190610558565b60405180910390a39695505050505050565b604080516080810182526000808252602082018190529181019190915260608082015260008281526020818152604091829020825160808101845281548152600182015473ffffffffffffffffffffffffffffffffffffffff8116938201939093527401000000000000000000000000000000000000000090920460ff1615159282019290925260028201805491929160608401919061033c906105e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610368906105e0565b80156103b55780601f1061038a576101008083540402835291602001916103b5565b820191906000526020600020905b81548152906001019060200180831161039857829003601f168201915b5050505050815250509050919050565b60008160600151826020015183604001516040516020016103e89392919061079c565b604051602081830303815290604052805190602001209050919050565b60005b83811015610420578181015183820152602001610408565b50506000910152565b60008151808452610441816020860160208601610405565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104866020830184610429565b9392505050565b600080600080606085870312156104a357600080fd5b843567ffffffffffffffff808211156104bb57600080fd5b818701915087601f8301126104cf57600080fd5b8135818111156104de57600080fd5b8860208285010111156104f057600080fd5b6020928301965094505085013573ffffffffffffffffffffffffffffffffffffffff8116811461051f57600080fd5b91506040850135801515811461053457600080fd5b939692955090935050565b60006020828403121561055157600080fd5b5035919050565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff6020830151166040820152604082015115156060820152600060608301516080808401526105a960a0840182610429565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c908216806105f457607f821691505b60208210810361062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561067d57600081815260208120601f850160051c8101602086101561065a5750805b601f850160051c820191505b8181101561067957828155600101610666565b5050505b505050565b815167ffffffffffffffff81111561069c5761069c6105b1565b6106b0816106aa84546105e0565b84610633565b602080601f83116001811461070357600084156106cd5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610679565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561075057888601518255948401946001909101908401610731565b508582101561078c57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600084516107ae818460208901610405565b60609490941b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190930190815290151560f81b60148201526015019291505056fea164736f6c6343000813000a","sourceMap":"518:1503:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;895:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;978:554;;;;;;:::i;:::-;;:::i;:::-;;;1968:25:16;;;1956:2;1941:18;978:554:10;1822:177:16;1574:114:10;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;978:554::-;1080:7;1099:32;1146:90;;;;;;;;137:1:6;1166:9:10;;1146:90;;;;1203:8;1146:90;;;;;;1224:9;1146:90;;;;;;1185:6;;1146:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1146:90:10;;;;-1:-1:-1;1099:137:10;;-1:-1:-1;1146:90:10;-1:-1:-1;1261:21:10;;-1:-1:-1;1099:137:10;1261:7;:21::i;:::-;137:1:6;1296:14:10;;;;;;;;;;:18;1247:35;;-1:-1:-1;1296:31:10;1292:84;;1350:15;;;;;;;;;;;;;;1292:84;1386:22;;;:16;1418:14;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1386:12;;1418:14;:29;;;;;;;;:::i;:::-;;;;;1479:10;1463:41;;1474:3;1463:41;1491:12;1463:41;;;;;;:::i;:::-;;;;;;;;1522:3;978:554;-1:-1:-1;;;;;;978:554:10:o;1574:114::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:9:10;:14;;;;;;;;;;;;1660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:14;1660:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1574:114;;;:::o;1818:201::-;1891:7;1944:12;:19;;;1965:12;:21;;;1988:12;:22;;;1927:84;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1917:95;;;;;;1910:102;;1818:201;;;:::o;14:250:16:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:16;238:16;;231:27;14:250::o;269:330::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;513:2;501:15;518:66;497:88;488:98;;;;588:4;484:109;;269:330;-1:-1:-1;;269:330:16:o;604:220::-;753:2;742:9;735:21;716:4;773:45;814:2;803:9;799:18;791:6;773:45;:::i;:::-;765:53;604:220;-1:-1:-1;;;604:220:16:o;829:988::-;939:6;947;955;963;1016:2;1004:9;995:7;991:23;987:32;984:52;;;1032:1;1029;1022:12;984:52;1072:9;1059:23;1101:18;1142:2;1134:6;1131:14;1128:34;;;1158:1;1155;1148:12;1128:34;1196:6;1185:9;1181:22;1171:32;;1241:7;1234:4;1230:2;1226:13;1222:27;1212:55;;1263:1;1260;1253:12;1212:55;1303:2;1290:16;1329:2;1321:6;1318:14;1315:34;;;1345:1;1342;1335:12;1315:34;1392:7;1385:4;1376:6;1372:2;1368:15;1364:26;1361:39;1358:59;;;1413:1;1410;1403:12;1358:59;1444:4;1436:13;;;;-1:-1:-1;1468:6:16;-1:-1:-1;;1509:20:16;;1496:34;1570:42;1559:54;;1549:65;;1539:93;;1628:1;1625;1618:12;1539:93;1651:5;-1:-1:-1;1708:2:16;1693:18;;1680:32;1750:15;;1743:23;1731:36;;1721:64;;1781:1;1778;1771:12;1721:64;829:988;;;;-1:-1:-1;829:988:16;;-1:-1:-1;;829:988:16:o;2004:180::-;2063:6;2116:2;2104:9;2095:7;2091:23;2087:32;2084:52;;;2132:1;2129;2122:12;2084:52;-1:-1:-1;2155:23:16;;2004:180;-1:-1:-1;2004:180:16:o;2189:594::-;2378:2;2367:9;2360:21;2423:6;2417:13;2412:2;2401:9;2397:18;2390:41;2495:42;2489:2;2481:6;2477:15;2471:22;2467:71;2462:2;2451:9;2447:18;2440:99;2607:2;2599:6;2595:15;2589:22;2582:30;2575:38;2570:2;2559:9;2555:18;2548:66;2341:4;2661:2;2653:6;2649:15;2643:22;2703:4;2696;2685:9;2681:20;2674:34;2725:52;2772:3;2761:9;2757:19;2743:12;2725:52;:::i;:::-;2717:60;2189:594;-1:-1:-1;;;;2189:594:16:o;2788:184::-;2840:77;2837:1;2830:88;2937:4;2934:1;2927:15;2961:4;2958:1;2951:15;2977:437;3056:1;3052:12;;;;3099;;;3120:61;;3174:4;3166:6;3162:17;3152:27;;3120:61;3227:2;3219:6;3216:14;3196:18;3193:38;3190:218;;3264:77;3261:1;3254:88;3365:4;3362:1;3355:15;3393:4;3390:1;3383:15;3190:218;;2977:437;;;:::o;3545:545::-;3647:2;3642:3;3639:11;3636:448;;;3683:1;3708:5;3704:2;3697:17;3753:4;3749:2;3739:19;3823:2;3811:10;3807:19;3804:1;3800:27;3794:4;3790:38;3859:4;3847:10;3844:20;3841:47;;;-1:-1:-1;3882:4:16;3841:47;3937:2;3932:3;3928:12;3925:1;3921:20;3915:4;3911:31;3901:41;;3992:82;4010:2;4003:5;4000:13;3992:82;;;4055:17;;;4036:1;4025:13;3992:82;;;3996:3;;;3636:448;3545:545;;;:::o;4326:1471::-;4452:3;4446:10;4479:18;4471:6;4468:30;4465:56;;;4501:18;;:::i;:::-;4530:97;4620:6;4580:38;4612:4;4606:11;4580:38;:::i;:::-;4574:4;4530:97;:::i;:::-;4682:4;;4746:2;4735:14;;4763:1;4758:782;;;;5584:1;5601:6;5598:89;;;-1:-1:-1;5653:19:16;;;5647:26;5598:89;4232:66;4223:1;4219:11;;;4215:84;4211:89;4201:100;4307:1;4303:11;;;4198:117;5700:81;;4728:1063;;4758:782;3492:1;3485:14;;;3529:4;3516:18;;4806:66;4794:79;;;4971:236;4985:7;4982:1;4979:14;4971:236;;;5074:19;;;5068:26;5053:42;;5166:27;;;;5134:1;5122:14;;;;5001:19;;4971:236;;;4975:3;5235:6;5226:7;5223:19;5220:261;;;5296:19;;;5290:26;5397:66;5379:1;5375:14;;;5391:3;5371:24;5367:97;5363:102;5348:118;5333:134;;5220:261;-1:-1:-1;;;;;5527:1:16;5511:14;;;5507:22;5494:36;;-1:-1:-1;4326:1471:16:o;5802:576::-;6007:3;6045:6;6039:13;6061:66;6120:6;6115:3;6108:4;6100:6;6096:17;6061:66;:::i;:::-;6196:2;6192:15;;;;6209:66;6188:88;6149:16;;;;6174:103;;;6325:14;;6318:22;6313:3;6309:32;6304:2;6293:14;;6286:56;6369:2;6358:14;;5802:576;-1:-1:-1;;5802:576:16:o","linkReferences":{}},"methodIdentifiers":{"getSchema(bytes32)":"a2ea7c6e","register(string,address,bool)":"60d7a278","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyExists\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registerer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct SchemaRecord\",\"name\":\"schema\",\"type\":\"tuple\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"getSchema\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"internalType\":\"struct SchemaRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000020\",\"events\":{\"Registered(bytes32,address,(bytes32,address,bool,string))\":{\"details\":\"Emitted when a new schema has been registered\",\"params\":{\"registerer\":\"The address of the account used to register the schema.\",\"schema\":\"The schema data.\",\"uid\":\"The schema UID.\"}}},\"kind\":\"dev\",\"methods\":{\"getSchema(bytes32)\":{\"details\":\"Returns an existing schema by UID\",\"params\":{\"uid\":\"The UID of the schema to retrieve.\"},\"returns\":{\"_0\":\"The schema data members.\"}},\"register(string,address,bool)\":{\"details\":\"Submits and reserves a new schema\",\"params\":{\"resolver\":\"An optional schema resolver.\",\"revocable\":\"Whether the schema allows revocations explicitly.\",\"schema\":\"The schema data schema.\"},\"returns\":{\"_0\":\"The UID of the new schema.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.3.0\"}},\"title\":\"SchemaRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The global attestation schemas for the Ethereum Attestation Service protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/EAS/SchemaRegistry.sol\":\"SchemaRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/EAS/Common.sol\":{\"keccak256\":\"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe\",\"dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd\"]},\"src/EAS/ISchemaRegistry.sol\":{\"keccak256\":\"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125\",\"dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq\"]},\"src/EAS/SchemaRegistry.sol\":{\"keccak256\":\"0xce55204139cfaede75d511e372e94fdb17a8b03bcff87bed34ddeaa31b123fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f96648cea0c4567e08ffaf5f1b96b35b61ccfe01e9f30c27c89d3c472a87bb68\",\"dweb:/ipfs/Qmdep2mSAGNwxtbMEUGmH5SMPGP4fEDGM2yeJc8fk6rQHT\"]},\"src/EAS/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61\",\"dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AlreadyExists"},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true},{"internalType":"address","name":"registerer","type":"address","indexed":true},{"internalType":"struct SchemaRecord","name":"schema","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}],"indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSchema","outputs":[{"internalType":"struct SchemaRecord","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}]}]},{"inputs":[{"internalType":"string","name":"schema","type":"string"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"version":1},"userdoc":{"kind":"user","methods":{"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/EAS/SchemaRegistry.sol":"SchemaRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"src/EAS/Common.sol":{"keccak256":"0xf9ddc182aaf50d620d3cbca8037ee32ae5062bfc495524f91b677668176f9309","urls":["bzz-raw://ef8a29db6fb14f26b81e3ccc33f96ee25395383da00933af8799342260e76efe","dweb:/ipfs/QmQc3WmVZhpoRcNsFMD5Jcw2vR4HidX4NQhMCtAvmNLMJd"],"license":"MIT"},"src/EAS/ISchemaRegistry.sol":{"keccak256":"0x68385349bbe43887f9c2541b6fddebaab309e5401e31ac46081460a812a2127b","urls":["bzz-raw://767a618229f8e5fc4dd4f268a2e5f545e249039032ca17772dda206032c55125","dweb:/ipfs/QmWQTxkUHJtZxYHa3MBCLGcm8f5Kxc2saDYPifKEdCiquq"],"license":"MIT"},"src/EAS/SchemaRegistry.sol":{"keccak256":"0xce55204139cfaede75d511e372e94fdb17a8b03bcff87bed34ddeaa31b123fdd","urls":["bzz-raw://f96648cea0c4567e08ffaf5f1b96b35b61ccfe01e9f30c27c89d3c472a87bb68","dweb:/ipfs/Qmdep2mSAGNwxtbMEUGmH5SMPGP4fEDGM2yeJc8fk6rQHT"],"license":"MIT"},"src/EAS/resolver/ISchemaResolver.sol":{"keccak256":"0xf4712a6685599bd284b0c3808e7f6e08ab5e28919647404f26ca372917ddd000","urls":["bzz-raw://17b31b0109cd3c1a1550738b24aa77541cc48b2ade5189bcec7808c9c9ce2c61","dweb:/ipfs/QmeyKMMWsgQBeJkpr1Uugxw9bpg6oCjptyLmbR2TUqRLHB"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":3645,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"_registry","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(SchemaRecord)3587_storage)"},{"astId":3651,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)49_storage"}],"types":{"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(ISchemaResolver)4157":{"encoding":"inplace","label":"contract ISchemaResolver","numberOfBytes":"20"},"t_mapping(t_bytes32,t_struct(SchemaRecord)3587_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct SchemaRecord)","numberOfBytes":"32","value":"t_struct(SchemaRecord)3587_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(SchemaRecord)3587_storage":{"encoding":"inplace","label":"struct SchemaRecord","numberOfBytes":"96","members":[{"astId":3579,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"uid","offset":0,"slot":"0","type":"t_bytes32"},{"astId":3582,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"resolver","offset":0,"slot":"1","type":"t_contract(ISchemaResolver)4157"},{"astId":3584,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"revocable","offset":20,"slot":"1","type":"t_bool"},{"astId":3586,"contract":"src/EAS/SchemaRegistry.sol:SchemaRegistry","label":"schema","offset":0,"slot":"2","type":"t_string_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"version()":{"notice":"Semantic version."}},"notice":"The global attestation schemas for the Ethereum Attestation Service protocol."},"devdoc":{"version":1,"kind":"dev","methods":{"getSchema(bytes32)":{"details":"Returns an existing schema by UID","params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"details":"Submits and reserves a new schema","params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"events":{"Registered(bytes32,address,(bytes32,address,bool,string))":{"details":"Emitted when a new schema has been registered","params":{"registerer":"The address of the account used to register the schema.","schema":"The schema data.","uid":"The schema UID."}}},"title":"SchemaRegistry"},"id":10}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"IS_SCRIPT","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_SCRIPT()":"f8ccbf47"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"IS_SCRIPT\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Script.sol\":\"Script\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/Script.sol\":{\"keccak256\":\"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c\",\"dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x598b85609125830885b8fb54a18f447d04f8dd799aca3de81baef35eb6b783c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9c128aae4f5668d8c8f71e9e6d9379d8451b8713d139cb66a02d23bc1c75f69\",\"dweb:/ipfs/QmVRihXHWi2yg9CcAhzKf63Y7m6gWz4P1giGMhXUHT3DFu\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"IS_SCRIPT","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Script.sol":"Script"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/Script.sol":{"keccak256":"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2","urls":["bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c","dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x598b85609125830885b8fb54a18f447d04f8dd799aca3de81baef35eb6b783c0","urls":["bzz-raw://c9c128aae4f5668d8c8f71e9e6d9379d8451b8713d139cb66a02d23bc1c75f69","dweb:/ipfs/QmVRihXHWi2yg9CcAhzKf63Y7m6gWz4P1giGMhXUHT3DFu"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Script.sol:Script","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"},{"astId":3878,"contract":"lib/forge-std/src/Script.sol:Script","label":"stdChainsInitialized","offset":0,"slot":"7","type":"t_bool"},{"astId":3899,"contract":"lib/forge-std/src/Script.sol:Script","label":"chains","offset":0,"slot":"8","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)3894_storage)"},{"astId":3903,"contract":"lib/forge-std/src/Script.sol:Script","label":"defaultRpcUrls","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":3907,"contract":"lib/forge-std/src/Script.sol:Script","label":"idToAlias","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":3910,"contract":"lib/forge-std/src/Script.sol:Script","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"11","type":"t_bool"},{"astId":4650,"contract":"lib/forge-std/src/Script.sol:Script","label":"gasMeteringOff","offset":1,"slot":"11","type":"t_bool"},{"astId":2435,"contract":"lib/forge-std/src/Script.sol:Script","label":"IS_SCRIPT","offset":2,"slot":"11","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)3894_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)3894_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)3894_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":3887,"contract":"lib/forge-std/src/Script.sol:Script","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":3889,"contract":"lib/forge-std/src/Script.sol:Script","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":3891,"contract":"lib/forge-std/src/Script.sol:Script","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":3893,"contract":"lib/forge-std/src/Script.sol:Script","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Script.sol:Script","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Script.sol:Script","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Script.sol:Script","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Script.sol:Script","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Script.sol:Script","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Script.sol:Script","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Script.sol:Script","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/Script.sol","id":2437,"exportedSymbols":{"Script":[2436],"ScriptBase":[2397],"StdChains":[4618],"StdCheatsSafe":[6678],"StdStorage":[8562],"StdStyle":[11412],"StdUtils":[12198],"VmSafe":[13857],"console":[22492],"console2":[30617],"safeconsole":[44957],"stdJson":[8388],"stdMath":[8530],"stdStorageSafe":[9610]},"nodeType":"SourceUnit","src":"32:800:3","nodes":[{"id":2399,"nodeType":"PragmaDirective","src":"32:31:3","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":2401,"nodeType":"ImportDirective","src":"127:38:3","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"./console.sol","nameLocation":"-1:-1:-1","scope":2437,"sourceUnit":22493,"symbolAliases":[{"foreign":{"id":2400,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22492,"src":"135:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2403,"nodeType":"ImportDirective","src":"166:40:3","nodes":[],"absolutePath":"lib/forge-std/src/console2.sol","file":"./console2.sol","nameLocation":"-1:-1:-1","scope":2437,"sourceUnit":30618,"symbolAliases":[{"foreign":{"id":2402,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30617,"src":"174:8:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2405,"nodeType":"ImportDirective","src":"207:46:3","nodes":[],"absolutePath":"lib/forge-std/src/safeconsole.sol","file":"./safeconsole.sol","nameLocation":"-1:-1:-1","scope":2437,"sourceUnit":44958,"symbolAliases":[{"foreign":{"id":2404,"name":"safeconsole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44957,"src":"215:11:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2407,"nodeType":"ImportDirective","src":"254:42:3","nodes":[],"absolutePath":"lib/forge-std/src/StdChains.sol","file":"./StdChains.sol","nameLocation":"-1:-1:-1","scope":2437,"sourceUnit":4619,"symbolAliases":[{"foreign":{"id":2406,"name":"StdChains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4618,"src":"262:9:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2409,"nodeType":"ImportDirective","src":"297:46:3","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"./StdCheats.sol","nameLocation":"-1:-1:-1","scope":2437,"sourceUnit":7472,"symbolAliases":[{"foreign":{"id":2408,"name":"StdCheatsSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6678,"src":"305:13:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2411,"nodeType":"ImportDirective","src":"344:38:3","nodes":[],"absolutePath":"lib/forge-std/src/StdJson.sol","file":"./StdJson.sol","nameLocation":"-1:-1:-1","scope":2437,"sourceUnit":8389,"symbolAliases":[{"foreign":{"id":2410,"name":"stdJson","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8388,"src":"352:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2413,"nodeType":"ImportDirective","src":"383:38:3","nodes":[],"absolutePath":"lib/forge-std/src/StdMath.sol","file":"./StdMath.sol","nameLocation":"-1:-1:-1","scope":2437,"sourceUnit":8531,"symbolAliases":[{"foreign":{"id":2412,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8530,"src":"391:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2416,"nodeType":"ImportDirective","src":"422:60:3","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":2437,"sourceUnit":10202,"symbolAliases":[{"foreign":{"id":2414,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8562,"src":"430:10:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2415,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9610,"src":"442:14:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2418,"nodeType":"ImportDirective","src":"483:40:3","nodes":[],"absolutePath":"lib/forge-std/src/StdStyle.sol","file":"./StdStyle.sol","nameLocation":"-1:-1:-1","scope":2437,"sourceUnit":11413,"symbolAliases":[{"foreign":{"id":2417,"name":"StdStyle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11412,"src":"491:8:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2420,"nodeType":"ImportDirective","src":"524:40:3","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"./StdUtils.sol","nameLocation":"-1:-1:-1","scope":2437,"sourceUnit":12199,"symbolAliases":[{"foreign":{"id":2419,"name":"StdUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12198,"src":"532:8:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2422,"nodeType":"ImportDirective","src":"565:32:3","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":2437,"sourceUnit":14429,"symbolAliases":[{"foreign":{"id":2421,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"573:6:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2424,"nodeType":"ImportDirective","src":"619:38:3","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"./Base.sol","nameLocation":"-1:-1:-1","scope":2437,"sourceUnit":2398,"symbolAliases":[{"foreign":{"id":2423,"name":"ScriptBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2397,"src":"627:10:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2436,"nodeType":"ContractDefinition","src":"676:155:3","nodes":[{"id":2435,"nodeType":"VariableDeclaration","src":"800:28:3","nodes":[],"constant":false,"functionSelector":"f8ccbf47","mutability":"mutable","name":"IS_SCRIPT","nameLocation":"812:9:3","scope":2436,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2433,"name":"bool","nodeType":"ElementaryTypeName","src":"800:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":2434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"824:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":2425,"name":"ScriptBase","nodeType":"IdentifierPath","referencedDeclaration":2397,"src":"704:10:3"},"id":2426,"nodeType":"InheritanceSpecifier","src":"704:10:3"},{"baseName":{"id":2427,"name":"StdChains","nodeType":"IdentifierPath","referencedDeclaration":4618,"src":"716:9:3"},"id":2428,"nodeType":"InheritanceSpecifier","src":"716:9:3"},{"baseName":{"id":2429,"name":"StdCheatsSafe","nodeType":"IdentifierPath","referencedDeclaration":6678,"src":"727:13:3"},"id":2430,"nodeType":"InheritanceSpecifier","src":"727:13:3"},{"baseName":{"id":2431,"name":"StdUtils","nodeType":"IdentifierPath","referencedDeclaration":12198,"src":"742:8:3"},"id":2432,"nodeType":"InheritanceSpecifier","src":"742:8:3"}],"canonicalName":"Script","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[2436,12198,6678,4618,2397,2385],"name":"Script","nameLocation":"694:6:3","scope":2437,"usedErrors":[]}],"license":"MIT"},"id":3}
{"abi":[{"type":"function","name":"IS_SCRIPT","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_SCRIPT()":"f8ccbf47"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"IS_SCRIPT\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Script.sol\":\"Script\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/Script.sol\":{\"keccak256\":\"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c\",\"dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x598b85609125830885b8fb54a18f447d04f8dd799aca3de81baef35eb6b783c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9c128aae4f5668d8c8f71e9e6d9379d8451b8713d139cb66a02d23bc1c75f69\",\"dweb:/ipfs/QmVRihXHWi2yg9CcAhzKf63Y7m6gWz4P1giGMhXUHT3DFu\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"IS_SCRIPT","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Script.sol":"Script"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/Script.sol":{"keccak256":"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2","urls":["bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c","dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x598b85609125830885b8fb54a18f447d04f8dd799aca3de81baef35eb6b783c0","urls":["bzz-raw://c9c128aae4f5668d8c8f71e9e6d9379d8451b8713d139cb66a02d23bc1c75f69","dweb:/ipfs/QmVRihXHWi2yg9CcAhzKf63Y7m6gWz4P1giGMhXUHT3DFu"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Script.sol:Script","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"},{"astId":3878,"contract":"lib/forge-std/src/Script.sol:Script","label":"stdChainsInitialized","offset":0,"slot":"7","type":"t_bool"},{"astId":3899,"contract":"lib/forge-std/src/Script.sol:Script","label":"chains","offset":0,"slot":"8","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)3894_storage)"},{"astId":3903,"contract":"lib/forge-std/src/Script.sol:Script","label":"defaultRpcUrls","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":3907,"contract":"lib/forge-std/src/Script.sol:Script","label":"idToAlias","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":3910,"contract":"lib/forge-std/src/Script.sol:Script","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"11","type":"t_bool"},{"astId":4650,"contract":"lib/forge-std/src/Script.sol:Script","label":"gasMeteringOff","offset":1,"slot":"11","type":"t_bool"},{"astId":2435,"contract":"lib/forge-std/src/Script.sol:Script","label":"IS_SCRIPT","offset":2,"slot":"11","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)3894_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)3894_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)3894_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":3887,"contract":"lib/forge-std/src/Script.sol:Script","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":3889,"contract":"lib/forge-std/src/Script.sol:Script","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":3891,"contract":"lib/forge-std/src/Script.sol:Script","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":3893,"contract":"lib/forge-std/src/Script.sol:Script","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Script.sol:Script","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Script.sol:Script","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Script.sol:Script","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Script.sol:Script","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Script.sol:Script","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Script.sol:Script","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Script.sol:Script","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":3}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SecuredTokenTransfer - Secure token transfer.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol\":\"SecuredTokenTransfer\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol\":{\"keccak256\":\"0x1eb8c3601538b73dd6a823ac4fca49bb8adc97d1302a936622156636c971eb05\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://c26495b1fe9229ea17f90b70f295030880d629b9ea3016ea20b634983865f7b3\",\"dweb:/ipfs/QmTc1UmKcynkKn8DeviLMuy6scxNvAVSdLoX4ndUtdEL9N\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol":"SecuredTokenTransfer"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol":{"keccak256":"0x1eb8c3601538b73dd6a823ac4fca49bb8adc97d1302a936622156636c971eb05","urls":["bzz-raw://c26495b1fe9229ea17f90b70f295030880d629b9ea3016ea20b634983865f7b3","dweb:/ipfs/QmTc1UmKcynkKn8DeviLMuy6scxNvAVSdLoX4ndUtdEL9N"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"SecuredTokenTransfer - Secure token transfer."},"ast":{"absolutePath":"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol","id":57980,"exportedSymbols":{"SecuredTokenTransfer":[57979]},"nodeType":"SourceUnit","src":"42:1628:79","nodes":[{"id":57954,"nodeType":"PragmaDirective","src":"42:31:79","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":57979,"nodeType":"ContractDefinition","src":"180:1489:79","nodes":[{"id":57978,"nodeType":"FunctionDefinition","src":"763:904:79","nodes":[],"body":{"id":57977,"nodeType":"Block","src":"871:796:79","nodes":[],"statements":[{"assignments":[57968],"declarations":[{"constant":false,"id":57968,"mutability":"mutable","name":"data","nameLocation":"955:4:79","nodeType":"VariableDeclaration","scope":57977,"src":"942:17:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57967,"name":"bytes","nodeType":"ElementaryTypeName","src":"942:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57975,"initialValue":{"arguments":[{"hexValue":"30786139303539636262","id":57971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"985:10:79","typeDescriptions":{"typeIdentifier":"t_rational_2835717307_by_1","typeString":"int_const 2835717307"},"value":"0xa9059cbb"},{"id":57972,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57960,"src":"997:8:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57973,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57962,"src":"1007:6:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2835717307_by_1","typeString":"int_const 2835717307"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57969,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"962:3:79","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"962:22:79","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"962:52:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"942:72:79"},{"AST":{"nodeType":"YulBlock","src":"1089:572:79","statements":[{"nodeType":"YulVariableDeclaration","src":"1270:87:79","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"1294:3:79"},"nodeType":"YulFunctionCall","src":"1294:5:79"},{"kind":"number","nodeType":"YulLiteral","src":"1301:5:79","type":"","value":"10000"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1290:3:79"},"nodeType":"YulFunctionCall","src":"1290:17:79"},{"name":"token","nodeType":"YulIdentifier","src":"1309:5:79"},{"kind":"number","nodeType":"YulLiteral","src":"1316:1:79","type":"","value":"0"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1323:4:79"},{"kind":"number","nodeType":"YulLiteral","src":"1329:4:79","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1319:3:79"},"nodeType":"YulFunctionCall","src":"1319:15:79"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1342:4:79"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1336:5:79"},"nodeType":"YulFunctionCall","src":"1336:11:79"},{"kind":"number","nodeType":"YulLiteral","src":"1349:1:79","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1352:4:79","type":"","value":"0x20"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"1285:4:79"},"nodeType":"YulFunctionCall","src":"1285:72:79"},"variables":[{"name":"success","nodeType":"YulTypedName","src":"1274:7:79","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"1413:54:79","statements":[{"nodeType":"YulAssignment","src":"1431:22:79","value":{"name":"success","nodeType":"YulIdentifier","src":"1446:7:79"},"variableNames":[{"name":"transferred","nodeType":"YulIdentifier","src":"1431:11:79"}]}]},"nodeType":"YulCase","src":"1406:61:79","value":{"kind":"number","nodeType":"YulLiteral","src":"1411:1:79","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"1490:92:79","statements":[{"nodeType":"YulAssignment","src":"1508:60:79","value":{"arguments":[{"arguments":[{"arguments":[{"name":"success","nodeType":"YulIdentifier","src":"1540:7:79"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1533:6:79"},"nodeType":"YulFunctionCall","src":"1533:15:79"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1563:1:79","type":"","value":"0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1557:5:79"},"nodeType":"YulFunctionCall","src":"1557:8:79"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1550:6:79"},"nodeType":"YulFunctionCall","src":"1550:16:79"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1530:2:79"},"nodeType":"YulFunctionCall","src":"1530:37:79"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1523:6:79"},"nodeType":"YulFunctionCall","src":"1523:45:79"},"variableNames":[{"name":"transferred","nodeType":"YulIdentifier","src":"1508:11:79"}]}]},"nodeType":"YulCase","src":"1480:102:79","value":{"kind":"number","nodeType":"YulLiteral","src":"1485:4:79","type":"","value":"0x20"}},{"body":{"nodeType":"YulBlock","src":"1603:48:79","statements":[{"nodeType":"YulAssignment","src":"1621:16:79","value":{"kind":"number","nodeType":"YulLiteral","src":"1636:1:79","type":"","value":"0"},"variableNames":[{"name":"transferred","nodeType":"YulIdentifier","src":"1621:11:79"}]}]},"nodeType":"YulCase","src":"1595:56:79","value":"default"}],"expression":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1377:14:79"},"nodeType":"YulFunctionCall","src":"1377:16:79"},"nodeType":"YulSwitch","src":"1370:281:79"}]},"evmVersion":"london","externalReferences":[{"declaration":57968,"isOffset":false,"isSlot":false,"src":"1323:4:79","valueSize":1},{"declaration":57968,"isOffset":false,"isSlot":false,"src":"1342:4:79","valueSize":1},{"declaration":57958,"isOffset":false,"isSlot":false,"src":"1309:5:79","valueSize":1},{"declaration":57965,"isOffset":false,"isSlot":false,"src":"1431:11:79","valueSize":1},{"declaration":57965,"isOffset":false,"isSlot":false,"src":"1508:11:79","valueSize":1},{"declaration":57965,"isOffset":false,"isSlot":false,"src":"1621:11:79","valueSize":1}],"id":57976,"nodeType":"InlineAssembly","src":"1080:581:79"}]},"documentation":{"id":57956,"nodeType":"StructuredDocumentation","src":"225:533:79","text":" @notice Transfers a token and returns a boolean if it was a success\n @dev It checks the return data of the transfer call and returns true if the transfer was successful.\n It doesn't check if the `token` address is a contract or not.\n @param token Token that should be transferred\n @param receiver Receiver to whom the token should be transferred\n @param amount The amount of tokens that should be transferred\n @return transferred Returns true if the transfer was successful"},"implemented":true,"kind":"function","modifiers":[],"name":"transferToken","nameLocation":"772:13:79","parameters":{"id":57963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57958,"mutability":"mutable","name":"token","nameLocation":"794:5:79","nodeType":"VariableDeclaration","scope":57978,"src":"786:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57957,"name":"address","nodeType":"ElementaryTypeName","src":"786:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57960,"mutability":"mutable","name":"receiver","nameLocation":"809:8:79","nodeType":"VariableDeclaration","scope":57978,"src":"801:16:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57959,"name":"address","nodeType":"ElementaryTypeName","src":"801:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57962,"mutability":"mutable","name":"amount","nameLocation":"827:6:79","nodeType":"VariableDeclaration","scope":57978,"src":"819:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57961,"name":"uint256","nodeType":"ElementaryTypeName","src":"819:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"785:49:79"},"returnParameters":{"id":57966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57965,"mutability":"mutable","name":"transferred","nameLocation":"858:11:79","nodeType":"VariableDeclaration","scope":57978,"src":"853:16:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57964,"name":"bool","nodeType":"ElementaryTypeName","src":"853:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"852:18:79"},"scope":57979,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"SecuredTokenTransfer","contractDependencies":[],"contractKind":"contract","documentation":{"id":57955,"nodeType":"StructuredDocumentation","src":"75:104:79","text":" @title SecuredTokenTransfer - Secure token transfer.\n @author Richard Meissner - @rmeissner"},"fullyImplemented":true,"linearizedBaseContracts":[57979],"name":"SecuredTokenTransfer","nameLocation":"198:20:79","scope":57980,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":79}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SecuredTokenTransfer - Secure token transfer.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol\":\"SecuredTokenTransfer\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol\":{\"keccak256\":\"0x1eb8c3601538b73dd6a823ac4fca49bb8adc97d1302a936622156636c971eb05\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://c26495b1fe9229ea17f90b70f295030880d629b9ea3016ea20b634983865f7b3\",\"dweb:/ipfs/QmTc1UmKcynkKn8DeviLMuy6scxNvAVSdLoX4ndUtdEL9N\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol":"SecuredTokenTransfer"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol":{"keccak256":"0x1eb8c3601538b73dd6a823ac4fca49bb8adc97d1302a936622156636c971eb05","urls":["bzz-raw://c26495b1fe9229ea17f90b70f295030880d629b9ea3016ea20b634983865f7b3","dweb:/ipfs/QmTc1UmKcynkKn8DeviLMuy6scxNvAVSdLoX4ndUtdEL9N"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"SecuredTokenTransfer - Secure token transfer."},"id":79}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"311:1885:190:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;311:1885:190;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"311:1885:190:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"SecureMerkleTrie\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"SecureMerkleTrie is a thin wrapper around the MerkleTrie library that hashes the input keys. Ethereum's state trie hashes input keys before storing them.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/trie/SecureMerkleTrie.sol\":\"SecureMerkleTrie\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Bytes.sol\":{\"keccak256\":\"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782\",\"dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9\"]},\"src/libraries/rlp/RLPReader.sol\":{\"keccak256\":\"0x9ba74a3b0a11693e622380807d213d5d1250d974e18b2cd768da9cbe719a6778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808d721ed9e05707526ee134faa051d707a95ee6b8bd6e0b1972275da8e5723\",\"dweb:/ipfs/QmcTTPu9xgckfWdbFUAcr2RAgk3J6vzyR4FpV798TjFMeN\"]},\"src/libraries/trie/MerkleTrie.sol\":{\"keccak256\":\"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74\",\"dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE\"]},\"src/libraries/trie/SecureMerkleTrie.sol\":{\"keccak256\":\"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681\",\"dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/trie/SecureMerkleTrie.sol":"SecureMerkleTrie"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Bytes.sol":{"keccak256":"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859","urls":["bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782","dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9"],"license":"MIT"},"src/libraries/rlp/RLPReader.sol":{"keccak256":"0x9ba74a3b0a11693e622380807d213d5d1250d974e18b2cd768da9cbe719a6778","urls":["bzz-raw://0808d721ed9e05707526ee134faa051d707a95ee6b8bd6e0b1972275da8e5723","dweb:/ipfs/QmcTTPu9xgckfWdbFUAcr2RAgk3J6vzyR4FpV798TjFMeN"],"license":"MIT"},"src/libraries/trie/MerkleTrie.sol":{"keccak256":"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c","urls":["bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74","dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE"],"license":"MIT"},"src/libraries/trie/SecureMerkleTrie.sol":{"keccak256":"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288","urls":["bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681","dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"SecureMerkleTrie is a thin wrapper around the MerkleTrie library that hashes the input keys. Ethereum's state trie hashes input keys before storing them."},"devdoc":{"version":1,"kind":"dev","title":"SecureMerkleTrie"},"ast":{"absolutePath":"src/libraries/trie/SecureMerkleTrie.sol","id":95766,"exportedSymbols":{"MerkleTrie":[95680],"SecureMerkleTrie":[95765]},"nodeType":"SourceUnit","src":"32:2165:190","nodes":[{"id":95682,"nodeType":"PragmaDirective","src":"32:23:190","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":95684,"nodeType":"ImportDirective","src":"57:46:190","nodes":[],"absolutePath":"src/libraries/trie/MerkleTrie.sol","file":"./MerkleTrie.sol","nameLocation":"-1:-1:-1","scope":95766,"sourceUnit":95681,"symbolAliases":[{"foreign":{"id":95683,"name":"MerkleTrie","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95680,"src":"66:10:190","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":95765,"nodeType":"ContractDefinition","src":"311:1885:190","nodes":[{"id":95717,"nodeType":"FunctionDefinition","src":"1041:343:190","nodes":[],"body":{"id":95716,"nodeType":"Block","src":"1251:133:190","nodes":[],"statements":[{"assignments":[95701],"declarations":[{"constant":false,"id":95701,"mutability":"mutable","name":"key","nameLocation":"1274:3:190","nodeType":"VariableDeclaration","scope":95716,"src":"1261:16:190","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":95700,"name":"bytes","nodeType":"ElementaryTypeName","src":"1261:5:190","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":95705,"initialValue":{"arguments":[{"id":95703,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95688,"src":"1294:4:190","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":95702,"name":"_getSecureKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95764,"src":"1280:13:190","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes memory)"}},"id":95704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1280:19:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1261:38:190"},{"expression":{"id":95714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":95706,"name":"valid_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95698,"src":"1309:6:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":95709,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95701,"src":"1350:3:190","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":95710,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95690,"src":"1355:6:190","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":95711,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95693,"src":"1363:6:190","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":95712,"name":"_root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95695,"src":"1371:5:190","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":95707,"name":"MerkleTrie","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95680,"src":"1318:10:190","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleTrie_$95680_$","typeString":"type(library MerkleTrie)"}},"id":95708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verifyInclusionProof","nodeType":"MemberAccess","referencedDeclaration":95185,"src":"1318:31:190","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes memory,bytes memory,bytes memory[] memory,bytes32) pure returns (bool)"}},"id":95713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1318:59:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1309:68:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":95715,"nodeType":"ExpressionStatement","src":"1309:68:190"}]},"documentation":{"id":95686,"nodeType":"StructuredDocumentation","src":"342:694:190","text":"@notice Verifies a proof that a given key/value pair is present in the Merkle trie.\n @param _key Key of the node to search for, as a hex string.\n @param _value Value of the node to search for, as a hex string.\n @param _proof Merkle trie inclusion proof for the desired node. Unlike traditional Merkle\n trees, this proof is executed top-down and consists of a list of RLP-encoded\n nodes that make a path down to the target node.\n @param _root Known root of the Merkle trie. Used to verify that the included proof is\n correctly constructed.\n @return valid_ Whether or not the proof is valid."},"implemented":true,"kind":"function","modifiers":[],"name":"verifyInclusionProof","nameLocation":"1050:20:190","parameters":{"id":95696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95688,"mutability":"mutable","name":"_key","nameLocation":"1093:4:190","nodeType":"VariableDeclaration","scope":95717,"src":"1080:17:190","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":95687,"name":"bytes","nodeType":"ElementaryTypeName","src":"1080:5:190","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":95690,"mutability":"mutable","name":"_value","nameLocation":"1120:6:190","nodeType":"VariableDeclaration","scope":95717,"src":"1107:19:190","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":95689,"name":"bytes","nodeType":"ElementaryTypeName","src":"1107:5:190","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":95693,"mutability":"mutable","name":"_proof","nameLocation":"1151:6:190","nodeType":"VariableDeclaration","scope":95717,"src":"1136:21:190","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":95691,"name":"bytes","nodeType":"ElementaryTypeName","src":"1136:5:190","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":95692,"nodeType":"ArrayTypeName","src":"1136:7:190","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":95695,"mutability":"mutable","name":"_root","nameLocation":"1175:5:190","nodeType":"VariableDeclaration","scope":95717,"src":"1167:13:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":95694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1167:7:190","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1070:116:190"},"returnParameters":{"id":95699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95698,"mutability":"mutable","name":"valid_","nameLocation":"1239:6:190","nodeType":"VariableDeclaration","scope":95717,"src":"1234:11:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":95697,"name":"bool","nodeType":"ElementaryTypeName","src":"1234:4:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1233:13:190"},"scope":95765,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":95746,"nodeType":"FunctionDefinition","src":"1680:222:190","nodes":[],"body":{"id":95745,"nodeType":"Block","src":"1794:108:190","nodes":[],"statements":[{"assignments":[95731],"declarations":[{"constant":false,"id":95731,"mutability":"mutable","name":"key","nameLocation":"1817:3:190","nodeType":"VariableDeclaration","scope":95745,"src":"1804:16:190","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":95730,"name":"bytes","nodeType":"ElementaryTypeName","src":"1804:5:190","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":95735,"initialValue":{"arguments":[{"id":95733,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95720,"src":"1837:4:190","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":95732,"name":"_getSecureKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95764,"src":"1823:13:190","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes memory)"}},"id":95734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1823:19:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1804:38:190"},{"expression":{"id":95743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":95736,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95728,"src":"1852:6:190","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":95739,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95731,"src":"1876:3:190","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":95740,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95723,"src":"1881:6:190","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":95741,"name":"_root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95725,"src":"1889:5:190","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":95737,"name":"MerkleTrie","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95680,"src":"1861:10:190","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleTrie_$95680_$","typeString":"type(library MerkleTrie)"}},"id":95738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"get","nodeType":"MemberAccess","referencedDeclaration":95533,"src":"1861:14:190","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,bytes memory[] memory,bytes32) pure returns (bytes memory)"}},"id":95742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1861:34:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1852:43:190","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":95744,"nodeType":"ExpressionStatement","src":"1852:43:190"}]},"documentation":{"id":95718,"nodeType":"StructuredDocumentation","src":"1390:285:190","text":"@notice Retrieves the value associated with a given key.\n @param _key Key to search for, as hex bytes.\n @param _proof Merkle trie inclusion proof for the key.\n @param _root Known root of the Merkle trie.\n @return value_ Value of the key if it exists."},"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"1689:3:190","parameters":{"id":95726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95720,"mutability":"mutable","name":"_key","nameLocation":"1706:4:190","nodeType":"VariableDeclaration","scope":95746,"src":"1693:17:190","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":95719,"name":"bytes","nodeType":"ElementaryTypeName","src":"1693:5:190","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":95723,"mutability":"mutable","name":"_proof","nameLocation":"1727:6:190","nodeType":"VariableDeclaration","scope":95746,"src":"1712:21:190","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":95721,"name":"bytes","nodeType":"ElementaryTypeName","src":"1712:5:190","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":95722,"nodeType":"ArrayTypeName","src":"1712:7:190","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":95725,"mutability":"mutable","name":"_root","nameLocation":"1743:5:190","nodeType":"VariableDeclaration","scope":95746,"src":"1735:13:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":95724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1735:7:190","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1692:57:190"},"returnParameters":{"id":95729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95728,"mutability":"mutable","name":"value_","nameLocation":"1786:6:190","nodeType":"VariableDeclaration","scope":95746,"src":"1773:19:190","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":95727,"name":"bytes","nodeType":"ElementaryTypeName","src":"1773:5:190","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1772:21:190"},"scope":95765,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":95764,"nodeType":"FunctionDefinition","src":"2052:142:190","nodes":[],"body":{"id":95763,"nodeType":"Block","src":"2136:58:190","nodes":[],"statements":[{"expression":{"id":95761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":95754,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95752,"src":"2146:5:190","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":95758,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95749,"src":"2181:4:190","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":95757,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2171:9:190","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":95759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2171:15:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":95755,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2154:3:190","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":95756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"2154:16:190","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":95760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2154:33:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2146:41:190","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":95762,"nodeType":"ExpressionStatement","src":"2146:41:190"}]},"documentation":{"id":95747,"nodeType":"StructuredDocumentation","src":"1908:139:190","text":"@notice Computes the hashed version of the input key.\n @param _key Key to hash.\n @return hash_ Hashed version of the key."},"implemented":true,"kind":"function","modifiers":[],"name":"_getSecureKey","nameLocation":"2061:13:190","parameters":{"id":95750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95749,"mutability":"mutable","name":"_key","nameLocation":"2088:4:190","nodeType":"VariableDeclaration","scope":95764,"src":"2075:17:190","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":95748,"name":"bytes","nodeType":"ElementaryTypeName","src":"2075:5:190","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2074:19:190"},"returnParameters":{"id":95753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95752,"mutability":"mutable","name":"hash_","nameLocation":"2129:5:190","nodeType":"VariableDeclaration","scope":95764,"src":"2116:18:190","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":95751,"name":"bytes","nodeType":"ElementaryTypeName","src":"2116:5:190","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2115:20:190"},"scope":95765,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"SecureMerkleTrie","contractDependencies":[],"contractKind":"library","documentation":{"id":95685,"nodeType":"StructuredDocumentation","src":"105:206:190","text":"@title SecureMerkleTrie\n @notice SecureMerkleTrie is a thin wrapper around the MerkleTrie library that hashes the input\n keys. Ethereum's state trie hashes input keys before storing them."},"fullyImplemented":true,"linearizedBaseContracts":[95765],"name":"SecureMerkleTrie","nameLocation":"319:16:190","scope":95766,"usedErrors":[]}],"license":"MIT"},"id":190}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"311:1885:201:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;311:1885:201;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"311:1885:201:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"SecureMerkleTrie\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"SecureMerkleTrie is a thin wrapper around the MerkleTrie library that hashes the input keys. Ethereum's state trie hashes input keys before storing them.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/trie/SecureMerkleTrie.sol\":\"SecureMerkleTrie\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Bytes.sol\":{\"keccak256\":\"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782\",\"dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9\"]},\"src/libraries/rlp/RLPReader.sol\":{\"keccak256\":\"0x99731a39bc10203719d448117b0e6ef47771890440d595d118084d7988d59afb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dbeb75d0cc8de58350cc15df8867bf97d8492e0617b1c62733ace6155c6915a\",\"dweb:/ipfs/QmNiXzskPE72h93F8EXT8wAXKzEh2EERLbubdVMfwTQbtj\"]},\"src/libraries/trie/MerkleTrie.sol\":{\"keccak256\":\"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74\",\"dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE\"]},\"src/libraries/trie/SecureMerkleTrie.sol\":{\"keccak256\":\"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681\",\"dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/trie/SecureMerkleTrie.sol":"SecureMerkleTrie"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Bytes.sol":{"keccak256":"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859","urls":["bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782","dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9"],"license":"MIT"},"src/libraries/rlp/RLPReader.sol":{"keccak256":"0x99731a39bc10203719d448117b0e6ef47771890440d595d118084d7988d59afb","urls":["bzz-raw://1dbeb75d0cc8de58350cc15df8867bf97d8492e0617b1c62733ace6155c6915a","dweb:/ipfs/QmNiXzskPE72h93F8EXT8wAXKzEh2EERLbubdVMfwTQbtj"],"license":"MIT"},"src/libraries/trie/MerkleTrie.sol":{"keccak256":"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c","urls":["bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74","dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE"],"license":"MIT"},"src/libraries/trie/SecureMerkleTrie.sol":{"keccak256":"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288","urls":["bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681","dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"SecureMerkleTrie is a thin wrapper around the MerkleTrie library that hashes the input keys. Ethereum's state trie hashes input keys before storing them."},"devdoc":{"version":1,"kind":"dev","title":"SecureMerkleTrie"},"id":201}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SelfAuthorized - Authorizes current contract to perform actions to itself.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":\"SelfAuthorized\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3\",\"dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/SelfAuthorized.sol":"SelfAuthorized"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13","urls":["bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3","dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"SelfAuthorized - Authorizes current contract to perform actions to itself."},"ast":{"absolutePath":"lib/safe-contracts/contracts/common/SelfAuthorized.sol","id":58006,"exportedSymbols":{"SelfAuthorized":[58005]},"nodeType":"SourceUnit","src":"42:501:80","nodes":[{"id":57981,"nodeType":"PragmaDirective","src":"42:31:80","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58005,"nodeType":"ContractDefinition","src":"209:333:80","nodes":[{"id":57997,"nodeType":"FunctionDefinition","src":"248:102:80","nodes":[],"body":{"id":57996,"nodeType":"Block","src":"288:62:80","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":57992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57986,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"306:3:80","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":57987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"306:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":57990,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"328:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_SelfAuthorized_$58005","typeString":"contract SelfAuthorized"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SelfAuthorized_$58005","typeString":"contract SelfAuthorized"}],"id":57989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"320:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57988,"name":"address","nodeType":"ElementaryTypeName","src":"320:7:80","typeDescriptions":{}}},"id":57991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"320:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"306:27:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303331","id":57993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"335:7:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7248be3e8887f14d79f63d350787adcdb5e12b47898ebd6ef2aacf660fc9f17","typeString":"literal_string \"GS031\""},"value":"GS031"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b7248be3e8887f14d79f63d350787adcdb5e12b47898ebd6ef2aacf660fc9f17","typeString":"literal_string \"GS031\""}],"id":57985,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"298:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"298:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57995,"nodeType":"ExpressionStatement","src":"298:45:80"}]},"implemented":true,"kind":"function","modifiers":[],"name":"requireSelfCall","nameLocation":"257:15:80","parameters":{"id":57983,"nodeType":"ParameterList","parameters":[],"src":"272:2:80"},"returnParameters":{"id":57984,"nodeType":"ParameterList","parameters":[],"src":"288:0:80"},"scope":58005,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":58004,"nodeType":"ModifierDefinition","src":"356:184:80","nodes":[],"body":{"id":58003,"nodeType":"Block","src":"378:162:80","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":57999,"name":"requireSelfCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57997,"src":"505:15:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":58000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"505:17:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58001,"nodeType":"ExpressionStatement","src":"505:17:80"},{"id":58002,"nodeType":"PlaceholderStatement","src":"532:1:80"}]},"name":"authorized","nameLocation":"365:10:80","parameters":{"id":57998,"nodeType":"ParameterList","parameters":[],"src":"375:2:80"},"virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"SelfAuthorized","contractDependencies":[],"contractKind":"contract","documentation":{"id":57982,"nodeType":"StructuredDocumentation","src":"75:133:80","text":" @title SelfAuthorized - Authorizes current contract to perform actions to itself.\n @author Richard Meissner - @rmeissner"},"fullyImplemented":true,"linearizedBaseContracts":[58005],"name":"SelfAuthorized","nameLocation":"227:14:80","scope":58006,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":80}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SelfAuthorized - Authorizes current contract to perform actions to itself.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":\"SelfAuthorized\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3\",\"dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/SelfAuthorized.sol":"SelfAuthorized"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13","urls":["bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3","dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"SelfAuthorized - Authorizes current contract to perform actions to itself."},"id":80}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_minWithdrawalAmount","type":"uint256","internalType":"uint256"},{"name":"_withdrawalNetwork","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MIN_WITHDRAWAL_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WITHDRAWAL_NETWORK","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"view"},{"type":"function","name":"l1FeeWallet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalProcessed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawalNetwork","type":"uint8","indexed":false,"internalType":"enum FeeVault.WithdrawalNetwork"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561001057600080fd5b5060405161091638038061091683398101604081905261002f91610079565b6001600160a01b03831660a0526080829052828282806001811115610056576100566100cc565b60c081600181111561006a5761006a6100cc565b815250505050505050506100e2565b60008060006060848603121561008e57600080fd5b83516001600160a01b03811681146100a557600080fd5b602085015160408601519194509250600281106100c157600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60805160a05160c0516107ce61014860003960008181610181015281816103c701526104020152600081816092015281816101f301528181610316015281816103a50152818161043b01526105a20152600081816101c2015261021901526107ce6000f3fe6080604052600436106100745760003560e01c806384411d651161004e57806384411d651461014b578063d0e12f901461016f578063d3e5792b146101b0578063d4ff9218146101e457600080fd5b80630d9019e1146100805780633ccfd60b146100de57806354fd4d50146100f557600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100b47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100ea57600080fd5b506100f3610217565b005b34801561010157600080fd5b5061013e6040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100d5919061066e565b34801561015757600080fd5b5061016160005481565b6040519081526020016100d5565b34801561017b57600080fd5b506101a37f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d591906106f2565b3480156101bc57600080fd5b506101617f000000000000000000000000000000000000000000000000000000000000000081565b3480156101f057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006100b4565b7f00000000000000000000000000000000000000000000000000000000000000004710156102f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546103089190610706565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103f69493929190610745565b60405180910390a160017f0000000000000000000000000000000000000000000000000000000000000000600181111561043257610432610688565b0361054b5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146104b1576040519150601f19603f3d011682016040523d82523d6000602084013e6104b6565b606091505b5050905080610547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102e9565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd9184916105ce917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610786565b6000604051808303818588803b1580156105e757600080fd5b505af11580156105fb573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156106295760208185018101518683018201520161060d565b8181111561063b576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006106816020830184610603565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b6020810161070082846106b7565b92915050565b60008219821115610740577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161077d60608301846106b7565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061077d606083018461060356fea164736f6c634300080f000a","sourceMap":"436:836:142:-:0;;;851:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2429:22:209;;;;2461:44;;;;998:10:142;1010:20;1032:18;;2515:39:209;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2319:242;;;851:208:142;;;436:836;;14:517:334;125:6;133;141;194:2;182:9;173:7;169:23;165:32;162:52;;;210:1;207;200:12;162:52;236:16;;-1:-1:-1;;;;;281:31:334;;271:42;;261:70;;327:1;324;317:12;261:70;395:2;380:18;;374:25;444:2;429:18;;423:25;350:5;;-1:-1:-1;374:25:334;-1:-1:-1;479:1:334;467:14;;457:42;;495:1;492;485:12;457:42;518:7;508:17;;;14:517;;;;;:::o;536:127::-;597:10;592:3;588:20;585:1;578:31;628:4;625:1;618:15;652:4;649:1;642:15;536:127;436:836:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100745760003560e01c806384411d651161004e57806384411d651461014b578063d0e12f901461016f578063d3e5792b146101b0578063d4ff9218146101e457600080fd5b80630d9019e1146100805780633ccfd60b146100de57806354fd4d50146100f557600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100b47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100ea57600080fd5b506100f3610217565b005b34801561010157600080fd5b5061013e6040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100d5919061066e565b34801561015757600080fd5b5061016160005481565b6040519081526020016100d5565b34801561017b57600080fd5b506101a37f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d591906106f2565b3480156101bc57600080fd5b506101617f000000000000000000000000000000000000000000000000000000000000000081565b3480156101f057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006100b4565b7f00000000000000000000000000000000000000000000000000000000000000004710156102f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546103089190610706565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103f69493929190610745565b60405180910390a160017f0000000000000000000000000000000000000000000000000000000000000000600181111561043257610432610688565b0361054b5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146104b1576040519150601f19603f3d011682016040523d82523d6000602084013e6104b6565b606091505b5050905080610547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102e9565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd9184916105ce917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610786565b6000604051808303818588803b1580156105e757600080fd5b505af11580156105fb573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156106295760208185018101518683018201520161060d565b8181111561063b576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006106816020830184610603565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b6020810161070082846106b7565b92915050565b60008219821115610740577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161077d60608301846106b7565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061077d606083018461060356fea164736f6c634300080f000a","sourceMap":"436:836:142:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:34:209;;;;;;;;;;;;;;;;;;190:42:334;178:55;;;160:74;;148:2;133:18;820:34:209;;;;;;;;2732:832;;;;;;;;;;;;;:::i;:::-;;519:40:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1188:29:209:-;;;;;;;;;;;;;;;;;;;1152:25:334;;;1140:2;1125:18;1188:29:209;1006:177:334;927:53:209;;;;;;;;;;;;;;;;;;;;;;:::i;716:46::-;;;;;;;;;;;;;;;1184:86:142;;;;;;;;;;-1:-1:-1;1254:9:142;1184:86;;2732:832:209;2817:21;2792;:46;;2771:167;;;;;;;2116:2:334;2771:167:209;;;2098:21:334;2155:2;2135:18;;;2128:30;2194:34;2174:18;;;2167:62;2265:34;2245:18;;;2238:62;2337:12;2316:19;;;2309:41;2367:19;;2771:167:209;;;;;;;;;2949:13;2965:21;2949:37;;3014:5;2996:14;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;3035:40:209;;;2886:25:334;;;3053:9:209;2930:42:334;3008:15;3003:2;2988:18;;2981:43;3064:10:209;3040:18:334;;;3033:43;3035:40:209;;;;;;;2874:2:334;3035:40:209;;;3090:60;3101:5;3108:9;3119:10;3131:18;3090:60;;;;;;;;;:::i;:::-;;;;;;;;3187:20;3165:18;:42;;;;;;;;:::i;:::-;;3161:397;;3224:12;3241:9;:14;;3264:5;3241:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3223:55;;;3300:7;3292:68;;;;;;;4022:2:334;3292:68:209;;;4004:21:334;4061:2;4041:18;;;4034:30;4100:34;4080:18;;;4073:62;4171:18;4151;;;4144:46;4207:19;;3292:68:209;3820:412:334;3292:68:209;3209:162;2761:803;2732:832::o;3161:397::-;3524:9;;;;;;;;-1:-1:-1;3524:9:209;;3391:156;;;;;635:42:183;;3391:68:209;;3468:5;;3391:156;;3493:9;;1112:6;;3391:156;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:803;2732:832::o;245:531:334:-;287:3;325:5;319:12;352:6;347:3;340:19;377:1;387:162;401:6;398:1;395:13;387:162;;;463:4;519:13;;;515:22;;509:29;491:11;;;487:20;;480:59;416:12;387:162;;;567:6;564:1;561:13;558:87;;;633:1;626:4;617:6;612:3;608:16;604:27;597:38;558:87;-1:-1:-1;690:2:334;678:15;695:66;674:88;665:98;;;;765:4;661:109;;245:531;-1:-1:-1;;245:531:334:o;781:220::-;930:2;919:9;912:21;893:4;950:45;991:2;980:9;976:18;968:6;950:45;:::i;:::-;942:53;781:220;-1:-1:-1;;;781:220:334:o;1188:184::-;1240:77;1237:1;1230:88;1337:4;1334:1;1327:15;1361:4;1358:1;1351:15;1377:302;1466:1;1459:5;1456:12;1446:200;;1502:77;1499:1;1492:88;1603:4;1600:1;1593:15;1631:4;1628:1;1621:15;1446:200;1655:18;;1377:302::o;1684:225::-;1839:2;1824:18;;1851:52;1828:9;1885:6;1851:52;:::i;:::-;1684:225;;;;:::o;2397:282::-;2437:3;2468:1;2464:6;2461:1;2458:13;2455:193;;;2504:77;2501:1;2494:88;2605:4;2602:1;2595:15;2633:4;2630:1;2623:15;2455:193;-1:-1:-1;2664:9:334;;2397:282::o;3087:518::-;3339:25;;;3383:42;3461:15;;;3456:2;3441:18;;3434:43;3513:15;;3508:2;3493:18;;3486:43;3326:3;3311:19;;3538:61;3595:2;3580:18;;3572:6;3538:61;:::i;:::-;3087:518;;;;;;;:::o;4237:424::-;4450:42;4442:6;4438:55;4427:9;4420:74;4542:10;4534:6;4530:23;4525:2;4514:9;4510:18;4503:51;4590:2;4585;4574:9;4570:18;4563:30;4401:4;4610:45;4651:2;4640:9;4636:18;4628:6;4610:45;:::i","linkReferences":{},"immutableReferences":{"98863":[{"start":450,"length":32},{"start":537,"length":32}],"98866":[{"start":146,"length":32},{"start":499,"length":32},{"start":790,"length":32},{"start":933,"length":32},{"start":1083,"length":32},{"start":1442,"length":32}],"98870":[{"start":385,"length":32},{"start":967,"length":32},{"start":1026,"length":32}]}},"methodIdentifiers":{"MIN_WITHDRAWAL_AMOUNT()":"d3e5792b","RECIPIENT()":"0d9019e1","WITHDRAWAL_NETWORK()":"d0e12f90","l1FeeWallet()":"d4ff9218","totalProcessed()":"84411d65","version()":"54fd4d50","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"_withdrawalNetwork\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"withdrawalNetwork\",\"type\":\"uint8\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_WITHDRAWAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECIPIENT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWAL_NETWORK\",\"outputs\":[{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1FeeWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProcessed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000011\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_minWithdrawalAmount\":\"Minimum balance for withdrawals.\",\"_recipient\":\"Wallet that will receive the fees.\",\"_withdrawalNetwork\":\"Network which the recipient will receive fees on.\"}},\"l1FeeWallet()\":{\"custom:legacy\":\"@notice Legacy getter for the recipient address.\",\"returns\":{\"_0\":\"The recipient address.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.4.1\"}},\"title\":\"SequencerFeeVault\",\"version\":1},\"userdoc\":{\"events\":{\"Withdrawal(uint256,address,address)\":{\"notice\":\"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter.\"},\"Withdrawal(uint256,address,address,uint8)\":{\"notice\":\"Emitted each time a withdrawal occurs.\"}},\"kind\":\"user\",\"methods\":{\"MIN_WITHDRAWAL_AMOUNT()\":{\"notice\":\"Minimum balance before a withdrawal can be triggered.\"},\"RECIPIENT()\":{\"notice\":\"Wallet that will receive the fees.\"},\"WITHDRAWAL_NETWORK()\":{\"notice\":\"Network which the RECIPIENT will receive fees on.\"},\"constructor\":{\"notice\":\"Constructs the SequencerFeeVault contract.\"},\"totalProcessed()\":{\"notice\":\"Total amount of wei processed by the contract.\"},\"withdraw()\":{\"notice\":\"Triggers a withdrawal of funds to the fee wallet on L1 or L2.\"}},\"notice\":\"The SequencerFeeVault is the contract that holds any fees paid to the Sequencer during transaction processing and block production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/SequencerFeeVault.sol\":\"SequencerFeeVault\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145\",\"dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7\"]},\"src/L2/L2StandardBridge.sol\":{\"keccak256\":\"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570\",\"dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5\"]},\"src/L2/SequencerFeeVault.sol\":{\"keccak256\":\"0x150206a20b534bdc99e26bb9b963990c141f0b435faf3df78fcd458ee06427a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d17f3b047e8d583a744b775fdab3f904c3d105e870a7323d7ac4ac0facc3b9c\",\"dweb:/ipfs/QmavchWzHDy7bHSeWs8E6RUwDENESVYdHEaf6MBZfEmfNR\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xdd186cc21cfd5eb4404e02382a60674283b55a7fd488d5a3b5e902772644d6f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a03255efeec621c48e60316f38bfd919744c1379c36072e6990d14f20e2186fd\",\"dweb:/ipfs/QmbWjAZXN7sBzZuypMXrH92zKbMtq376NXxGAK1xj5VssB\"]},\"src/universal/FeeVault.sol\":{\"keccak256\":\"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9\",\"dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0xa3755ba03080d3c01c905c0d4d4d9b5105982c3553e7bc512a9df7a9754754a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://218aad18881bfeef187c2cdc132036976310f785b55dc63d7df9034aaff536c5\",\"dweb:/ipfs/QmSDRyWV8nD99Nwp12zMvM4iKRqd7f4sNgkzXYHx7V79Ep\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_minWithdrawalAmount","type":"uint256"},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"_withdrawalNetwork","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"withdrawalNetwork","type":"uint8","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_WITHDRAWAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECIPIENT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WITHDRAWAL_NETWORK","outputs":[{"internalType":"enum FeeVault.WithdrawalNetwork","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeWallet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalProcessed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}},"l1FeeWallet()":{"custom:legacy":"@notice Legacy getter for the recipient address.","returns":{"_0":"The recipient address."}}},"version":1},"userdoc":{"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the SequencerFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/SequencerFeeVault.sol":"SequencerFeeVault"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330","urls":["bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145","dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7"],"license":"MIT"},"src/L2/L2StandardBridge.sol":{"keccak256":"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629","urls":["bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570","dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5"],"license":"MIT"},"src/L2/SequencerFeeVault.sol":{"keccak256":"0x150206a20b534bdc99e26bb9b963990c141f0b435faf3df78fcd458ee06427a0","urls":["bzz-raw://0d17f3b047e8d583a744b775fdab3f904c3d105e870a7323d7ac4ac0facc3b9c","dweb:/ipfs/QmavchWzHDy7bHSeWs8E6RUwDENESVYdHEaf6MBZfEmfNR"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xdd186cc21cfd5eb4404e02382a60674283b55a7fd488d5a3b5e902772644d6f4","urls":["bzz-raw://a03255efeec621c48e60316f38bfd919744c1379c36072e6990d14f20e2186fd","dweb:/ipfs/QmbWjAZXN7sBzZuypMXrH92zKbMtq376NXxGAK1xj5VssB"],"license":"MIT"},"src/universal/FeeVault.sol":{"keccak256":"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe","urls":["bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9","dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0xa3755ba03080d3c01c905c0d4d4d9b5105982c3553e7bc512a9df7a9754754a1","urls":["bzz-raw://218aad18881bfeef187c2cdc132036976310f785b55dc63d7df9034aaff536c5","dweb:/ipfs/QmSDRyWV8nD99Nwp12zMvM4iKRqd7f4sNgkzXYHx7V79Ep"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":98877,"contract":"src/L2/SequencerFeeVault.sol:SequencerFeeVault","label":"totalProcessed","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the SequencerFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"events":{"Withdrawal(uint256,address,address)":{"notice":"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter."},"Withdrawal(uint256,address,address,uint8)":{"notice":"Emitted each time a withdrawal occurs."}},"notice":"The SequencerFeeVault is the contract that holds any fees paid to the Sequencer during transaction processing and block production."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}},"l1FeeWallet()":{"returns":{"_0":"The recipient address."}}},"title":"SequencerFeeVault"},"ast":{"absolutePath":"src/L2/SequencerFeeVault.sol","id":82934,"exportedSymbols":{"FeeVault":[99010],"ISemver":[99149],"SequencerFeeVault":[82933]},"nodeType":"SourceUnit","src":"32:1241:142","nodes":[{"id":82893,"nodeType":"PragmaDirective","src":"32:23:142","nodes":[],"literals":["solidity","0.8",".15"]},{"id":82895,"nodeType":"ImportDirective","src":"57:52:142","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":82934,"sourceUnit":99150,"symbolAliases":[{"foreign":{"id":82894,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99149,"src":"66:7:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82897,"nodeType":"ImportDirective","src":"110:54:142","nodes":[],"absolutePath":"src/universal/FeeVault.sol","file":"src/universal/FeeVault.sol","nameLocation":"-1:-1:-1","scope":82934,"sourceUnit":99011,"symbolAliases":[{"foreign":{"id":82896,"name":"FeeVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99010,"src":"119:8:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82933,"nodeType":"ContractDefinition","src":"436:836:142","nodes":[{"id":82906,"nodeType":"VariableDeclaration","src":"519:40:142","nodes":[],"baseFunctions":[99148],"constant":true,"documentation":{"id":82903,"nodeType":"StructuredDocumentation","src":"490:24:142","text":"@custom:semver 1.4.1"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"542:7:142","scope":82933,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82904,"name":"string","nodeType":"ElementaryTypeName","src":"519:6:142","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e342e31","id":82905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"552:7:142","typeDescriptions":{"typeIdentifier":"t_stringliteral_7015c1a48403d132ad83884b326109f1b309c42f752b2abd1db79522ee074673","typeString":"literal_string \"1.4.1\""},"value":"1.4.1"},"visibility":"public"},{"id":82923,"nodeType":"FunctionDefinition","src":"851:208:142","nodes":[],"body":{"id":82922,"nodeType":"Block","src":"1056:3:142","nodes":[],"statements":[]},"documentation":{"id":82907,"nodeType":"StructuredDocumentation","src":"566:280:142","text":"@notice Constructs the SequencerFeeVault contract.\n @param _recipient Wallet that will receive the fees.\n @param _minWithdrawalAmount Minimum balance for withdrawals.\n @param _withdrawalNetwork Network which the recipient will receive fees on."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":82917,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82909,"src":"998:10:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82918,"name":"_minWithdrawalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82911,"src":"1010:20:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82919,"name":"_withdrawalNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82914,"src":"1032:18:142","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$98860","typeString":"enum FeeVault.WithdrawalNetwork"}}],"id":82920,"kind":"baseConstructorSpecifier","modifierName":{"id":82916,"name":"FeeVault","nodeType":"IdentifierPath","referencedDeclaration":99010,"src":"989:8:142"},"nodeType":"ModifierInvocation","src":"989:62:142"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82909,"mutability":"mutable","name":"_recipient","nameLocation":"880:10:142","nodeType":"VariableDeclaration","scope":82923,"src":"872:18:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82908,"name":"address","nodeType":"ElementaryTypeName","src":"872:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82911,"mutability":"mutable","name":"_minWithdrawalAmount","nameLocation":"908:20:142","nodeType":"VariableDeclaration","scope":82923,"src":"900:28:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82910,"name":"uint256","nodeType":"ElementaryTypeName","src":"900:7:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82914,"mutability":"mutable","name":"_withdrawalNetwork","nameLocation":"956:18:142","nodeType":"VariableDeclaration","scope":82923,"src":"938:36:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$98860","typeString":"enum FeeVault.WithdrawalNetwork"},"typeName":{"id":82913,"nodeType":"UserDefinedTypeName","pathNode":{"id":82912,"name":"WithdrawalNetwork","nodeType":"IdentifierPath","referencedDeclaration":98860,"src":"938:17:142"},"referencedDeclaration":98860,"src":"938:17:142","typeDescriptions":{"typeIdentifier":"t_enum$_WithdrawalNetwork_$98860","typeString":"enum FeeVault.WithdrawalNetwork"}},"visibility":"internal"}],"src":"862:118:142"},"returnParameters":{"id":82921,"nodeType":"ParameterList","parameters":[],"src":"1056:0:142"},"scope":82933,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82932,"nodeType":"FunctionDefinition","src":"1184:86:142","nodes":[],"body":{"id":82931,"nodeType":"Block","src":"1237:33:142","nodes":[],"statements":[{"expression":{"id":82929,"name":"RECIPIENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98866,"src":"1254:9:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":82928,"id":82930,"nodeType":"Return","src":"1247:16:142"}]},"documentation":{"id":82924,"nodeType":"StructuredDocumentation","src":"1065:114:142","text":"@custom:legacy\n @notice Legacy getter for the recipient address.\n @return The recipient address."},"functionSelector":"d4ff9218","implemented":true,"kind":"function","modifiers":[],"name":"l1FeeWallet","nameLocation":"1193:11:142","parameters":{"id":82925,"nodeType":"ParameterList","parameters":[],"src":"1204:2:142"},"returnParameters":{"id":82928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82927,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82932,"src":"1228:7:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82926,"name":"address","nodeType":"ElementaryTypeName","src":"1228:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1227:9:142"},"scope":82933,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":82899,"name":"FeeVault","nodeType":"IdentifierPath","referencedDeclaration":99010,"src":"466:8:142"},"id":82900,"nodeType":"InheritanceSpecifier","src":"466:8:142"},{"baseName":{"id":82901,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":99149,"src":"476:7:142"},"id":82902,"nodeType":"InheritanceSpecifier","src":"476:7:142"}],"canonicalName":"SequencerFeeVault","contractDependencies":[],"contractKind":"contract","documentation":{"id":82898,"nodeType":"StructuredDocumentation","src":"166:270:142","text":"@custom:proxied\n @custom:predeploy 0x4200000000000000000000000000000000000011\n @title SequencerFeeVault\n @notice The SequencerFeeVault is the contract that holds any fees paid to the Sequencer during\n transaction processing and block production."},"fullyImplemented":true,"linearizedBaseContracts":[82933,99149,99010],"name":"SequencerFeeVault","nameLocation":"445:17:142","scope":82934,"usedErrors":[]}],"license":"MIT"},"id":142}
{"abi":[{"type":"constructor","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_minWithdrawalAmount","type":"uint256","internalType":"uint256"},{"name":"_withdrawalNetwork","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MIN_WITHDRAWAL_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"RECIPIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WITHDRAWAL_NETWORK","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum FeeVault.WithdrawalNetwork"}],"stateMutability":"view"},{"type":"function","name":"l1FeeWallet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalProcessed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawalNetwork","type":"uint8","indexed":false,"internalType":"enum FeeVault.WithdrawalNetwork"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561001057600080fd5b5060405161091638038061091683398101604081905261002f91610079565b6001600160a01b03831660a0526080829052828282806001811115610056576100566100cc565b60c081600181111561006a5761006a6100cc565b815250505050505050506100e2565b60008060006060848603121561008e57600080fd5b83516001600160a01b03811681146100a557600080fd5b602085015160408601519194509250600281106100c157600080fd5b809150509250925092565b634e487b7160e01b600052602160045260246000fd5b60805160a05160c0516107ce61014860003960008181610181015281816103c701526104020152600081816092015281816101f301528181610316015281816103a50152818161043b01526105a20152600081816101c2015261021901526107ce6000f3fe6080604052600436106100745760003560e01c806384411d651161004e57806384411d651461014b578063d0e12f901461016f578063d3e5792b146101b0578063d4ff9218146101e457600080fd5b80630d9019e1146100805780633ccfd60b146100de57806354fd4d50146100f557600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100b47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100ea57600080fd5b506100f3610217565b005b34801561010157600080fd5b5061013e6040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100d5919061066e565b34801561015757600080fd5b5061016160005481565b6040519081526020016100d5565b34801561017b57600080fd5b506101a37f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d591906106f2565b3480156101bc57600080fd5b506101617f000000000000000000000000000000000000000000000000000000000000000081565b3480156101f057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006100b4565b7f00000000000000000000000000000000000000000000000000000000000000004710156102f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546103089190610706565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103f69493929190610745565b60405180910390a160017f0000000000000000000000000000000000000000000000000000000000000000600181111561043257610432610688565b0361054b5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146104b1576040519150601f19603f3d011682016040523d82523d6000602084013e6104b6565b606091505b5050905080610547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102e9565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd9184916105ce917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610786565b6000604051808303818588803b1580156105e757600080fd5b505af11580156105fb573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156106295760208185018101518683018201520161060d565b8181111561063b576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006106816020830184610603565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b6020810161070082846106b7565b92915050565b60008219821115610740577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161077d60608301846106b7565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061077d606083018461060356fea164736f6c634300080f000a","sourceMap":"436:836:147:-:0;;;851:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2429:22:220;;;;2461:44;;;;998:10:147;1010:20;1032:18;;2515:39:220;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2319:242;;;851:208:147;;;436:836;;14:518:350;126:6;134;142;195:2;183:9;174:7;170:23;166:32;163:52;;;211:1;208;201:12;163:52;237:16;;-1:-1:-1;;;;;282:31:350;;272:42;;262:70;;328:1;325;318:12;262:70;396:2;381:18;;375:25;445:2;430:18;;424:25;351:5;;-1:-1:-1;375:25:350;-1:-1:-1;480:1:350;468:14;;458:42;;496:1;493;486:12;458:42;519:7;509:17;;;14:518;;;;;:::o;537:127::-;598:10;593:3;589:20;586:1;579:31;629:4;626:1;619:15;653:4;650:1;643:15;537:127;436:836:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100745760003560e01c806384411d651161004e57806384411d651461014b578063d0e12f901461016f578063d3e5792b146101b0578063d4ff9218146101e457600080fd5b80630d9019e1146100805780633ccfd60b146100de57806354fd4d50146100f557600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100b47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100ea57600080fd5b506100f3610217565b005b34801561010157600080fd5b5061013e6040518060400160405280600581526020017f312e342e3100000000000000000000000000000000000000000000000000000081525081565b6040516100d5919061066e565b34801561015757600080fd5b5061016160005481565b6040519081526020016100d5565b34801561017b57600080fd5b506101a37f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d591906106f2565b3480156101bc57600080fd5b506101617f000000000000000000000000000000000000000000000000000000000000000081565b3480156101f057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006100b4565b7f00000000000000000000000000000000000000000000000000000000000000004710156102f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d207769746864726160648201527f77616c20616d6f756e7400000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b6000479050806000808282546103089190610706565b9091555050604080518281527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166020820152338183015290517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a17f38e04cbeb8c10f8f568618aa75be0f10b6729b8b4237743b4de20cbcde2839ee817f0000000000000000000000000000000000000000000000000000000000000000337f00000000000000000000000000000000000000000000000000000000000000006040516103f69493929190610745565b60405180910390a160017f0000000000000000000000000000000000000000000000000000000000000000600181111561043257610432610688565b0361054b5760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146104b1576040519150601f19603f3d011682016040523d82523d6000602084013e6104b6565b606091505b5050905080610547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4665655661756c743a206661696c656420746f2073656e642045544820746f2060448201527f4c322066656520726563697069656e740000000000000000000000000000000060648201526084016102e9565b5050565b604080516020810182526000815290517fe11013dd0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109163e11013dd9184916105ce917f0000000000000000000000000000000000000000000000000000000000000000916188b891600401610786565b6000604051808303818588803b1580156105e757600080fd5b505af11580156105fb573d6000803e3d6000fd5b505050505050565b6000815180845260005b818110156106295760208185018101518683018201520161060d565b8181111561063b576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006106816020830184610603565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106106ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b6020810161070082846106b7565b92915050565b60008219821115610740577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b84815273ffffffffffffffffffffffffffffffffffffffff8481166020830152831660408201526080810161077d60608301846106b7565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061077d606083018461060356fea164736f6c634300080f000a","sourceMap":"436:836:147:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:34:220;;;;;;;;;;;;;;;;;;190:42:350;178:55;;;160:74;;148:2;133:18;820:34:220;;;;;;;;2732:832;;;;;;;;;;;;;:::i;:::-;;519:40:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1188:29:220:-;;;;;;;;;;;;;;;;;;;1152:25:350;;;1140:2;1125:18;1188:29:220;1006:177:350;927:53:220;;;;;;;;;;;;;;;;;;;;;;:::i;716:46::-;;;;;;;;;;;;;;;1184:86:147;;;;;;;;;;-1:-1:-1;1254:9:147;1184:86;;2732:832:220;2817:21;2792;:46;;2771:167;;;;;;;2117:2:350;2771:167:220;;;2099:21:350;2156:2;2136:18;;;2129:30;2195:34;2175:18;;;2168:62;2266:34;2246:18;;;2239:62;2338:12;2317:19;;;2310:41;2368:19;;2771:167:220;;;;;;;;;2949:13;2965:21;2949:37;;3014:5;2996:14;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;3035:40:220;;;2887:25:350;;;3053:9:220;2931:42:350;3009:15;3004:2;2989:18;;2982:43;3064:10:220;3041:18:350;;;3034:43;3035:40:220;;;;;;;2875:2:350;3035:40:220;;;3090:60;3101:5;3108:9;3119:10;3131:18;3090:60;;;;;;;;;:::i;:::-;;;;;;;;3187:20;3165:18;:42;;;;;;;;:::i;:::-;;3161:397;;3224:12;3241:9;:14;;3264:5;3241:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3223:55;;;3300:7;3292:68;;;;;;;4024:2:350;3292:68:220;;;4006:21:350;4063:2;4043:18;;;4036:30;4102:34;4082:18;;;4075:62;4173:18;4153;;;4146:46;4209:19;;3292:68:220;3822:412:350;3292:68:220;3209:162;2761:803;2732:832::o;3161:397::-;3524:9;;;;;;;;-1:-1:-1;3524:9:220;;3391:156;;;;;635:42:194;;3391:68:220;;3468:5;;3391:156;;3493:9;;1112:6;;3391:156;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:803;2732:832::o;245:531:350:-;287:3;325:5;319:12;352:6;347:3;340:19;377:1;387:162;401:6;398:1;395:13;387:162;;;463:4;519:13;;;515:22;;509:29;491:11;;;487:20;;480:59;416:12;387:162;;;567:6;564:1;561:13;558:87;;;633:1;626:4;617:6;612:3;608:16;604:27;597:38;558:87;-1:-1:-1;690:2:350;678:15;695:66;674:88;665:98;;;;765:4;661:109;;245:531;-1:-1:-1;;245:531:350:o;781:220::-;930:2;919:9;912:21;893:4;950:45;991:2;980:9;976:18;968:6;950:45;:::i;:::-;942:53;781:220;-1:-1:-1;;;781:220:350:o;1188:184::-;1240:77;1237:1;1230:88;1337:4;1334:1;1327:15;1361:4;1358:1;1351:15;1377:302;1466:1;1459:5;1456:12;1446:200;;1502:77;1499:1;1492:88;1603:4;1600:1;1593:15;1631:4;1628:1;1621:15;1446:200;1655:18;;1377:302::o;1684:226::-;1840:2;1825:18;;1852:52;1829:9;1886:6;1852:52;:::i;:::-;1684:226;;;;:::o;2398:282::-;2438:3;2469:1;2465:6;2462:1;2459:13;2456:193;;;2505:77;2502:1;2495:88;2606:4;2603:1;2596:15;2634:4;2631:1;2624:15;2456:193;-1:-1:-1;2665:9:350;;2398:282::o;3088:519::-;3341:25;;;3385:42;3463:15;;;3458:2;3443:18;;3436:43;3515:15;;3510:2;3495:18;;3488:43;3328:3;3313:19;;3540:61;3597:2;3582:18;;3574:6;3540:61;:::i;:::-;3088:519;;;;;;;:::o;4239:424::-;4452:42;4444:6;4440:55;4429:9;4422:74;4544:10;4536:6;4532:23;4527:2;4516:9;4512:18;4505:51;4592:2;4587;4576:9;4572:18;4565:30;4403:4;4612:45;4653:2;4642:9;4638:18;4630:6;4612:45;:::i","linkReferences":{},"immutableReferences":{"105741":[{"start":450,"length":32},{"start":537,"length":32}],"105744":[{"start":146,"length":32},{"start":499,"length":32},{"start":790,"length":32},{"start":933,"length":32},{"start":1083,"length":32},{"start":1442,"length":32}],"105748":[{"start":385,"length":32},{"start":967,"length":32},{"start":1026,"length":32}]}},"methodIdentifiers":{"MIN_WITHDRAWAL_AMOUNT()":"d3e5792b","RECIPIENT()":"0d9019e1","WITHDRAWAL_NETWORK()":"d0e12f90","l1FeeWallet()":"d4ff9218","totalProcessed()":"84411d65","version()":"54fd4d50","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minWithdrawalAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"_withdrawalNetwork\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"withdrawalNetwork\",\"type\":\"uint8\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_WITHDRAWAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECIPIENT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWAL_NETWORK\",\"outputs\":[{\"internalType\":\"enum FeeVault.WithdrawalNetwork\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1FeeWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProcessed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x4200000000000000000000000000000000000011\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_minWithdrawalAmount\":\"Minimum balance for withdrawals.\",\"_recipient\":\"Wallet that will receive the fees.\",\"_withdrawalNetwork\":\"Network which the recipient will receive fees on.\"}},\"l1FeeWallet()\":{\"custom:legacy\":\"@notice Legacy getter for the recipient address.\",\"returns\":{\"_0\":\"The recipient address.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.4.1\"}},\"title\":\"SequencerFeeVault\",\"version\":1},\"userdoc\":{\"events\":{\"Withdrawal(uint256,address,address)\":{\"notice\":\"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter.\"},\"Withdrawal(uint256,address,address,uint8)\":{\"notice\":\"Emitted each time a withdrawal occurs.\"}},\"kind\":\"user\",\"methods\":{\"MIN_WITHDRAWAL_AMOUNT()\":{\"notice\":\"Minimum balance before a withdrawal can be triggered.\"},\"RECIPIENT()\":{\"notice\":\"Wallet that will receive the fees.\"},\"WITHDRAWAL_NETWORK()\":{\"notice\":\"Network which the RECIPIENT will receive fees on.\"},\"constructor\":{\"notice\":\"Constructs the SequencerFeeVault contract.\"},\"totalProcessed()\":{\"notice\":\"Total amount of wei processed by the contract.\"},\"withdraw()\":{\"notice\":\"Triggers a withdrawal of funds to the fee wallet on L1 or L2.\"}},\"notice\":\"The SequencerFeeVault is the contract that holds any fees paid to the Sequencer during transaction processing and block production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/SequencerFeeVault.sol\":\"SequencerFeeVault\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a\",\"dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH\"]},\"src/L2/L2StandardBridge.sol\":{\"keccak256\":\"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570\",\"dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5\"]},\"src/L2/SequencerFeeVault.sol\":{\"keccak256\":\"0x150206a20b534bdc99e26bb9b963990c141f0b435faf3df78fcd458ee06427a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d17f3b047e8d583a744b775fdab3f904c3d105e870a7323d7ac4ac0facc3b9c\",\"dweb:/ipfs/QmavchWzHDy7bHSeWs8E6RUwDENESVYdHEaf6MBZfEmfNR\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776\",\"dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo\"]},\"src/universal/FeeVault.sol\":{\"keccak256\":\"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9\",\"dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x361e734aa5ac5701e87aaca3c6bd4b78c85c1d4fca2b5e0bfe72ab2ee6ceaf90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25a5a0f8b38600ef006b0c21093727d4d87f6517d428295bee4034a38ae08da4\",\"dweb:/ipfs/Qmb678AjEGt8tWGrzybn7MTvVWBFLuHEzQG2uHqTjCpNPC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_minWithdrawalAmount","type":"uint256"},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"_withdrawalNetwork","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"enum FeeVault.WithdrawalNetwork","name":"withdrawalNetwork","type":"uint8","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_WITHDRAWAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECIPIENT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WITHDRAWAL_NETWORK","outputs":[{"internalType":"enum FeeVault.WithdrawalNetwork","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeWallet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalProcessed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}},"l1FeeWallet()":{"custom:legacy":"@notice Legacy getter for the recipient address.","returns":{"_0":"The recipient address."}}},"version":1},"userdoc":{"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the SequencerFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/SequencerFeeVault.sol":"SequencerFeeVault"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x507f17fcf7bf28bc9993359612d9b990d01b44bbc773e03157a3d565250857d1","urls":["bzz-raw://24ebea9efbc255854903359868d956eac7a75e715df43fa7d26b16e985d19f5a","dweb:/ipfs/QmR2kPvAn6yxa8ohoHYJohQGY98vthPDDd6mdx8tqiLNLH"],"license":"MIT"},"src/L2/L2StandardBridge.sol":{"keccak256":"0x9f17720ac0b3b44723b02385a19063cf22704cd0bd253fce3e6d24b9f76bd629","urls":["bzz-raw://1575cf22553428baf7abb23059cb97c29e534ab5214f13d54a1810349166c570","dweb:/ipfs/Qme2oVH1pd1rBe1AyxUjHrofDgHXdHaUiqSgBVsSSLbKN5"],"license":"MIT"},"src/L2/SequencerFeeVault.sol":{"keccak256":"0x150206a20b534bdc99e26bb9b963990c141f0b435faf3df78fcd458ee06427a0","urls":["bzz-raw://0d17f3b047e8d583a744b775fdab3f904c3d105e870a7323d7ac4ac0facc3b9c","dweb:/ipfs/QmavchWzHDy7bHSeWs8E6RUwDENESVYdHEaf6MBZfEmfNR"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xe90cc70427e710333d4e1f0a5ab7903e2724eacd940c1d714231b897d856f4dd","urls":["bzz-raw://faad37182a6efd5426d2ce18d071fc6825f72754393099729ea6769aa5d1a776","dweb:/ipfs/QmPzgQkXYj2kM9xpGQB6gJ3QZBHqkiKAvRUoZwar3J2yoo"],"license":"MIT"},"src/universal/FeeVault.sol":{"keccak256":"0x8891b995e9ccb45a8396d9c93b6337ee3dc1d2d5b87f443d39477127e324ddbe","urls":["bzz-raw://3bfca73e7b5dd8b27554b2b01e3c4da379b1941a20fa835ac5969b454d6b06e9","dweb:/ipfs/QmcH2VXjR3M5gNEYGP1XVrJYMKh5N4sNPRhpbrB55A3wPf"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x361e734aa5ac5701e87aaca3c6bd4b78c85c1d4fca2b5e0bfe72ab2ee6ceaf90","urls":["bzz-raw://25a5a0f8b38600ef006b0c21093727d4d87f6517d428295bee4034a38ae08da4","dweb:/ipfs/Qmb678AjEGt8tWGrzybn7MTvVWBFLuHEzQG2uHqTjCpNPC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":105755,"contract":"src/L2/SequencerFeeVault.sol:SequencerFeeVault","label":"totalProcessed","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"MIN_WITHDRAWAL_AMOUNT()":{"notice":"Minimum balance before a withdrawal can be triggered."},"RECIPIENT()":{"notice":"Wallet that will receive the fees."},"WITHDRAWAL_NETWORK()":{"notice":"Network which the RECIPIENT will receive fees on."},"constructor":{"notice":"Constructs the SequencerFeeVault contract."},"totalProcessed()":{"notice":"Total amount of wei processed by the contract."},"withdraw()":{"notice":"Triggers a withdrawal of funds to the fee wallet on L1 or L2."}},"events":{"Withdrawal(uint256,address,address)":{"notice":"Emitted each time a withdrawal occurs. This event will be deprecated in favor of the Withdrawal event containing the WithdrawalNetwork parameter."},"Withdrawal(uint256,address,address,uint8)":{"notice":"Emitted each time a withdrawal occurs."}},"notice":"The SequencerFeeVault is the contract that holds any fees paid to the Sequencer during transaction processing and block production."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_minWithdrawalAmount":"Minimum balance for withdrawals.","_recipient":"Wallet that will receive the fees.","_withdrawalNetwork":"Network which the recipient will receive fees on."}},"l1FeeWallet()":{"returns":{"_0":"The recipient address."}}},"title":"SequencerFeeVault"},"id":147}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"531:1177:62:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;531:1177:62;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"531:1177:62:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":\"SignatureChecker\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":"SignatureChecker"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._"},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol","id":52406,"exportedSymbols":{"Address":[51612],"ECDSA":[52322],"IERC1271":[47870],"SignatureChecker":[52405],"Strings":[51934]},"nodeType":"SourceUnit","src":"123:1586:62","nodes":[{"id":52324,"nodeType":"PragmaDirective","src":"123:23:62","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52325,"nodeType":"ImportDirective","src":"148:21:62","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","nameLocation":"-1:-1:-1","scope":52406,"sourceUnit":52323,"symbolAliases":[],"unitAlias":""},{"id":52326,"nodeType":"ImportDirective","src":"170:24:62","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"../Address.sol","nameLocation":"-1:-1:-1","scope":52406,"sourceUnit":51613,"symbolAliases":[],"unitAlias":""},{"id":52327,"nodeType":"ImportDirective","src":"195:39:62","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","file":"../../interfaces/IERC1271.sol","nameLocation":"-1:-1:-1","scope":52406,"sourceUnit":47871,"symbolAliases":[],"unitAlias":""},{"id":52405,"nodeType":"ContractDefinition","src":"531:1177:62","nodes":[{"id":52404,"nodeType":"FunctionDefinition","src":"1039:667:62","nodes":[],"body":{"id":52403,"nodeType":"Block","src":"1181:525:62","nodes":[],"statements":[{"assignments":[52341,52344],"declarations":[{"constant":false,"id":52341,"mutability":"mutable","name":"recovered","nameLocation":"1200:9:62","nodeType":"VariableDeclaration","scope":52403,"src":"1192:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52340,"name":"address","nodeType":"ElementaryTypeName","src":"1192:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52344,"mutability":"mutable","name":"error","nameLocation":"1230:5:62","nodeType":"VariableDeclaration","scope":52403,"src":"1211:24:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$51944","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":52343,"nodeType":"UserDefinedTypeName","pathNode":{"id":52342,"name":"ECDSA.RecoverError","nodeType":"IdentifierPath","referencedDeclaration":51944,"src":"1211:18:62"},"referencedDeclaration":51944,"src":"1211:18:62","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$51944","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":52350,"initialValue":{"arguments":[{"id":52347,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52333,"src":"1256:4:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":52348,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52335,"src":"1262:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":52345,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52322,"src":"1239:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$52322_$","typeString":"type(library ECDSA)"}},"id":52346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":52044,"src":"1239:16:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$51944_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError)"}},"id":52349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1239:33:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$51944_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"1191:81:62"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$51944","typeString":"enum ECDSA.RecoverError"},"id":52355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52351,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52344,"src":"1286:5:62","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$51944","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":52352,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52322,"src":"1295:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$52322_$","typeString":"type(library ECDSA)"}},"id":52353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":51944,"src":"1295:18:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$51944_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":52354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":51939,"src":"1295:26:62","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$51944","typeString":"enum ECDSA.RecoverError"}},"src":"1286:35:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52356,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52341,"src":"1325:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":52357,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52331,"src":"1338:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1325:19:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1286:58:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52363,"nodeType":"IfStatement","src":"1282:100:62","trueBody":{"id":52362,"nodeType":"Block","src":"1346:36:62","statements":[{"expression":{"hexValue":"74727565","id":52360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1367:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":52339,"id":52361,"nodeType":"Return","src":"1360:11:62"}]}},{"assignments":[52365,52367],"declarations":[{"constant":false,"id":52365,"mutability":"mutable","name":"success","nameLocation":"1398:7:62","nodeType":"VariableDeclaration","scope":52403,"src":"1393:12:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52364,"name":"bool","nodeType":"ElementaryTypeName","src":"1393:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":52367,"mutability":"mutable","name":"result","nameLocation":"1420:6:62","nodeType":"VariableDeclaration","scope":52403,"src":"1407:19:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52366,"name":"bytes","nodeType":"ElementaryTypeName","src":"1407:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":52379,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":52372,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47870,"src":"1484:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1271_$47870_$","typeString":"type(contract IERC1271)"}},"id":52373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":47869,"src":"1484:25:62","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function IERC1271.isValidSignature(bytes32,bytes memory) view returns (bytes4)"}},"id":52374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1484:34:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":52375,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52333,"src":"1520:4:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":52376,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52335,"src":"1526:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":52370,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1461:3:62","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":52371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1461:22:62","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":52377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1461:75:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":52368,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52331,"src":"1430:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staticcall","nodeType":"MemberAccess","src":"1430:17:62","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":52378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1430:116:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1392:154:62"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52380,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52365,"src":"1564:7:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52381,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52367,"src":"1587:6:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":52382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1587:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3332","id":52383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1604:2:62","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1587:19:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1564:42:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":52399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":52388,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52367,"src":"1633:6:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":52390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1642:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":52389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1642:7:62","typeDescriptions":{}}}],"id":52391,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1641:9:62","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":52386,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1622:3:62","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":52387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"1622:10:62","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":52392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1622:29:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"expression":{"id":52395,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47870,"src":"1663:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1271_$47870_$","typeString":"type(contract IERC1271)"}},"id":52396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":47869,"src":"1663:25:62","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function IERC1271.isValidSignature(bytes32,bytes memory) view returns (bytes4)"}},"id":52397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1663:34:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":52394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1655:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":52393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1655:7:62","typeDescriptions":{}}},"id":52398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1655:43:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1622:76:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1564:134:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":52401,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1563:136:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":52339,"id":52402,"nodeType":"Return","src":"1556:143:62"}]},"documentation":{"id":52329,"nodeType":"StructuredDocumentation","src":"562:472:62","text":" @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the\n signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECDSA.recover`.\n NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus\n change through time. It could return true at block N and false at block N+1 (or the opposite)."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"1048:19:62","parameters":{"id":52336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52331,"mutability":"mutable","name":"signer","nameLocation":"1085:6:62","nodeType":"VariableDeclaration","scope":52404,"src":"1077:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52330,"name":"address","nodeType":"ElementaryTypeName","src":"1077:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52333,"mutability":"mutable","name":"hash","nameLocation":"1109:4:62","nodeType":"VariableDeclaration","scope":52404,"src":"1101:12:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52332,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1101:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":52335,"mutability":"mutable","name":"signature","nameLocation":"1136:9:62","nodeType":"VariableDeclaration","scope":52404,"src":"1123:22:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52334,"name":"bytes","nodeType":"ElementaryTypeName","src":"1123:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1067:84:62"},"returnParameters":{"id":52339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52404,"src":"1175:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52337,"name":"bool","nodeType":"ElementaryTypeName","src":"1175:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1174:6:62"},"scope":52405,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SignatureChecker","contractDependencies":[],"contractKind":"library","documentation":{"id":52328,"nodeType":"StructuredDocumentation","src":"236:294:62","text":" @dev Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA\n signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like\n Argent and Gnosis Safe.\n _Available since v4.1._"},"fullyImplemented":true,"linearizedBaseContracts":[52405],"name":"SignatureChecker","nameLocation":"539:16:62","scope":52406,"usedErrors":[]}],"license":"MIT"},"id":62}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"531:1177:62:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;531:1177:62;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"531:1177:62:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":\"SignatureChecker\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":"SignatureChecker"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._"},"id":62}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"531:1177:4:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;531:1177:4;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"531:1177:4:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":\"SignatureChecker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":"SignatureChecker"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._"},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol","id":1006,"exportedSymbols":{"Address":[308],"ECDSA":[922],"IERC1271":[13],"SignatureChecker":[1005],"Strings":[534]},"nodeType":"SourceUnit","src":"123:1586:4","nodes":[{"id":924,"nodeType":"PragmaDirective","src":"123:23:4","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":925,"nodeType":"ImportDirective","src":"148:21:4","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","nameLocation":"-1:-1:-1","scope":1006,"sourceUnit":923,"symbolAliases":[],"unitAlias":""},{"id":926,"nodeType":"ImportDirective","src":"170:24:4","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"../Address.sol","nameLocation":"-1:-1:-1","scope":1006,"sourceUnit":309,"symbolAliases":[],"unitAlias":""},{"id":927,"nodeType":"ImportDirective","src":"195:39:4","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","file":"../../interfaces/IERC1271.sol","nameLocation":"-1:-1:-1","scope":1006,"sourceUnit":14,"symbolAliases":[],"unitAlias":""},{"id":1005,"nodeType":"ContractDefinition","src":"531:1177:4","nodes":[{"id":1004,"nodeType":"FunctionDefinition","src":"1039:667:4","nodes":[],"body":{"id":1003,"nodeType":"Block","src":"1181:525:4","nodes":[],"statements":[{"assignments":[941,944],"declarations":[{"constant":false,"id":941,"mutability":"mutable","name":"recovered","nameLocation":"1200:9:4","nodeType":"VariableDeclaration","scope":1003,"src":"1192:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":940,"name":"address","nodeType":"ElementaryTypeName","src":"1192:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":944,"mutability":"mutable","name":"error","nameLocation":"1230:5:4","nodeType":"VariableDeclaration","scope":1003,"src":"1211:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$544","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":943,"nodeType":"UserDefinedTypeName","pathNode":{"id":942,"name":"ECDSA.RecoverError","nameLocations":["1211:5:4","1217:12:4"],"nodeType":"IdentifierPath","referencedDeclaration":544,"src":"1211:18:4"},"referencedDeclaration":544,"src":"1211:18:4","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$544","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":950,"initialValue":{"arguments":[{"id":947,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":933,"src":"1256:4:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":948,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":935,"src":"1262:9:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":945,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"1239:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$922_$","typeString":"type(library ECDSA)"}},"id":946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1245:10:4","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":644,"src":"1239:16:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$544_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError)"}},"id":949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1239:33:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$544_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"1191:81:4"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$544","typeString":"enum ECDSA.RecoverError"},"id":955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":951,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"1286:5:4","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$544","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":952,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"1295:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$922_$","typeString":"type(library ECDSA)"}},"id":953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1301:12:4","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":544,"src":"1295:18:4","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$544_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1314:7:4","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":539,"src":"1295:26:4","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$544","typeString":"enum ECDSA.RecoverError"}},"src":"1286:35:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":956,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":941,"src":"1325:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":957,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"1338:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1325:19:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1286:58:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":963,"nodeType":"IfStatement","src":"1282:100:4","trueBody":{"id":962,"nodeType":"Block","src":"1346:36:4","statements":[{"expression":{"hexValue":"74727565","id":960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1367:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":939,"id":961,"nodeType":"Return","src":"1360:11:4"}]}},{"assignments":[965,967],"declarations":[{"constant":false,"id":965,"mutability":"mutable","name":"success","nameLocation":"1398:7:4","nodeType":"VariableDeclaration","scope":1003,"src":"1393:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":964,"name":"bool","nodeType":"ElementaryTypeName","src":"1393:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":967,"mutability":"mutable","name":"result","nameLocation":"1420:6:4","nodeType":"VariableDeclaration","scope":1003,"src":"1407:19:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":966,"name":"bytes","nodeType":"ElementaryTypeName","src":"1407:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":979,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":972,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"1484:8:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1271_$13_$","typeString":"type(contract IERC1271)"}},"id":973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1493:16:4","memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":12,"src":"1484:25:4","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function IERC1271.isValidSignature(bytes32,bytes memory) view returns (bytes4)"}},"id":974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1510:8:4","memberName":"selector","nodeType":"MemberAccess","src":"1484:34:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":975,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":933,"src":"1520:4:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":976,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":935,"src":"1526:9:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":970,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1461:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1465:18:4","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1461:22:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1461:75:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":968,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"1430:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1437:10:4","memberName":"staticcall","nodeType":"MemberAccess","src":"1430:17:4","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1430:116:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1392:154:4"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":980,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":965,"src":"1564:7:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":981,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"1587:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1594:6:4","memberName":"length","nodeType":"MemberAccess","src":"1587:13:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3332","id":983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1604:2:4","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1587:19:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1564:42:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":988,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"1633:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1642:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1642:7:4","typeDescriptions":{}}}],"id":991,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1641:9:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":986,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1622:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1626:6:4","memberName":"decode","nodeType":"MemberAccess","src":"1622:10:4","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1622:29:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"expression":{"id":995,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"1663:8:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1271_$13_$","typeString":"type(contract IERC1271)"}},"id":996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1672:16:4","memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":12,"src":"1663:25:4","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function IERC1271.isValidSignature(bytes32,bytes memory) view returns (bytes4)"}},"id":997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1689:8:4","memberName":"selector","nodeType":"MemberAccess","src":"1663:34:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1655:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1655:7:4","typeDescriptions":{}}},"id":998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1655:43:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1622:76:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1564:134:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1001,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1563:136:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":939,"id":1002,"nodeType":"Return","src":"1556:143:4"}]},"documentation":{"id":929,"nodeType":"StructuredDocumentation","src":"562:472:4","text":" @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the\n signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECDSA.recover`.\n NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus\n change through time. It could return true at block N and false at block N+1 (or the opposite)."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"1048:19:4","parameters":{"id":936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":931,"mutability":"mutable","name":"signer","nameLocation":"1085:6:4","nodeType":"VariableDeclaration","scope":1004,"src":"1077:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":930,"name":"address","nodeType":"ElementaryTypeName","src":"1077:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":933,"mutability":"mutable","name":"hash","nameLocation":"1109:4:4","nodeType":"VariableDeclaration","scope":1004,"src":"1101:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1101:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":935,"mutability":"mutable","name":"signature","nameLocation":"1136:9:4","nodeType":"VariableDeclaration","scope":1004,"src":"1123:22:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":934,"name":"bytes","nodeType":"ElementaryTypeName","src":"1123:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1067:84:4"},"returnParameters":{"id":939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1004,"src":"1175:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":937,"name":"bool","nodeType":"ElementaryTypeName","src":"1175:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1174:6:4"},"scope":1005,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SignatureChecker","contractDependencies":[],"contractKind":"library","documentation":{"id":928,"nodeType":"StructuredDocumentation","src":"236:294:4","text":" @dev Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA\n signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like\n Argent and Gnosis Safe.\n _Available since v4.1._"},"fullyImplemented":true,"linearizedBaseContracts":[1005],"name":"SignatureChecker","nameLocation":"539:16:4","scope":1006,"usedErrors":[]}],"license":"MIT"},"id":4}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"531:1177:4:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;531:1177:4;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"531:1177:4:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":\"SignatureChecker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b\",\"dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":"SignatureChecker"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbb5c92a62f2a917ec08667ebc024d5f4172ae3594cd5f4eaa997485ed0440d81","urls":["bzz-raw://392c009a19ece7831c9851d8f47fa8a1ee7ae81eeff01040a976cc110b0b9a3b","dweb:/ipfs/QmbtmS8RRPVNghAu9qWieesPkyrabQSypVpgbyhfzzubCe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._"},"id":4}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SignatureDecoder - Decodes signatures encoded as bytes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/SignatureDecoder.sol\":\"SignatureDecoder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/SignatureDecoder.sol\":{\"keccak256\":\"0x2a3baf0efa1585ddf2276505c6d34fa16f01cafff1288e40110d5e67fb459c7c\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://00cdded3068b9051ee0a966f40926fbc57dbe7ef8bf4285db3740f9d50468c80\",\"dweb:/ipfs/QmcP5hKmaRqBe7TpgoXtncZqsNKKdCCKxZgXoxEL4Nj5F4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/SignatureDecoder.sol":"SignatureDecoder"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/SignatureDecoder.sol":{"keccak256":"0x2a3baf0efa1585ddf2276505c6d34fa16f01cafff1288e40110d5e67fb459c7c","urls":["bzz-raw://00cdded3068b9051ee0a966f40926fbc57dbe7ef8bf4285db3740f9d50468c80","dweb:/ipfs/QmcP5hKmaRqBe7TpgoXtncZqsNKKdCCKxZgXoxEL4Nj5F4"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"SignatureDecoder - Decodes signatures encoded as bytes"},"ast":{"absolutePath":"lib/safe-contracts/contracts/common/SignatureDecoder.sol","id":58026,"exportedSymbols":{"SignatureDecoder":[58025]},"nodeType":"SourceUnit","src":"42:1652:81","nodes":[{"id":58007,"nodeType":"PragmaDirective","src":"42:31:81","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58025,"nodeType":"ContractDefinition","src":"189:1504:81","nodes":[{"id":58024,"nodeType":"FunctionDefinition","src":"947:744:81","nodes":[],"body":{"id":58023,"nodeType":"Block","src":"1063:628:81","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1138:547:81","statements":[{"nodeType":"YulVariableDeclaration","src":"1152:34:81","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1176:4:81","type":"","value":"0x41"},{"name":"pos","nodeType":"YulIdentifier","src":"1182:3:81"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"1172:3:81"},"nodeType":"YulFunctionCall","src":"1172:14:81"},"variables":[{"name":"signaturePos","nodeType":"YulTypedName","src":"1156:12:81","type":""}]},{"nodeType":"YulAssignment","src":"1199:52:81","value":{"arguments":[{"arguments":[{"name":"signatures","nodeType":"YulIdentifier","src":"1214:10:81"},{"arguments":[{"name":"signaturePos","nodeType":"YulIdentifier","src":"1230:12:81"},{"kind":"number","nodeType":"YulLiteral","src":"1244:4:81","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1226:3:81"},"nodeType":"YulFunctionCall","src":"1226:23:81"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1210:3:81"},"nodeType":"YulFunctionCall","src":"1210:40:81"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1204:5:81"},"nodeType":"YulFunctionCall","src":"1204:47:81"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1199:1:81"}]},{"nodeType":"YulAssignment","src":"1264:52:81","value":{"arguments":[{"arguments":[{"name":"signatures","nodeType":"YulIdentifier","src":"1279:10:81"},{"arguments":[{"name":"signaturePos","nodeType":"YulIdentifier","src":"1295:12:81"},{"kind":"number","nodeType":"YulLiteral","src":"1309:4:81","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1291:3:81"},"nodeType":"YulFunctionCall","src":"1291:23:81"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1275:3:81"},"nodeType":"YulFunctionCall","src":"1275:40:81"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1269:5:81"},"nodeType":"YulFunctionCall","src":"1269:47:81"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"1264:1:81"}]},{"nodeType":"YulAssignment","src":"1612:63:81","value":{"arguments":[{"arguments":[{"arguments":[{"name":"signatures","nodeType":"YulIdentifier","src":"1631:10:81"},{"arguments":[{"name":"signaturePos","nodeType":"YulIdentifier","src":"1647:12:81"},{"kind":"number","nodeType":"YulLiteral","src":"1661:4:81","type":"","value":"0x41"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1643:3:81"},"nodeType":"YulFunctionCall","src":"1643:23:81"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1627:3:81"},"nodeType":"YulFunctionCall","src":"1627:40:81"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1621:5:81"},"nodeType":"YulFunctionCall","src":"1621:47:81"},{"kind":"number","nodeType":"YulLiteral","src":"1670:4:81","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1617:3:81"},"nodeType":"YulFunctionCall","src":"1617:58:81"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"1612:1:81"}]}]},"evmVersion":"london","externalReferences":[{"declaration":58013,"isOffset":false,"isSlot":false,"src":"1182:3:81","valueSize":1},{"declaration":58018,"isOffset":false,"isSlot":false,"src":"1199:1:81","valueSize":1},{"declaration":58020,"isOffset":false,"isSlot":false,"src":"1264:1:81","valueSize":1},{"declaration":58011,"isOffset":false,"isSlot":false,"src":"1214:10:81","valueSize":1},{"declaration":58011,"isOffset":false,"isSlot":false,"src":"1279:10:81","valueSize":1},{"declaration":58011,"isOffset":false,"isSlot":false,"src":"1631:10:81","valueSize":1},{"declaration":58016,"isOffset":false,"isSlot":false,"src":"1612:1:81","valueSize":1}],"id":58022,"nodeType":"InlineAssembly","src":"1129:556:81"}]},"documentation":{"id":58009,"nodeType":"StructuredDocumentation","src":"230:712:81","text":" @notice Splits signature bytes into `uint8 v, bytes32 r, bytes32 s`.\n @dev Make sure to perform a bounds check for @param pos, to avoid out of bounds access on @param signatures\n The signature format is a compact form of {bytes32 r}{bytes32 s}{uint8 v}\n Compact means uint8 is not padded to 32 bytes.\n @param pos Which signature to read.\n A prior bounds check of this parameter should be performed, to avoid out of bounds access.\n @param signatures Concatenated {r, s, v} signatures.\n @return v Recovery ID or Safe signature type.\n @return r Output value r of the signature.\n @return s Output value s of the signature."},"implemented":true,"kind":"function","modifiers":[],"name":"signatureSplit","nameLocation":"956:14:81","parameters":{"id":58014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58011,"mutability":"mutable","name":"signatures","nameLocation":"984:10:81","nodeType":"VariableDeclaration","scope":58024,"src":"971:23:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58010,"name":"bytes","nodeType":"ElementaryTypeName","src":"971:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":58013,"mutability":"mutable","name":"pos","nameLocation":"1004:3:81","nodeType":"VariableDeclaration","scope":58024,"src":"996:11:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58012,"name":"uint256","nodeType":"ElementaryTypeName","src":"996:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:38:81"},"returnParameters":{"id":58021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58016,"mutability":"mutable","name":"v","nameLocation":"1038:1:81","nodeType":"VariableDeclaration","scope":58024,"src":"1032:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":58015,"name":"uint8","nodeType":"ElementaryTypeName","src":"1032:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":58018,"mutability":"mutable","name":"r","nameLocation":"1049:1:81","nodeType":"VariableDeclaration","scope":58024,"src":"1041:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58017,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1041:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":58020,"mutability":"mutable","name":"s","nameLocation":"1060:1:81","nodeType":"VariableDeclaration","scope":58024,"src":"1052:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1052:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1031:31:81"},"scope":58025,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"SignatureDecoder","contractDependencies":[],"contractKind":"contract","documentation":{"id":58008,"nodeType":"StructuredDocumentation","src":"75:113:81","text":" @title SignatureDecoder - Decodes signatures encoded as bytes\n @author Richard Meissner - @rmeissner"},"fullyImplemented":true,"linearizedBaseContracts":[58025],"name":"SignatureDecoder","nameLocation":"207:16:81","scope":58026,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":81}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SignatureDecoder - Decodes signatures encoded as bytes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/SignatureDecoder.sol\":\"SignatureDecoder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/SignatureDecoder.sol\":{\"keccak256\":\"0x2a3baf0efa1585ddf2276505c6d34fa16f01cafff1288e40110d5e67fb459c7c\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://00cdded3068b9051ee0a966f40926fbc57dbe7ef8bf4285db3740f9d50468c80\",\"dweb:/ipfs/QmcP5hKmaRqBe7TpgoXtncZqsNKKdCCKxZgXoxEL4Nj5F4\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/SignatureDecoder.sol":"SignatureDecoder"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/SignatureDecoder.sol":{"keccak256":"0x2a3baf0efa1585ddf2276505c6d34fa16f01cafff1288e40110d5e67fb459c7c","urls":["bzz-raw://00cdded3068b9051ee0a966f40926fbc57dbe7ef8bf4285db3740f9d50468c80","dweb:/ipfs/QmcP5hKmaRqBe7TpgoXtncZqsNKKdCCKxZgXoxEL4Nj5F4"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"SignatureDecoder - Decodes signatures encoded as bytes"},"id":81}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"215:1048:69:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;215:1048:69;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"215:1048:69:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":"SignedMath"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Standard signed math utilities missing in the Solidity language."},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","id":55250,"exportedSymbols":{"SignedMath":[55249]},"nodeType":"SourceUnit","src":"109:1155:69","nodes":[{"id":55146,"nodeType":"PragmaDirective","src":"109:23:69","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55249,"nodeType":"ContractDefinition","src":"215:1048:69","nodes":[{"id":55165,"nodeType":"FunctionDefinition","src":"311:102:69","nodes":[],"body":{"id":55164,"nodeType":"Block","src":"375:38:69","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":55159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55157,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55150,"src":"392:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":55158,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55152,"src":"397:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"392:6:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":55161,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55152,"src":"405:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":55162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"392:14:69","trueExpression":{"id":55160,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55150,"src":"401:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":55156,"id":55163,"nodeType":"Return","src":"385:21:69"}]},"documentation":{"id":55148,"nodeType":"StructuredDocumentation","src":"240:66:69","text":" @dev Returns the largest of two signed numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"320:3:69","parameters":{"id":55153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55150,"mutability":"mutable","name":"a","nameLocation":"331:1:69","nodeType":"VariableDeclaration","scope":55165,"src":"324:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":55149,"name":"int256","nodeType":"ElementaryTypeName","src":"324:6:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":55152,"mutability":"mutable","name":"b","nameLocation":"341:1:69","nodeType":"VariableDeclaration","scope":55165,"src":"334:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":55151,"name":"int256","nodeType":"ElementaryTypeName","src":"334:6:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"323:20:69"},"returnParameters":{"id":55156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55155,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55165,"src":"367:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":55154,"name":"int256","nodeType":"ElementaryTypeName","src":"367:6:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"366:8:69"},"scope":55249,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":55183,"nodeType":"FunctionDefinition","src":"491:101:69","nodes":[],"body":{"id":55182,"nodeType":"Block","src":"555:37:69","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":55177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55175,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"572:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55176,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55170,"src":"576:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"572:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":55179,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55170,"src":"584:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":55180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"572:13:69","trueExpression":{"id":55178,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"580:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":55174,"id":55181,"nodeType":"Return","src":"565:20:69"}]},"documentation":{"id":55166,"nodeType":"StructuredDocumentation","src":"419:67:69","text":" @dev Returns the smallest of two signed numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"500:3:69","parameters":{"id":55171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55168,"mutability":"mutable","name":"a","nameLocation":"511:1:69","nodeType":"VariableDeclaration","scope":55183,"src":"504:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":55167,"name":"int256","nodeType":"ElementaryTypeName","src":"504:6:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":55170,"mutability":"mutable","name":"b","nameLocation":"521:1:69","nodeType":"VariableDeclaration","scope":55183,"src":"514:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":55169,"name":"int256","nodeType":"ElementaryTypeName","src":"514:6:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"503:20:69"},"returnParameters":{"id":55174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55183,"src":"547:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":55172,"name":"int256","nodeType":"ElementaryTypeName","src":"547:6:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"546:8:69"},"scope":55249,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":55227,"nodeType":"FunctionDefinition","src":"729:230:69","nodes":[],"body":{"id":55226,"nodeType":"Block","src":"797:162:69","nodes":[],"statements":[{"assignments":[55194],"declarations":[{"constant":false,"id":55194,"mutability":"mutable","name":"x","nameLocation":"866:1:69","nodeType":"VariableDeclaration","scope":55226,"src":"859:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":55193,"name":"int256","nodeType":"ElementaryTypeName","src":"859:6:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":55207,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":55206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":55197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55195,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55186,"src":"871:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":55196,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55188,"src":"875:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"871:5:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":55198,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"870:7:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":55204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":55201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55199,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55186,"src":"882:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":55200,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55188,"src":"886:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"882:5:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":55202,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"881:7:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":55203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"892:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"881:12:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":55205,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:14:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:24:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"859:35:69"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":55224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55208,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55194,"src":"911:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":55222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":55213,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55194,"src":"931:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":55212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"923:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":55211,"name":"uint256","nodeType":"ElementaryTypeName","src":"923:7:69","typeDescriptions":{}}},"id":55214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"923:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":55215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"937:3:69","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"923:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"916:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":55209,"name":"int256","nodeType":"ElementaryTypeName","src":"916:6:69","typeDescriptions":{}}},"id":55217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"916:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":55220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55218,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55186,"src":"945:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":55219,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55188,"src":"949:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"945:5:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":55221,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"944:7:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"916:35:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":55223,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"915:37:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"911:41:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":55192,"id":55225,"nodeType":"Return","src":"904:48:69"}]},"documentation":{"id":55184,"nodeType":"StructuredDocumentation","src":"598:126:69","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"738:7:69","parameters":{"id":55189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55186,"mutability":"mutable","name":"a","nameLocation":"753:1:69","nodeType":"VariableDeclaration","scope":55227,"src":"746:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":55185,"name":"int256","nodeType":"ElementaryTypeName","src":"746:6:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":55188,"mutability":"mutable","name":"b","nameLocation":"763:1:69","nodeType":"VariableDeclaration","scope":55227,"src":"756:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":55187,"name":"int256","nodeType":"ElementaryTypeName","src":"756:6:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"745:20:69"},"returnParameters":{"id":55192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55191,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55227,"src":"789:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":55190,"name":"int256","nodeType":"ElementaryTypeName","src":"789:6:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"788:8:69"},"scope":55249,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":55248,"nodeType":"FunctionDefinition","src":"1048:213:69","nodes":[],"body":{"id":55247,"nodeType":"Block","src":"1103:158:69","nodes":[],"statements":[{"id":55246,"nodeType":"UncheckedBlock","src":"1113:142:69","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":55239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55237,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55230,"src":"1228:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":55238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1228:6:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":55242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1241:2:69","subExpression":{"id":55241,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55230,"src":"1242:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":55243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1228:15:69","trueExpression":{"id":55240,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55230,"src":"1237:1:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":55236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1220:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":55235,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:69","typeDescriptions":{}}},"id":55244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1220:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":55234,"id":55245,"nodeType":"Return","src":"1213:31:69"}]}]},"documentation":{"id":55228,"nodeType":"StructuredDocumentation","src":"965:78:69","text":" @dev Returns the absolute unsigned value of a signed value."},"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1057:3:69","parameters":{"id":55231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55230,"mutability":"mutable","name":"n","nameLocation":"1068:1:69","nodeType":"VariableDeclaration","scope":55248,"src":"1061:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":55229,"name":"int256","nodeType":"ElementaryTypeName","src":"1061:6:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1060:10:69"},"returnParameters":{"id":55234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55248,"src":"1094:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55232,"name":"uint256","nodeType":"ElementaryTypeName","src":"1094:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1093:9:69"},"scope":55249,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":55147,"nodeType":"StructuredDocumentation","src":"134:80:69","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"linearizedBaseContracts":[55249],"name":"SignedMath","nameLocation":"223:10:69","scope":55250,"usedErrors":[]}],"license":"MIT"},"id":69}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"215:1048:69:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;215:1048:69;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"215:1048:69:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":"SignedMath"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Standard signed math utilities missing in the Solidity language."},"id":69}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"getMessageHash","inputs":[{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"signMessage","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SignMsg","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610427806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630a1028c41461003b57806385a5affe14610060575b600080fd5b61004e6100493660046102c0565b610075565b60405190815260200160405180910390f35b61007361006e36600461038f565b61020e565b005b6000807f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60001b83805190602001206040516020016100be929190918252602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201207ff698da2500000000000000000000000000000000000000000000000000000000845291519193507f1900000000000000000000000000000000000000000000000000000000000000927f010000000000000000000000000000000000000000000000000000000000000092309263f698da2592600480820193918290030181865afa158015610188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ac9190610401565b6040517fff00000000000000000000000000000000000000000000000000000000000000938416602082015292909116602183015260228201526042810182905260620160405160208183030381529060405280519060200120915050919050565b600061024f83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061007592505050565b600081815260076020526040808220600190555191925082917fe7f4675038f4f6034dfcbbb24c4dc08e4ebf10eb9d257d3d02c0f38d122ac6e49190a2505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156102d257600080fd5b813567ffffffffffffffff808211156102ea57600080fd5b818401915084601f8301126102fe57600080fd5b81358181111561031057610310610291565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561035657610356610291565b8160405282815287602084870101111561036f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080602083850312156103a257600080fd5b823567ffffffffffffffff808211156103ba57600080fd5b818501915085601f8301126103ce57600080fd5b8135818111156103dd57600080fd5b8660208285010111156103ef57600080fd5b60209290920196919550909350505050565b60006020828403121561041357600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"282:1236:91:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80630a1028c41461003b57806385a5affe14610060575b600080fd5b61004e6100493660046102c0565b610075565b60405190815260200160405180910390f35b61007361006e36600461038f565b61020e565b005b6000807f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60001b83805190602001206040516020016100be929190918252602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201207ff698da2500000000000000000000000000000000000000000000000000000000845291519193507f1900000000000000000000000000000000000000000000000000000000000000927f010000000000000000000000000000000000000000000000000000000000000092309263f698da2592600480820193918290030181865afa158015610188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ac9190610401565b6040517fff00000000000000000000000000000000000000000000000000000000000000938416602082015292909116602183015260228201526042810182905260620160405160208183030381529060405280519060200120915050919050565b600061024f83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061007592505050565b600081815260076020526040808220600190555191925082917fe7f4675038f4f6034dfcbbb24c4dc08e4ebf10eb9d257d3d02c0f38d122ac6e49190a2505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156102d257600080fd5b813567ffffffffffffffff808211156102ea57600080fd5b818401915084601f8301126102fe57600080fd5b81358181111561031057610310610291565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561035657610356610291565b8160405282815287602084870101111561036f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080602083850312156103a257600080fd5b823567ffffffffffffffff808211156103ba57600080fd5b818501915085601f8301126103ce57600080fd5b8135818111156103dd57600080fd5b8660208285010111156103ef57600080fd5b60209290920196919550909350505050565b60006020828403121561041357600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"282:1236:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1200:316;;;;;;:::i;:::-;;:::i;:::-;;;1334:25:334;;;1322:2;1307:18;1200:316:91;;;;;;;852:176;;;;;;:::i;:::-;;:::i;:::-;;1200:316;1267:7;1286:23;420:66;1333:17;;1362:7;1352:18;;;;;;1322:49;;;;;;;;2140:25:334;;;2196:2;2181:18;;2174:34;2128:2;2113:18;;1966:248;1322:49:91;;;;;;;;;;;;;;1312:60;;1322:49;1312:60;;;;1444:46;;;;;1312:60;;-1:-1:-1;1416:12:91;;1430;;1465:4;;1444:44;;:46;;;;;;;;;;;1465:4;1444:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1399:109;;2627:66:334;2714:15;;;1399:109:91;;;2702:28:334;2759:15;;;;2746:11;;;2739:36;2791:11;;;2784:27;2827:12;;;2820:28;;;2864:12;;1399:109:91;;;;;;;;;;;;1389:120;;;;;;1382:127;;;1200:316;;;:::o;852:176::-;914:15;932:21;947:5;;932:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;932:14:91;;-1:-1:-1;;;932:21:91:i;:::-;963:23;;;;:14;:23;;;;;;989:1;963:27;;1005:16;914:39;;-1:-1:-1;914:39:91;;1005:16;;963:23;1005:16;904:124;852:176;;:::o;14:184:334:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:334;203:980;-1:-1:-1;;;;;203:980:334:o;1370:591::-;1440:6;1448;1501:2;1489:9;1480:7;1476:23;1472:32;1469:52;;;1517:1;1514;1507:12;1469:52;1557:9;1544:23;1586:18;1627:2;1619:6;1616:14;1613:34;;;1643:1;1640;1633:12;1613:34;1681:6;1670:9;1666:22;1656:32;;1726:7;1719:4;1715:2;1711:13;1707:27;1697:55;;1748:1;1745;1738:12;1697:55;1788:2;1775:16;1814:2;1806:6;1803:14;1800:34;;;1830:1;1827;1820:12;1800:34;1875:7;1870:2;1861:6;1857:2;1853:15;1849:24;1846:37;1843:57;;;1896:1;1893;1886:12;1843:57;1927:2;1919:11;;;;;1949:6;;-1:-1:-1;1370:591:334;;-1:-1:-1;;;;1370:591:334:o;2219:184::-;2289:6;2342:2;2330:9;2321:7;2317:23;2313:32;2310:52;;;2358:1;2355;2348:12;2310:52;-1:-1:-1;2381:16:334;;2219:184;-1:-1:-1;2219:184:334:o","linkReferences":{}},"methodIdentifiers":{"getMessageHash(bytes)":"0a1028c4","signMessage(bytes)":"85a5affe"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"SignMsg\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"getMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"signMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{\"getMessageHash(bytes)\":{\"details\":\"Returns hash of a message that can be signed by owners.\",\"params\":{\"message\":\"Message that should be hashed.\"},\"returns\":{\"_0\":\"Message hash.\"}},\"signMessage(bytes)\":{\"details\":\"Can be verified using EIP-1271 validation method by passing the pre-image of the message hash and empty bytes as the signature.\",\"params\":{\"_data\":\"Arbitrary length data that should be marked as signed on the behalf of address(this).\"}}},\"title\":\"SignMessageLib - Allows to sign messages on-chain by writing the signed message hashes on-chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"signMessage(bytes)\":{\"notice\":\"Marks a message (`_data`) as signed.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/libraries/SignMessageLib.sol\":\"SignMessageLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/Safe.sol\":{\"keccak256\":\"0xfe09ad8ce3359ee997c4127c14264a94ec6f25dea38dc37997bd705e9aed9fcd\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://434e77c4ace5cefcf5a21af7eceb5b60ca45b55818e1ecf938d196345731c5e9\",\"dweb:/ipfs/QmbYFyE4okvruZZuCxeNy86Hm6W7yPR4yJWkVztbPRTosu\"]},\"lib/safe-contracts/contracts/base/Executor.sol\":{\"keccak256\":\"0xf0be832e7529e92000544170a5529d73666a9b5e836b30c6f2ed6ef7d7d8c94a\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://710022b40c9f78a5b55b97f6ce600e4834df2ddd36bf714974d953883c82d58c\",\"dweb:/ipfs/QmbdJNKH5opevm7HxQKQAe6W7dQTgSHKa4nKvbUNGRcQQp\"]},\"lib/safe-contracts/contracts/base/FallbackManager.sol\":{\"keccak256\":\"0x646b3088f15af8b4f71ac5eeffaa24ce0c1abed5f494f90368208b09e35d5165\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://7975be46d228510c70659b18076aecb3b0e7331b4d3a162444304145143bdc6e\",\"dweb:/ipfs/QmRRbZrWUnoky6pVo8zMUzCTsshR4sZ2FjR13s8vyAb8dV\"]},\"lib/safe-contracts/contracts/base/GuardManager.sol\":{\"keccak256\":\"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64\",\"dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx\"]},\"lib/safe-contracts/contracts/base/ModuleManager.sol\":{\"keccak256\":\"0xd929f3cd77ab05904d7ad510d25e79a84172728c6e6f887872d7d5176ed2ada7\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://f9c3ae921990787102f8ff6e9d55b3329b6fed6b0e67ea4c8e225b53378359df\",\"dweb:/ipfs/QmbDTmeBsNLXRrM1n8jT9qEnNcNv2G3SQY7NV7kex9EtLh\"]},\"lib/safe-contracts/contracts/base/OwnerManager.sol\":{\"keccak256\":\"0xec9799093eb7a73461cd5e563198751ee222f956f754ea622a03fe953e515b2c\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://5729c58b14e7b656c71dd3377e9519c0d34ef8c04851a9a21c3d62393e4fae7a\",\"dweb:/ipfs/QmRRtfFpNqvdANny9TYBr8rA3HbT1egUCpb2uXALMHkVxK\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34\",\"dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo\"]},\"lib/safe-contracts/contracts/common/NativeCurrencyPaymentFallback.sol\":{\"keccak256\":\"0x3ddcd4130c67326033dcf773d2d87d7147e3a8386993ea3ab3f1c38da406adba\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://740a729397b6a0d903f4738a50e856d4e5039555024937b148d97529525dbfa9\",\"dweb:/ipfs/QmQJuNVvHbkeJ6jjd75D8FsZBPXH6neoGBZdQgtsA82E7g\"]},\"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol\":{\"keccak256\":\"0x1eb8c3601538b73dd6a823ac4fca49bb8adc97d1302a936622156636c971eb05\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://c26495b1fe9229ea17f90b70f295030880d629b9ea3016ea20b634983865f7b3\",\"dweb:/ipfs/QmTc1UmKcynkKn8DeviLMuy6scxNvAVSdLoX4ndUtdEL9N\"]},\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3\",\"dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu\"]},\"lib/safe-contracts/contracts/common/SignatureDecoder.sol\":{\"keccak256\":\"0x2a3baf0efa1585ddf2276505c6d34fa16f01cafff1288e40110d5e67fb459c7c\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://00cdded3068b9051ee0a966f40926fbc57dbe7ef8bf4285db3740f9d50468c80\",\"dweb:/ipfs/QmcP5hKmaRqBe7TpgoXtncZqsNKKdCCKxZgXoxEL4Nj5F4\"]},\"lib/safe-contracts/contracts/common/Singleton.sol\":{\"keccak256\":\"0xcab7c6e5fb6d7295a9343f72fec26a2f632ddfe220a6f267b5c5a1eb2f9bce50\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://dd1c31d5787ef590a60f6b0dbc74d09e6fe4d3ad2f0529940d662bf315521cde\",\"dweb:/ipfs/QmSAS5DYrGksJe4cPQ4wLrveXa1CjxAuEiohcLpPG5h2bo\"]},\"lib/safe-contracts/contracts/common/StorageAccessible.sol\":{\"keccak256\":\"0x2c5412a8f014db332322a6b24ee3cedce15dca17a721ae49fdef368568d4391e\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://e775f267d3e60ebe452d9533f46a0eb1f1dc4593d1bcb553e86cea205a5f361e\",\"dweb:/ipfs/QmQdYDHGQsiMx1AADWRhX7tduU9ycTzrT5q3zBWvphXzKZ\"]},\"lib/safe-contracts/contracts/external/SafeMath.sol\":{\"keccak256\":\"0x5f856674d9be11344c5899deb43364e19baa75bc881cada4c159938270b2bd89\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://351c66e5fe92c0a51f79d133521545dabdd3f756312a7b1428c1fc813c512a1c\",\"dweb:/ipfs/QmdnrRmgef8SdamEU6fVEqFD5RQwXeDFTfQuZEfX2vxC4x\"]},\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol\":{\"keccak256\":\"0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25\",\"dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978\"]},\"lib/safe-contracts/contracts/libraries/SafeStorage.sol\":{\"keccak256\":\"0xae0c704f3e4ec6b1436bbbd10b153feaa665ac36e556ccc4f2155e4c02f5c46a\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://f2c67b22791022356f5ca85533ecdda740aa8d5c9ed263d0c2761f2560dd1b87\",\"dweb:/ipfs/QmYf6gm89StvSTgZGR83UgSmUgJGjhGbBRRNvmxwywfiMc\"]},\"lib/safe-contracts/contracts/libraries/SignMessageLib.sol\":{\"keccak256\":\"0x012c0c71e1bd8a1f82c0668151d5ff9dae07ab37098cd4eafd2e5099764891c3\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://cdc484c399f00913f29280f8c86e2f8b886dd42de95d9ea0c572847b47a4e4dd\",\"dweb:/ipfs/QmaUDZHn56ECGbkAWiBXxsvJ2dYBZe745h34svZ7NcSssC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"SignMsg","anonymous":false},{"inputs":[{"internalType":"bytes","name":"message","type":"bytes"}],"stateMutability":"view","type":"function","name":"getMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"signMessage"}],"devdoc":{"kind":"dev","methods":{"getMessageHash(bytes)":{"details":"Returns hash of a message that can be signed by owners.","params":{"message":"Message that should be hashed."},"returns":{"_0":"Message hash."}},"signMessage(bytes)":{"details":"Can be verified using EIP-1271 validation method by passing the pre-image of the message hash and empty bytes as the signature.","params":{"_data":"Arbitrary length data that should be marked as signed on the behalf of address(this)."}}},"version":1},"userdoc":{"kind":"user","methods":{"signMessage(bytes)":{"notice":"Marks a message (`_data`) as signed."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/libraries/SignMessageLib.sol":"SignMessageLib"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/Safe.sol":{"keccak256":"0xfe09ad8ce3359ee997c4127c14264a94ec6f25dea38dc37997bd705e9aed9fcd","urls":["bzz-raw://434e77c4ace5cefcf5a21af7eceb5b60ca45b55818e1ecf938d196345731c5e9","dweb:/ipfs/QmbYFyE4okvruZZuCxeNy86Hm6W7yPR4yJWkVztbPRTosu"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/Executor.sol":{"keccak256":"0xf0be832e7529e92000544170a5529d73666a9b5e836b30c6f2ed6ef7d7d8c94a","urls":["bzz-raw://710022b40c9f78a5b55b97f6ce600e4834df2ddd36bf714974d953883c82d58c","dweb:/ipfs/QmbdJNKH5opevm7HxQKQAe6W7dQTgSHKa4nKvbUNGRcQQp"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/FallbackManager.sol":{"keccak256":"0x646b3088f15af8b4f71ac5eeffaa24ce0c1abed5f494f90368208b09e35d5165","urls":["bzz-raw://7975be46d228510c70659b18076aecb3b0e7331b4d3a162444304145143bdc6e","dweb:/ipfs/QmRRbZrWUnoky6pVo8zMUzCTsshR4sZ2FjR13s8vyAb8dV"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/GuardManager.sol":{"keccak256":"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d","urls":["bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64","dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/ModuleManager.sol":{"keccak256":"0xd929f3cd77ab05904d7ad510d25e79a84172728c6e6f887872d7d5176ed2ada7","urls":["bzz-raw://f9c3ae921990787102f8ff6e9d55b3329b6fed6b0e67ea4c8e225b53378359df","dweb:/ipfs/QmbDTmeBsNLXRrM1n8jT9qEnNcNv2G3SQY7NV7kex9EtLh"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/OwnerManager.sol":{"keccak256":"0xec9799093eb7a73461cd5e563198751ee222f956f754ea622a03fe953e515b2c","urls":["bzz-raw://5729c58b14e7b656c71dd3377e9519c0d34ef8c04851a9a21c3d62393e4fae7a","dweb:/ipfs/QmRRtfFpNqvdANny9TYBr8rA3HbT1egUCpb2uXALMHkVxK"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453","urls":["bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34","dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/NativeCurrencyPaymentFallback.sol":{"keccak256":"0x3ddcd4130c67326033dcf773d2d87d7147e3a8386993ea3ab3f1c38da406adba","urls":["bzz-raw://740a729397b6a0d903f4738a50e856d4e5039555024937b148d97529525dbfa9","dweb:/ipfs/QmQJuNVvHbkeJ6jjd75D8FsZBPXH6neoGBZdQgtsA82E7g"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol":{"keccak256":"0x1eb8c3601538b73dd6a823ac4fca49bb8adc97d1302a936622156636c971eb05","urls":["bzz-raw://c26495b1fe9229ea17f90b70f295030880d629b9ea3016ea20b634983865f7b3","dweb:/ipfs/QmTc1UmKcynkKn8DeviLMuy6scxNvAVSdLoX4ndUtdEL9N"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13","urls":["bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3","dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SignatureDecoder.sol":{"keccak256":"0x2a3baf0efa1585ddf2276505c6d34fa16f01cafff1288e40110d5e67fb459c7c","urls":["bzz-raw://00cdded3068b9051ee0a966f40926fbc57dbe7ef8bf4285db3740f9d50468c80","dweb:/ipfs/QmcP5hKmaRqBe7TpgoXtncZqsNKKdCCKxZgXoxEL4Nj5F4"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Singleton.sol":{"keccak256":"0xcab7c6e5fb6d7295a9343f72fec26a2f632ddfe220a6f267b5c5a1eb2f9bce50","urls":["bzz-raw://dd1c31d5787ef590a60f6b0dbc74d09e6fe4d3ad2f0529940d662bf315521cde","dweb:/ipfs/QmSAS5DYrGksJe4cPQ4wLrveXa1CjxAuEiohcLpPG5h2bo"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/StorageAccessible.sol":{"keccak256":"0x2c5412a8f014db332322a6b24ee3cedce15dca17a721ae49fdef368568d4391e","urls":["bzz-raw://e775f267d3e60ebe452d9533f46a0eb1f1dc4593d1bcb553e86cea205a5f361e","dweb:/ipfs/QmQdYDHGQsiMx1AADWRhX7tduU9ycTzrT5q3zBWvphXzKZ"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/external/SafeMath.sol":{"keccak256":"0x5f856674d9be11344c5899deb43364e19baa75bc881cada4c159938270b2bd89","urls":["bzz-raw://351c66e5fe92c0a51f79d133521545dabdd3f756312a7b1428c1fc813c512a1c","dweb:/ipfs/QmdnrRmgef8SdamEU6fVEqFD5RQwXeDFTfQuZEfX2vxC4x"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb","urls":["bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89","dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol":{"keccak256":"0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457","urls":["bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25","dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/libraries/SafeStorage.sol":{"keccak256":"0xae0c704f3e4ec6b1436bbbd10b153feaa665ac36e556ccc4f2155e4c02f5c46a","urls":["bzz-raw://f2c67b22791022356f5ca85533ecdda740aa8d5c9ed263d0c2761f2560dd1b87","dweb:/ipfs/QmYf6gm89StvSTgZGR83UgSmUgJGjhGbBRRNvmxwywfiMc"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/libraries/SignMessageLib.sol":{"keccak256":"0x012c0c71e1bd8a1f82c0668151d5ff9dae07ab37098cd4eafd2e5099764891c3","urls":["bzz-raw://cdc484c399f00913f29280f8c86e2f8b886dd42de95d9ea0c572847b47a4e4dd","dweb:/ipfs/QmaUDZHn56ECGbkAWiBXxsvJ2dYBZe745h34svZ7NcSssC"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":58297,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"singleton","offset":0,"slot":"0","type":"t_address"},{"astId":58301,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"modules","offset":0,"slot":"1","type":"t_mapping(t_address,t_address)"},{"astId":58305,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"owners","offset":0,"slot":"2","type":"t_mapping(t_address,t_address)"},{"astId":58307,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"ownerCount","offset":0,"slot":"3","type":"t_uint256"},{"astId":58309,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"threshold","offset":0,"slot":"4","type":"t_uint256"},{"astId":58311,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"nonce","offset":0,"slot":"5","type":"t_uint256"},{"astId":58313,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"_deprecatedDomainSeparator","offset":0,"slot":"6","type":"t_bytes32"},{"astId":58317,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"signedMessages","offset":0,"slot":"7","type":"t_mapping(t_bytes32,t_uint256)"},{"astId":58323,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"approvedHashes","offset":0,"slot":"8","type":"t_mapping(t_address,t_mapping(t_bytes32,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"signMessage(bytes)":{"notice":"Marks a message (`_data`) as signed."}}},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","methods":{"getMessageHash(bytes)":{"details":"Returns hash of a message that can be signed by owners.","params":{"message":"Message that should be hashed."},"returns":{"_0":"Message hash."}},"signMessage(bytes)":{"details":"Can be verified using EIP-1271 validation method by passing the pre-image of the message hash and empty bytes as the signature.","params":{"_data":"Arbitrary length data that should be marked as signed on the behalf of address(this)."}}},"title":"SignMessageLib - Allows to sign messages on-chain by writing the signed message hashes on-chain."},"ast":{"absolutePath":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol","id":58410,"exportedSymbols":{"BaseGuard":[56925],"Enum":[57930],"Executor":[56796],"FallbackManager":[56858],"Guard":[56899],"GuardManager":[56987],"IERC165":[58273],"ISignatureValidator":[58292],"ISignatureValidatorConstants":[58279],"ModuleManager":[57410],"NativeCurrencyPaymentFallback":[57952],"OwnerManager":[57923],"Safe":[56763],"SafeMath":[58186],"SafeStorage":[58324],"SecuredTokenTransfer":[57979],"SelfAuthorized":[58005],"SignMessageLib":[58409],"SignatureDecoder":[58025],"Singleton":[58031],"StorageAccessible":[58080]},"nodeType":"SourceUnit","src":"42:1477:91","nodes":[{"id":58326,"nodeType":"PragmaDirective","src":"42:31:91","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58327,"nodeType":"ImportDirective","src":"75:27:91","nodes":[],"absolutePath":"lib/safe-contracts/contracts/libraries/SafeStorage.sol","file":"./SafeStorage.sol","nameLocation":"-1:-1:-1","scope":58410,"sourceUnit":58325,"symbolAliases":[],"unitAlias":""},{"id":58328,"nodeType":"ImportDirective","src":"103:21:91","nodes":[],"absolutePath":"lib/safe-contracts/contracts/Safe.sol","file":"../Safe.sol","nameLocation":"-1:-1:-1","scope":58410,"sourceUnit":56764,"symbolAliases":[],"unitAlias":""},{"id":58409,"nodeType":"ContractDefinition","src":"282:1236:91","nodes":[{"id":58334,"nodeType":"VariableDeclaration","src":"375:111:91","nodes":[],"constant":true,"mutability":"constant","name":"SAFE_MSG_TYPEHASH","nameLocation":"400:17:91","scope":58409,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58332,"name":"bytes32","nodeType":"ElementaryTypeName","src":"375:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307836306233636266386234613232336436386436343162336236646466396132393865376633333731306366336433613964313134366235613631353066626361","id":58333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"420:66:91","typeDescriptions":{"typeIdentifier":"t_rational_43739706848186989041152069077571617734008543096732098246335109361212071148490_by_1","typeString":"int_const 4373...(69 digits omitted)...8490"},"value":"0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca"},"visibility":"private"},{"id":58338,"nodeType":"EventDefinition","src":"493:39:91","nodes":[],"anonymous":false,"eventSelector":"e7f4675038f4f6034dfcbbb24c4dc08e4ebf10eb9d257d3d02c0f38d122ac6e4","name":"SignMsg","nameLocation":"499:7:91","parameters":{"id":58337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58336,"indexed":true,"mutability":"mutable","name":"msgHash","nameLocation":"523:7:91","nodeType":"VariableDeclaration","scope":58338,"src":"507:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"507:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"506:25:91"}},{"id":58361,"nodeType":"FunctionDefinition","src":"852:176:91","nodes":[],"body":{"id":58360,"nodeType":"Block","src":"904:124:91","nodes":[],"statements":[{"assignments":[58345],"declarations":[{"constant":false,"id":58345,"mutability":"mutable","name":"msgHash","nameLocation":"922:7:91","nodeType":"VariableDeclaration","scope":58360,"src":"914:15:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"914:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58349,"initialValue":{"arguments":[{"id":58347,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58341,"src":"947:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":58346,"name":"getMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58408,"src":"932:14:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) view returns (bytes32)"}},"id":58348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"932:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"914:39:91"},{"expression":{"id":58354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":58350,"name":"signedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58317,"src":"963:14:91","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":58352,"indexExpression":{"id":58351,"name":"msgHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58345,"src":"978:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"963:23:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":58353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"989:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"963:27:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58355,"nodeType":"ExpressionStatement","src":"963:27:91"},{"eventCall":{"arguments":[{"id":58357,"name":"msgHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58345,"src":"1013:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58356,"name":"SignMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58338,"src":"1005:7:91","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":58358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1005:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58359,"nodeType":"EmitStatement","src":"1000:21:91"}]},"documentation":{"id":58339,"nodeType":"StructuredDocumentation","src":"538:309:91","text":" @notice Marks a message (`_data`) as signed.\n @dev Can be verified using EIP-1271 validation method by passing the pre-image of the message hash and empty bytes as the signature.\n @param _data Arbitrary length data that should be marked as signed on the behalf of address(this)."},"functionSelector":"85a5affe","implemented":true,"kind":"function","modifiers":[],"name":"signMessage","nameLocation":"861:11:91","parameters":{"id":58342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58341,"mutability":"mutable","name":"_data","nameLocation":"888:5:91","nodeType":"VariableDeclaration","scope":58361,"src":"873:20:91","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":58340,"name":"bytes","nodeType":"ElementaryTypeName","src":"873:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"872:22:91"},"returnParameters":{"id":58343,"nodeType":"ParameterList","parameters":[],"src":"904:0:91"},"scope":58409,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58408,"nodeType":"FunctionDefinition","src":"1200:316:91","nodes":[],"body":{"id":58407,"nodeType":"Block","src":"1276:240:91","nodes":[],"statements":[{"assignments":[58370],"declarations":[{"constant":false,"id":58370,"mutability":"mutable","name":"safeMessageHash","nameLocation":"1294:15:91","nodeType":"VariableDeclaration","scope":58407,"src":"1286:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1286:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58380,"initialValue":{"arguments":[{"arguments":[{"id":58374,"name":"SAFE_MSG_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58334,"src":"1333:17:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":58376,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58364,"src":"1362:7:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58375,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1352:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":58377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1352:18:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58372,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1322:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1322:10:91","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1322:49:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58371,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1312:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":58379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1312:60:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1286:86:91"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30783139","id":58386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1423:4:91","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"0x19"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"}],"id":58385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1416:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":58384,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1416:6:91","typeDescriptions":{}}},"id":58387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1416:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"hexValue":"30783031","id":58390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1437:4:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":58389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1430:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":58388,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1430:6:91","typeDescriptions":{}}},"id":58391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1430:12:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[{"id":58397,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1465:4:91","typeDescriptions":{"typeIdentifier":"t_contract$_SignMessageLib_$58409","typeString":"contract SignMessageLib"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SignMessageLib_$58409","typeString":"contract SignMessageLib"}],"id":58396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1457:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58395,"name":"address","nodeType":"ElementaryTypeName","src":"1457:7:91","typeDescriptions":{}}},"id":58398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1457:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1449:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":58393,"name":"address","nodeType":"ElementaryTypeName","src":"1449:8:91","stateMutability":"payable","typeDescriptions":{}}},"id":58399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1449:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":58392,"name":"Safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56763,"src":"1444:4:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Safe_$56763_$","typeString":"type(contract Safe)"}},"id":58400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1444:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Safe_$56763","typeString":"contract Safe"}},"id":58401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"domainSeparator","nodeType":"MemberAccess","referencedDeclaration":56655,"src":"1444:44:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":58402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1444:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":58403,"name":"safeMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58370,"src":"1492:15:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58382,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1399:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1399:16:91","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1399:109:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58381,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1389:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":58405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1389:120:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":58368,"id":58406,"nodeType":"Return","src":"1382:127:91"}]},"documentation":{"id":58362,"nodeType":"StructuredDocumentation","src":"1034:161:91","text":" @dev Returns hash of a message that can be signed by owners.\n @param message Message that should be hashed.\n @return Message hash."},"functionSelector":"0a1028c4","implemented":true,"kind":"function","modifiers":[],"name":"getMessageHash","nameLocation":"1209:14:91","parameters":{"id":58365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58364,"mutability":"mutable","name":"message","nameLocation":"1237:7:91","nodeType":"VariableDeclaration","scope":58408,"src":"1224:20:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58363,"name":"bytes","nodeType":"ElementaryTypeName","src":"1224:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1223:22:91"},"returnParameters":{"id":58368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58408,"src":"1267:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1267:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1266:9:91"},"scope":58409,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":58330,"name":"SafeStorage","nodeType":"IdentifierPath","referencedDeclaration":58324,"src":"309:11:91"},"id":58331,"nodeType":"InheritanceSpecifier","src":"309:11:91"}],"canonicalName":"SignMessageLib","contractDependencies":[],"contractKind":"contract","documentation":{"id":58329,"nodeType":"StructuredDocumentation","src":"126:155:91","text":" @title SignMessageLib - Allows to sign messages on-chain by writing the signed message hashes on-chain.\n @author Richard Meissner - @rmeissner"},"fullyImplemented":true,"linearizedBaseContracts":[58409,58324],"name":"SignMessageLib","nameLocation":"291:14:91","scope":58410,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":91}
{"abi":[{"type":"function","name":"getMessageHash","inputs":[{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"signMessage","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SignMsg","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610427806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630a1028c41461003b57806385a5affe14610060575b600080fd5b61004e6100493660046102c0565b610075565b60405190815260200160405180910390f35b61007361006e36600461038f565b61020e565b005b6000807f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60001b83805190602001206040516020016100be929190918252602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201207ff698da2500000000000000000000000000000000000000000000000000000000845291519193507f1900000000000000000000000000000000000000000000000000000000000000927f010000000000000000000000000000000000000000000000000000000000000092309263f698da2592600480820193918290030181865afa158015610188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ac9190610401565b6040517fff00000000000000000000000000000000000000000000000000000000000000938416602082015292909116602183015260228201526042810182905260620160405160208183030381529060405280519060200120915050919050565b600061024f83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061007592505050565b600081815260076020526040808220600190555191925082917fe7f4675038f4f6034dfcbbb24c4dc08e4ebf10eb9d257d3d02c0f38d122ac6e49190a2505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156102d257600080fd5b813567ffffffffffffffff808211156102ea57600080fd5b818401915084601f8301126102fe57600080fd5b81358181111561031057610310610291565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561035657610356610291565b8160405282815287602084870101111561036f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080602083850312156103a257600080fd5b823567ffffffffffffffff808211156103ba57600080fd5b818501915085601f8301126103ce57600080fd5b8135818111156103dd57600080fd5b8660208285010111156103ef57600080fd5b60209290920196919550909350505050565b60006020828403121561041357600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"282:1236:91:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80630a1028c41461003b57806385a5affe14610060575b600080fd5b61004e6100493660046102c0565b610075565b60405190815260200160405180910390f35b61007361006e36600461038f565b61020e565b005b6000807f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60001b83805190602001206040516020016100be929190918252602082015260400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201207ff698da2500000000000000000000000000000000000000000000000000000000845291519193507f1900000000000000000000000000000000000000000000000000000000000000927f010000000000000000000000000000000000000000000000000000000000000092309263f698da2592600480820193918290030181865afa158015610188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ac9190610401565b6040517fff00000000000000000000000000000000000000000000000000000000000000938416602082015292909116602183015260228201526042810182905260620160405160208183030381529060405280519060200120915050919050565b600061024f83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061007592505050565b600081815260076020526040808220600190555191925082917fe7f4675038f4f6034dfcbbb24c4dc08e4ebf10eb9d257d3d02c0f38d122ac6e49190a2505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156102d257600080fd5b813567ffffffffffffffff808211156102ea57600080fd5b818401915084601f8301126102fe57600080fd5b81358181111561031057610310610291565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561035657610356610291565b8160405282815287602084870101111561036f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080602083850312156103a257600080fd5b823567ffffffffffffffff808211156103ba57600080fd5b818501915085601f8301126103ce57600080fd5b8135818111156103dd57600080fd5b8660208285010111156103ef57600080fd5b60209290920196919550909350505050565b60006020828403121561041357600080fd5b505191905056fea164736f6c634300080f000a","sourceMap":"282:1236:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1200:316;;;;;;:::i;:::-;;:::i;:::-;;;1334:25:350;;;1322:2;1307:18;1200:316:91;;;;;;;852:176;;;;;;:::i;:::-;;:::i;:::-;;1200:316;1267:7;1286:23;420:66;1333:17;;1362:7;1352:18;;;;;;1322:49;;;;;;;;2140:25:350;;;2196:2;2181:18;;2174:34;2128:2;2113:18;;1966:248;1322:49:91;;;;;;;;;;;;;;1312:60;;1322:49;1312:60;;;;1444:46;;;;;1312:60;;-1:-1:-1;1416:12:91;;1430;;1465:4;;1444:44;;:46;;;;;;;;;;;1465:4;1444:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1399:109;;2627:66:350;2714:15;;;1399:109:91;;;2702:28:350;2759:15;;;;2746:11;;;2739:36;2791:11;;;2784:27;2827:12;;;2820:28;;;2864:12;;1399:109:91;;;;;;;;;;;;1389:120;;;;;;1382:127;;;1200:316;;;:::o;852:176::-;914:15;932:21;947:5;;932:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;932:14:91;;-1:-1:-1;;;932:21:91:i;:::-;963:23;;;;:14;:23;;;;;;989:1;963:27;;1005:16;914:39;;-1:-1:-1;914:39:91;;1005:16;;963:23;1005:16;904:124;852:176;;:::o;14:184:350:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:980;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;769:2;763:9;831:4;823:13;;674:66;819:22;;;843:2;815:31;811:40;799:53;;;867:18;;;887:22;;;864:46;861:72;;;913:18;;:::i;:::-;953:10;949:2;942:22;988:2;980:6;973:18;1028:7;1023:2;1018;1014;1010:11;1006:20;1003:33;1000:53;;;1049:1;1046;1039:12;1000:53;1105:2;1100;1096;1092:11;1087:2;1079:6;1075:15;1062:46;1150:1;1128:15;;;1145:2;1124:24;1117:35;;;;-1:-1:-1;1132:6:350;203:980;-1:-1:-1;;;;;203:980:350:o;1370:591::-;1440:6;1448;1501:2;1489:9;1480:7;1476:23;1472:32;1469:52;;;1517:1;1514;1507:12;1469:52;1557:9;1544:23;1586:18;1627:2;1619:6;1616:14;1613:34;;;1643:1;1640;1633:12;1613:34;1681:6;1670:9;1666:22;1656:32;;1726:7;1719:4;1715:2;1711:13;1707:27;1697:55;;1748:1;1745;1738:12;1697:55;1788:2;1775:16;1814:2;1806:6;1803:14;1800:34;;;1830:1;1827;1820:12;1800:34;1875:7;1870:2;1861:6;1857:2;1853:15;1849:24;1846:37;1843:57;;;1896:1;1893;1886:12;1843:57;1927:2;1919:11;;;;;1949:6;;-1:-1:-1;1370:591:350;;-1:-1:-1;;;;1370:591:350:o;2219:184::-;2289:6;2342:2;2330:9;2321:7;2317:23;2313:32;2310:52;;;2358:1;2355;2348:12;2310:52;-1:-1:-1;2381:16:350;;2219:184;-1:-1:-1;2219:184:350:o","linkReferences":{}},"methodIdentifiers":{"getMessageHash(bytes)":"0a1028c4","signMessage(bytes)":"85a5affe"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"SignMsg\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"getMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"signMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{\"getMessageHash(bytes)\":{\"details\":\"Returns hash of a message that can be signed by owners.\",\"params\":{\"message\":\"Message that should be hashed.\"},\"returns\":{\"_0\":\"Message hash.\"}},\"signMessage(bytes)\":{\"details\":\"Can be verified using EIP-1271 validation method by passing the pre-image of the message hash and empty bytes as the signature.\",\"params\":{\"_data\":\"Arbitrary length data that should be marked as signed on the behalf of address(this).\"}}},\"title\":\"SignMessageLib - Allows to sign messages on-chain by writing the signed message hashes on-chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"signMessage(bytes)\":{\"notice\":\"Marks a message (`_data`) as signed.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/libraries/SignMessageLib.sol\":\"SignMessageLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/Safe.sol\":{\"keccak256\":\"0xfe09ad8ce3359ee997c4127c14264a94ec6f25dea38dc37997bd705e9aed9fcd\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://434e77c4ace5cefcf5a21af7eceb5b60ca45b55818e1ecf938d196345731c5e9\",\"dweb:/ipfs/QmbYFyE4okvruZZuCxeNy86Hm6W7yPR4yJWkVztbPRTosu\"]},\"lib/safe-contracts/contracts/base/Executor.sol\":{\"keccak256\":\"0xf0be832e7529e92000544170a5529d73666a9b5e836b30c6f2ed6ef7d7d8c94a\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://710022b40c9f78a5b55b97f6ce600e4834df2ddd36bf714974d953883c82d58c\",\"dweb:/ipfs/QmbdJNKH5opevm7HxQKQAe6W7dQTgSHKa4nKvbUNGRcQQp\"]},\"lib/safe-contracts/contracts/base/FallbackManager.sol\":{\"keccak256\":\"0x646b3088f15af8b4f71ac5eeffaa24ce0c1abed5f494f90368208b09e35d5165\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://7975be46d228510c70659b18076aecb3b0e7331b4d3a162444304145143bdc6e\",\"dweb:/ipfs/QmRRbZrWUnoky6pVo8zMUzCTsshR4sZ2FjR13s8vyAb8dV\"]},\"lib/safe-contracts/contracts/base/GuardManager.sol\":{\"keccak256\":\"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64\",\"dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx\"]},\"lib/safe-contracts/contracts/base/ModuleManager.sol\":{\"keccak256\":\"0xd929f3cd77ab05904d7ad510d25e79a84172728c6e6f887872d7d5176ed2ada7\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://f9c3ae921990787102f8ff6e9d55b3329b6fed6b0e67ea4c8e225b53378359df\",\"dweb:/ipfs/QmbDTmeBsNLXRrM1n8jT9qEnNcNv2G3SQY7NV7kex9EtLh\"]},\"lib/safe-contracts/contracts/base/OwnerManager.sol\":{\"keccak256\":\"0xec9799093eb7a73461cd5e563198751ee222f956f754ea622a03fe953e515b2c\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://5729c58b14e7b656c71dd3377e9519c0d34ef8c04851a9a21c3d62393e4fae7a\",\"dweb:/ipfs/QmRRtfFpNqvdANny9TYBr8rA3HbT1egUCpb2uXALMHkVxK\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34\",\"dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo\"]},\"lib/safe-contracts/contracts/common/NativeCurrencyPaymentFallback.sol\":{\"keccak256\":\"0x3ddcd4130c67326033dcf773d2d87d7147e3a8386993ea3ab3f1c38da406adba\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://740a729397b6a0d903f4738a50e856d4e5039555024937b148d97529525dbfa9\",\"dweb:/ipfs/QmQJuNVvHbkeJ6jjd75D8FsZBPXH6neoGBZdQgtsA82E7g\"]},\"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol\":{\"keccak256\":\"0x1eb8c3601538b73dd6a823ac4fca49bb8adc97d1302a936622156636c971eb05\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://c26495b1fe9229ea17f90b70f295030880d629b9ea3016ea20b634983865f7b3\",\"dweb:/ipfs/QmTc1UmKcynkKn8DeviLMuy6scxNvAVSdLoX4ndUtdEL9N\"]},\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3\",\"dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu\"]},\"lib/safe-contracts/contracts/common/SignatureDecoder.sol\":{\"keccak256\":\"0x2a3baf0efa1585ddf2276505c6d34fa16f01cafff1288e40110d5e67fb459c7c\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://00cdded3068b9051ee0a966f40926fbc57dbe7ef8bf4285db3740f9d50468c80\",\"dweb:/ipfs/QmcP5hKmaRqBe7TpgoXtncZqsNKKdCCKxZgXoxEL4Nj5F4\"]},\"lib/safe-contracts/contracts/common/Singleton.sol\":{\"keccak256\":\"0xcab7c6e5fb6d7295a9343f72fec26a2f632ddfe220a6f267b5c5a1eb2f9bce50\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://dd1c31d5787ef590a60f6b0dbc74d09e6fe4d3ad2f0529940d662bf315521cde\",\"dweb:/ipfs/QmSAS5DYrGksJe4cPQ4wLrveXa1CjxAuEiohcLpPG5h2bo\"]},\"lib/safe-contracts/contracts/common/StorageAccessible.sol\":{\"keccak256\":\"0x2c5412a8f014db332322a6b24ee3cedce15dca17a721ae49fdef368568d4391e\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://e775f267d3e60ebe452d9533f46a0eb1f1dc4593d1bcb553e86cea205a5f361e\",\"dweb:/ipfs/QmQdYDHGQsiMx1AADWRhX7tduU9ycTzrT5q3zBWvphXzKZ\"]},\"lib/safe-contracts/contracts/external/SafeMath.sol\":{\"keccak256\":\"0x5f856674d9be11344c5899deb43364e19baa75bc881cada4c159938270b2bd89\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://351c66e5fe92c0a51f79d133521545dabdd3f756312a7b1428c1fc813c512a1c\",\"dweb:/ipfs/QmdnrRmgef8SdamEU6fVEqFD5RQwXeDFTfQuZEfX2vxC4x\"]},\"lib/safe-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol\":{\"keccak256\":\"0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25\",\"dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978\"]},\"lib/safe-contracts/contracts/libraries/SafeStorage.sol\":{\"keccak256\":\"0xae0c704f3e4ec6b1436bbbd10b153feaa665ac36e556ccc4f2155e4c02f5c46a\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://f2c67b22791022356f5ca85533ecdda740aa8d5c9ed263d0c2761f2560dd1b87\",\"dweb:/ipfs/QmYf6gm89StvSTgZGR83UgSmUgJGjhGbBRRNvmxwywfiMc\"]},\"lib/safe-contracts/contracts/libraries/SignMessageLib.sol\":{\"keccak256\":\"0x012c0c71e1bd8a1f82c0668151d5ff9dae07ab37098cd4eafd2e5099764891c3\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://cdc484c399f00913f29280f8c86e2f8b886dd42de95d9ea0c572847b47a4e4dd\",\"dweb:/ipfs/QmaUDZHn56ECGbkAWiBXxsvJ2dYBZe745h34svZ7NcSssC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"SignMsg","anonymous":false},{"inputs":[{"internalType":"bytes","name":"message","type":"bytes"}],"stateMutability":"view","type":"function","name":"getMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"signMessage"}],"devdoc":{"kind":"dev","methods":{"getMessageHash(bytes)":{"details":"Returns hash of a message that can be signed by owners.","params":{"message":"Message that should be hashed."},"returns":{"_0":"Message hash."}},"signMessage(bytes)":{"details":"Can be verified using EIP-1271 validation method by passing the pre-image of the message hash and empty bytes as the signature.","params":{"_data":"Arbitrary length data that should be marked as signed on the behalf of address(this)."}}},"version":1},"userdoc":{"kind":"user","methods":{"signMessage(bytes)":{"notice":"Marks a message (`_data`) as signed."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/libraries/SignMessageLib.sol":"SignMessageLib"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/Safe.sol":{"keccak256":"0xfe09ad8ce3359ee997c4127c14264a94ec6f25dea38dc37997bd705e9aed9fcd","urls":["bzz-raw://434e77c4ace5cefcf5a21af7eceb5b60ca45b55818e1ecf938d196345731c5e9","dweb:/ipfs/QmbYFyE4okvruZZuCxeNy86Hm6W7yPR4yJWkVztbPRTosu"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/Executor.sol":{"keccak256":"0xf0be832e7529e92000544170a5529d73666a9b5e836b30c6f2ed6ef7d7d8c94a","urls":["bzz-raw://710022b40c9f78a5b55b97f6ce600e4834df2ddd36bf714974d953883c82d58c","dweb:/ipfs/QmbdJNKH5opevm7HxQKQAe6W7dQTgSHKa4nKvbUNGRcQQp"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/FallbackManager.sol":{"keccak256":"0x646b3088f15af8b4f71ac5eeffaa24ce0c1abed5f494f90368208b09e35d5165","urls":["bzz-raw://7975be46d228510c70659b18076aecb3b0e7331b4d3a162444304145143bdc6e","dweb:/ipfs/QmRRbZrWUnoky6pVo8zMUzCTsshR4sZ2FjR13s8vyAb8dV"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/GuardManager.sol":{"keccak256":"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d","urls":["bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64","dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/ModuleManager.sol":{"keccak256":"0xd929f3cd77ab05904d7ad510d25e79a84172728c6e6f887872d7d5176ed2ada7","urls":["bzz-raw://f9c3ae921990787102f8ff6e9d55b3329b6fed6b0e67ea4c8e225b53378359df","dweb:/ipfs/QmbDTmeBsNLXRrM1n8jT9qEnNcNv2G3SQY7NV7kex9EtLh"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/OwnerManager.sol":{"keccak256":"0xec9799093eb7a73461cd5e563198751ee222f956f754ea622a03fe953e515b2c","urls":["bzz-raw://5729c58b14e7b656c71dd3377e9519c0d34ef8c04851a9a21c3d62393e4fae7a","dweb:/ipfs/QmRRtfFpNqvdANny9TYBr8rA3HbT1egUCpb2uXALMHkVxK"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453","urls":["bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34","dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/NativeCurrencyPaymentFallback.sol":{"keccak256":"0x3ddcd4130c67326033dcf773d2d87d7147e3a8386993ea3ab3f1c38da406adba","urls":["bzz-raw://740a729397b6a0d903f4738a50e856d4e5039555024937b148d97529525dbfa9","dweb:/ipfs/QmQJuNVvHbkeJ6jjd75D8FsZBPXH6neoGBZdQgtsA82E7g"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol":{"keccak256":"0x1eb8c3601538b73dd6a823ac4fca49bb8adc97d1302a936622156636c971eb05","urls":["bzz-raw://c26495b1fe9229ea17f90b70f295030880d629b9ea3016ea20b634983865f7b3","dweb:/ipfs/QmTc1UmKcynkKn8DeviLMuy6scxNvAVSdLoX4ndUtdEL9N"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13","urls":["bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3","dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SignatureDecoder.sol":{"keccak256":"0x2a3baf0efa1585ddf2276505c6d34fa16f01cafff1288e40110d5e67fb459c7c","urls":["bzz-raw://00cdded3068b9051ee0a966f40926fbc57dbe7ef8bf4285db3740f9d50468c80","dweb:/ipfs/QmcP5hKmaRqBe7TpgoXtncZqsNKKdCCKxZgXoxEL4Nj5F4"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Singleton.sol":{"keccak256":"0xcab7c6e5fb6d7295a9343f72fec26a2f632ddfe220a6f267b5c5a1eb2f9bce50","urls":["bzz-raw://dd1c31d5787ef590a60f6b0dbc74d09e6fe4d3ad2f0529940d662bf315521cde","dweb:/ipfs/QmSAS5DYrGksJe4cPQ4wLrveXa1CjxAuEiohcLpPG5h2bo"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/StorageAccessible.sol":{"keccak256":"0x2c5412a8f014db332322a6b24ee3cedce15dca17a721ae49fdef368568d4391e","urls":["bzz-raw://e775f267d3e60ebe452d9533f46a0eb1f1dc4593d1bcb553e86cea205a5f361e","dweb:/ipfs/QmQdYDHGQsiMx1AADWRhX7tduU9ycTzrT5q3zBWvphXzKZ"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/external/SafeMath.sol":{"keccak256":"0x5f856674d9be11344c5899deb43364e19baa75bc881cada4c159938270b2bd89","urls":["bzz-raw://351c66e5fe92c0a51f79d133521545dabdd3f756312a7b1428c1fc813c512a1c","dweb:/ipfs/QmdnrRmgef8SdamEU6fVEqFD5RQwXeDFTfQuZEfX2vxC4x"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb","urls":["bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89","dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol":{"keccak256":"0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457","urls":["bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25","dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/libraries/SafeStorage.sol":{"keccak256":"0xae0c704f3e4ec6b1436bbbd10b153feaa665ac36e556ccc4f2155e4c02f5c46a","urls":["bzz-raw://f2c67b22791022356f5ca85533ecdda740aa8d5c9ed263d0c2761f2560dd1b87","dweb:/ipfs/QmYf6gm89StvSTgZGR83UgSmUgJGjhGbBRRNvmxwywfiMc"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/libraries/SignMessageLib.sol":{"keccak256":"0x012c0c71e1bd8a1f82c0668151d5ff9dae07ab37098cd4eafd2e5099764891c3","urls":["bzz-raw://cdc484c399f00913f29280f8c86e2f8b886dd42de95d9ea0c572847b47a4e4dd","dweb:/ipfs/QmaUDZHn56ECGbkAWiBXxsvJ2dYBZe745h34svZ7NcSssC"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":58297,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"singleton","offset":0,"slot":"0","type":"t_address"},{"astId":58301,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"modules","offset":0,"slot":"1","type":"t_mapping(t_address,t_address)"},{"astId":58305,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"owners","offset":0,"slot":"2","type":"t_mapping(t_address,t_address)"},{"astId":58307,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"ownerCount","offset":0,"slot":"3","type":"t_uint256"},{"astId":58309,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"threshold","offset":0,"slot":"4","type":"t_uint256"},{"astId":58311,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"nonce","offset":0,"slot":"5","type":"t_uint256"},{"astId":58313,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"_deprecatedDomainSeparator","offset":0,"slot":"6","type":"t_bytes32"},{"astId":58317,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"signedMessages","offset":0,"slot":"7","type":"t_mapping(t_bytes32,t_uint256)"},{"astId":58323,"contract":"lib/safe-contracts/contracts/libraries/SignMessageLib.sol:SignMessageLib","label":"approvedHashes","offset":0,"slot":"8","type":"t_mapping(t_address,t_mapping(t_bytes32,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"signMessage(bytes)":{"notice":"Marks a message (`_data`) as signed."}}},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","methods":{"getMessageHash(bytes)":{"details":"Returns hash of a message that can be signed by owners.","params":{"message":"Message that should be hashed."},"returns":{"_0":"Message hash."}},"signMessage(bytes)":{"details":"Can be verified using EIP-1271 validation method by passing the pre-image of the message hash and empty bytes as the signature.","params":{"_data":"Arbitrary length data that should be marked as signed on the behalf of address(this)."}}},"title":"SignMessageLib - Allows to sign messages on-chain by writing the signed message hashes on-chain."},"id":91}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"db","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"get","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"set","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060fe8061001f6000396000f3fe60806040526004361060305760003560e01c80638eaa6ac0146035578063ecf265bc146070578063f71f7a25146099575b600080fd5b348015604057600080fd5b50605e604c36600460b8565b60009081526020819052604090205490565b60405190815260200160405180910390f35b348015607b57600080fd5b50605e608736600460b8565b60006020819052908152604090205481565b60b660a436600460d0565b60009182526020829052604090912055565b005b60006020828403121560c957600080fd5b5035919050565b6000806040838503121560e257600080fd5b5050803592602090910135915056fea164736f6c634300080f000a","sourceMap":"57:262:299:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361060305760003560e01c80638eaa6ac0146035578063ecf265bc146070578063f71f7a25146099575b600080fd5b348015604057600080fd5b50605e604c36600460b8565b60009081526020819052604090205490565b60405190815260200160405180910390f35b348015607b57600080fd5b50605e608736600460b8565b60006020819052908152604090205481565b60b660a436600460d0565b60009182526020829052604090912055565b005b60006020828403121560c957600080fd5b5035919050565b6000806040838503121560e257600080fd5b5050803592602090910135915056fea164736f6c634300080f000a","sourceMap":"57:262:299:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;228:89;;;;;;;;;;-1:-1:-1;228:89:299;;;;;:::i;:::-;276:7;302:8;;;;;;;;;;;;228:89;;;;345:25:334;;;333:2;318:18;228:89:299;;;;;;;86:37;;;;;;;;;;-1:-1:-1;86:37:299;;;;;:::i;:::-;;;;;;;;;;;;;;;130:92;;;;;;:::i;:::-;198:2;:8;;;;;;;;;;;:17;130:92;;;14:180:334;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:334;;14:180;-1:-1:-1;14:180:334:o;381:248::-;449:6;457;510:2;498:9;489:7;485:23;481:32;478:52;;;526:1;523;516:12;478:52;-1:-1:-1;;549:23:334;;;619:2;604:18;;;591:32;;-1:-1:-1;381:248:334:o","linkReferences":{}},"methodIdentifiers":{"db(bytes32)":"ecf265bc","get(bytes32)":"8eaa6ac0","set(bytes32,bytes32)":"f71f7a25"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"db\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"get\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_value\",\"type\":\"bytes32\"}],\"name\":\"set\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/SimpleStorage.sol\":\"SimpleStorage\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"test/mocks/SimpleStorage.sol\":{\"keccak256\":\"0xafee8c7340d4c25145a79d12569ae396499ee291220c19b80858a504bc67dc96\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3c3c1a49061daed728649ca364551e4f8ea3fcda3eab0f01b16f93aa617ae6a\",\"dweb:/ipfs/QmZAyoZ9XZ8mzj3i6s8gQ8PaFZmXvF7p98bfnZFx8e9uq7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"db","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"get","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes32","name":"_value","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"set"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/SimpleStorage.sol":"SimpleStorage"},"evmVersion":"london","libraries":{}},"sources":{"test/mocks/SimpleStorage.sol":{"keccak256":"0xafee8c7340d4c25145a79d12569ae396499ee291220c19b80858a504bc67dc96","urls":["bzz-raw://b3c3c1a49061daed728649ca364551e4f8ea3fcda3eab0f01b16f93aa617ae6a","dweb:/ipfs/QmZAyoZ9XZ8mzj3i6s8gQ8PaFZmXvF7p98bfnZFx8e9uq7"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":173619,"contract":"test/mocks/SimpleStorage.sol:SimpleStorage","label":"db","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_bytes32)"}],"types":{"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bytes32)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/mocks/SimpleStorage.sol","id":173647,"exportedSymbols":{"SimpleStorage":[173646]},"nodeType":"SourceUnit","src":"32:288:299","nodes":[{"id":173615,"nodeType":"PragmaDirective","src":"32:23:299","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":173646,"nodeType":"ContractDefinition","src":"57:262:299","nodes":[{"id":173619,"nodeType":"VariableDeclaration","src":"86:37:299","nodes":[],"constant":false,"functionSelector":"ecf265bc","mutability":"mutable","name":"db","nameLocation":"121:2:299","scope":173646,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"typeName":{"id":173618,"keyType":{"id":173616,"name":"bytes32","nodeType":"ElementaryTypeName","src":"94:7:299","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"86:27:299","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"valueType":{"id":173617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"105:7:299","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"public"},{"id":173633,"nodeType":"FunctionDefinition","src":"130:92:299","nodes":[],"body":{"id":173632,"nodeType":"Block","src":"188:34:299","nodes":[],"statements":[{"expression":{"id":173630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":173626,"name":"db","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173619,"src":"198:2:299","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":173628,"indexExpression":{"id":173627,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173621,"src":"201:4:299","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"198:8:299","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":173629,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173623,"src":"209:6:299","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"198:17:299","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":173631,"nodeType":"ExpressionStatement","src":"198:17:299"}]},"functionSelector":"f71f7a25","implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"139:3:299","parameters":{"id":173624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173621,"mutability":"mutable","name":"_key","nameLocation":"151:4:299","nodeType":"VariableDeclaration","scope":173633,"src":"143:12:299","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173620,"name":"bytes32","nodeType":"ElementaryTypeName","src":"143:7:299","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":173623,"mutability":"mutable","name":"_value","nameLocation":"165:6:299","nodeType":"VariableDeclaration","scope":173633,"src":"157:14:299","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"157:7:299","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"142:30:299"},"returnParameters":{"id":173625,"nodeType":"ParameterList","parameters":[],"src":"188:0:299"},"scope":173646,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":173645,"nodeType":"FunctionDefinition","src":"228:89:299","nodes":[],"body":{"id":173644,"nodeType":"Block","src":"285:32:299","nodes":[],"statements":[{"expression":{"baseExpression":{"id":173640,"name":"db","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173619,"src":"302:2:299","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":173642,"indexExpression":{"id":173641,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173635,"src":"305:4:299","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"302:8:299","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":173639,"id":173643,"nodeType":"Return","src":"295:15:299"}]},"functionSelector":"8eaa6ac0","implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"237:3:299","parameters":{"id":173636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173635,"mutability":"mutable","name":"_key","nameLocation":"249:4:299","nodeType":"VariableDeclaration","scope":173645,"src":"241:12:299","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"241:7:299","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"240:14:299"},"returnParameters":{"id":173639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":173645,"src":"276:7:299","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"276:7:299","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"275:9:299"},"scope":173646,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SimpleStorage","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[173646],"name":"SimpleStorage","nameLocation":"66:13:299","scope":173647,"usedErrors":[]}],"license":"MIT"},"id":299}
{"abi":[{"type":"function","name":"db","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"get","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"set","inputs":[{"name":"_key","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060fe8061001f6000396000f3fe60806040526004361060305760003560e01c80638eaa6ac0146035578063ecf265bc146070578063f71f7a25146099575b600080fd5b348015604057600080fd5b50605e604c36600460b8565b60009081526020819052604090205490565b60405190815260200160405180910390f35b348015607b57600080fd5b50605e608736600460b8565b60006020819052908152604090205481565b60b660a436600460d0565b60009182526020829052604090912055565b005b60006020828403121560c957600080fd5b5035919050565b6000806040838503121560e257600080fd5b5050803592602090910135915056fea164736f6c634300080f000a","sourceMap":"57:262:315:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361060305760003560e01c80638eaa6ac0146035578063ecf265bc146070578063f71f7a25146099575b600080fd5b348015604057600080fd5b50605e604c36600460b8565b60009081526020819052604090205490565b60405190815260200160405180910390f35b348015607b57600080fd5b50605e608736600460b8565b60006020819052908152604090205481565b60b660a436600460d0565b60009182526020829052604090912055565b005b60006020828403121560c957600080fd5b5035919050565b6000806040838503121560e257600080fd5b5050803592602090910135915056fea164736f6c634300080f000a","sourceMap":"57:262:315:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;228:89;;;;;;;;;;-1:-1:-1;228:89:315;;;;;:::i;:::-;276:7;302:8;;;;;;;;;;;;228:89;;;;345:25:350;;;333:2;318:18;228:89:315;;;;;;;86:37;;;;;;;;;;-1:-1:-1;86:37:315;;;;;:::i;:::-;;;;;;;;;;;;;;;130:92;;;;;;:::i;:::-;198:2;:8;;;;;;;;;;;:17;130:92;;;14:180:350;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:350;;14:180;-1:-1:-1;14:180:350:o;381:248::-;449:6;457;510:2;498:9;489:7;485:23;481:32;478:52;;;526:1;523;516:12;478:52;-1:-1:-1;;549:23:350;;;619:2;604:18;;;591:32;;-1:-1:-1;381:248:350:o","linkReferences":{}},"methodIdentifiers":{"db(bytes32)":"ecf265bc","get(bytes32)":"8eaa6ac0","set(bytes32,bytes32)":"f71f7a25"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"db\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"get\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_value\",\"type\":\"bytes32\"}],\"name\":\"set\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/SimpleStorage.sol\":\"SimpleStorage\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"test/mocks/SimpleStorage.sol\":{\"keccak256\":\"0xafee8c7340d4c25145a79d12569ae396499ee291220c19b80858a504bc67dc96\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3c3c1a49061daed728649ca364551e4f8ea3fcda3eab0f01b16f93aa617ae6a\",\"dweb:/ipfs/QmZAyoZ9XZ8mzj3i6s8gQ8PaFZmXvF7p98bfnZFx8e9uq7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"db","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"get","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes32","name":"_value","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"set"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/SimpleStorage.sol":"SimpleStorage"},"evmVersion":"london","libraries":{}},"sources":{"test/mocks/SimpleStorage.sol":{"keccak256":"0xafee8c7340d4c25145a79d12569ae396499ee291220c19b80858a504bc67dc96","urls":["bzz-raw://b3c3c1a49061daed728649ca364551e4f8ea3fcda3eab0f01b16f93aa617ae6a","dweb:/ipfs/QmZAyoZ9XZ8mzj3i6s8gQ8PaFZmXvF7p98bfnZFx8e9uq7"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":191878,"contract":"test/mocks/SimpleStorage.sol:SimpleStorage","label":"db","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_bytes32)"}],"types":{"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bytes32)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":315}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Singleton - Base for singleton contracts (should always be the first super contract) This contract is tightly coupled to our proxy contract (see `proxies/SafeProxy.sol`)\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/Singleton.sol\":\"Singleton\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/Singleton.sol\":{\"keccak256\":\"0xcab7c6e5fb6d7295a9343f72fec26a2f632ddfe220a6f267b5c5a1eb2f9bce50\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://dd1c31d5787ef590a60f6b0dbc74d09e6fe4d3ad2f0529940d662bf315521cde\",\"dweb:/ipfs/QmSAS5DYrGksJe4cPQ4wLrveXa1CjxAuEiohcLpPG5h2bo\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/Singleton.sol":"Singleton"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/Singleton.sol":{"keccak256":"0xcab7c6e5fb6d7295a9343f72fec26a2f632ddfe220a6f267b5c5a1eb2f9bce50","urls":["bzz-raw://dd1c31d5787ef590a60f6b0dbc74d09e6fe4d3ad2f0529940d662bf315521cde","dweb:/ipfs/QmSAS5DYrGksJe4cPQ4wLrveXa1CjxAuEiohcLpPG5h2bo"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":58030,"contract":"lib/safe-contracts/contracts/common/Singleton.sol:Singleton","label":"singleton","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"Singleton - Base for singleton contracts (should always be the first super contract) This contract is tightly coupled to our proxy contract (see `proxies/SafeProxy.sol`)"},"ast":{"absolutePath":"lib/safe-contracts/contracts/common/Singleton.sol","id":58032,"exportedSymbols":{"Singleton":[58031]},"nodeType":"SourceUnit","src":"42:538:82","nodes":[{"id":58027,"nodeType":"PragmaDirective","src":"42:31:82","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58031,"nodeType":"ContractDefinition","src":"314:265:82","nodes":[{"id":58030,"nodeType":"VariableDeclaration","src":"551:25:82","nodes":[],"constant":false,"mutability":"mutable","name":"singleton","nameLocation":"567:9:82","scope":58031,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58029,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"Singleton","contractDependencies":[],"contractKind":"contract","documentation":{"id":58028,"nodeType":"StructuredDocumentation","src":"75:238:82","text":" @title Singleton - Base for singleton contracts (should always be the first super contract)\n This contract is tightly coupled to our proxy contract (see `proxies/SafeProxy.sol`)\n @author Richard Meissner - @rmeissner"},"fullyImplemented":true,"linearizedBaseContracts":[58031],"name":"Singleton","nameLocation":"332:9:82","scope":58032,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":82}
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - @rmeissner\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Singleton - Base for singleton contracts (should always be the first super contract) This contract is tightly coupled to our proxy contract (see `proxies/SafeProxy.sol`)\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/Singleton.sol\":\"Singleton\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/Singleton.sol\":{\"keccak256\":\"0xcab7c6e5fb6d7295a9343f72fec26a2f632ddfe220a6f267b5c5a1eb2f9bce50\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://dd1c31d5787ef590a60f6b0dbc74d09e6fe4d3ad2f0529940d662bf315521cde\",\"dweb:/ipfs/QmSAS5DYrGksJe4cPQ4wLrveXa1CjxAuEiohcLpPG5h2bo\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/Singleton.sol":"Singleton"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/Singleton.sol":{"keccak256":"0xcab7c6e5fb6d7295a9343f72fec26a2f632ddfe220a6f267b5c5a1eb2f9bce50","urls":["bzz-raw://dd1c31d5787ef590a60f6b0dbc74d09e6fe4d3ad2f0529940d662bf315521cde","dweb:/ipfs/QmSAS5DYrGksJe4cPQ4wLrveXa1CjxAuEiohcLpPG5h2bo"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":58030,"contract":"lib/safe-contracts/contracts/common/Singleton.sol:Singleton","label":"singleton","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - @rmeissner","title":"Singleton - Base for singleton contracts (should always be the first super contract) This contract is tightly coupled to our proxy contract (see `proxies/SafeProxy.sol`)"},"id":82}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x6102a761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100ad5760003560e01c8063986c5f6811610080578063b67689da11610065578063b67689da146100f8578063d160e4de14610100578063fa784a441461010857600080fd5b8063986c5f68146100e8578063b22dc54d146100f057600080fd5b806305ee8612146100b257806310332977146100d05780631de45560146100d85780638995290f146100e0575b600080fd5b6100ba610110565b6040516100c79190610227565b60405180910390f35b6100ba610197565b6100ba6101a9565b6100ba6101bb565b6100ba6101cd565b6100ba6101df565b6100ba6101f1565b6100ba610203565b6100ba610215565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011e565b6040516021602482015260440161011e565b6040516011602482015260440161011e565b6040516041602482015260440161011e565b6040516031602482015260440161011e565b6040516051602482015260440161011e565b6040516022602482015260440161011e565b6040516012602482015260440161011e565b600060208083528351808285015260005b8181101561025457858101830151858201604001528201610238565b81811115610266576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"162:850:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:850:7;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600436106100ad5760003560e01c8063986c5f6811610080578063b67689da11610065578063b67689da146100f8578063d160e4de14610100578063fa784a441461010857600080fd5b8063986c5f68146100e8578063b22dc54d146100f057600080fd5b806305ee8612146100b257806310332977146100d05780631de45560146100d85780638995290f146100e0575b600080fd5b6100ba610110565b6040516100c79190610227565b60405180910390f35b6100ba610197565b6100ba6101a9565b6100ba6101bb565b6100ba6101cd565b6100ba6101df565b6100ba6101f1565b6100ba610203565b6100ba610215565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011e565b6040516021602482015260440161011e565b6040516011602482015260440161011e565b6040516041602482015260440161011e565b6040516031602482015260440161011e565b6040516051602482015260440161011e565b6040516022602482015260440161011e565b6040516012602482015260440161011e565b600060208083528351808285015260005b8181101561025457858101830151858201604001528201610238565b81811115610266576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"162:850:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:86;;;:::i;461:91::-;;;:::i;277:87::-;;;:::i;831:88::-;;;:::i;654:80::-;;;:::i;925:84::-;;;:::i;558:90::-;;;:::i;370:85::-;;;:::i;740:::-;778:47;;820:4;778:47;;;834:36:334;807:18;;778:47:7;;;;;;;;;;;;;;;;;;;;;;;;;740:85;:::o;185:86::-;224:47;;266:4;224:47;;;834:36:334;807:18;;224:47:7;681:195:334;461:91:7;505:47;;547:4;505:47;;;834:36:334;807:18;;505:47:7;681:195:334;277:87:7;317:47;;359:4;317:47;;;834:36:334;807:18;;317:47:7;681:195:334;831:88:7;872:47;;914:4;872:47;;;834:36:334;807:18;;872:47:7;681:195:334;654:80:7;687:47;;729:4;687:47;;;834:36:334;807:18;;687:47:7;681:195:334;925:84:7;962:47;;1004:4;962:47;;;834:36:334;807:18;;962:47:7;681:195:334;558:90:7;601:47;;643:4;601:47;;;834:36:334;807:18;;601:47:7;681:195:334;370:85:7;408:47;;450:4;408:47;;;834:36:334;807:18;;408:47:7;681:195:334;14:662;132:4;161:2;190;179:9;172:21;222:6;216:13;265:6;260:2;249:9;245:18;238:34;290:1;300:140;314:6;311:1;308:13;300:140;;;409:14;;;405:23;;399:30;375:17;;;394:2;371:26;364:66;329:10;;300:140;;;458:6;455:1;452:13;449:91;;;528:1;523:2;514:6;503:9;499:22;495:31;488:42;449:91;-1:-1:-1;592:2:334;580:15;597:66;576:88;561:104;;;;667:2;557:113;;14:662;-1:-1:-1;;;14:662:334:o","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/StdError.sol","id":7538,"exportedSymbols":{"stdError":[7537]},"nodeType":"SourceUnit","src":"129:884:7","nodes":[{"id":7473,"nodeType":"PragmaDirective","src":"129:31:7","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":7537,"nodeType":"ContractDefinition","src":"162:850:7","nodes":[{"id":7480,"nodeType":"VariableDeclaration","src":"185:86:7","nodes":[],"constant":true,"functionSelector":"10332977","mutability":"constant","name":"assertionError","nameLocation":"207:14:7","scope":7537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7474,"name":"bytes","nodeType":"ElementaryTypeName","src":"185:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":7477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783031","id":7478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"266:4:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":7475,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"224:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"224:23:7","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"224:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":7487,"nodeType":"VariableDeclaration","src":"277:87:7","nodes":[],"constant":true,"functionSelector":"8995290f","mutability":"constant","name":"arithmeticError","nameLocation":"299:15:7","scope":7537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7481,"name":"bytes","nodeType":"ElementaryTypeName","src":"277:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":7484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"341:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783131","id":7485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"359:4:7","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"0x11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"}],"expression":{"id":7482,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"317:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"317:23:7","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"317:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":7494,"nodeType":"VariableDeclaration","src":"370:85:7","nodes":[],"constant":true,"functionSelector":"fa784a44","mutability":"constant","name":"divisionError","nameLocation":"392:13:7","scope":7537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7488,"name":"bytes","nodeType":"ElementaryTypeName","src":"370:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":7491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"432:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783132","id":7492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"450:4:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"0x12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"expression":{"id":7489,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"408:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"408:23:7","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"408:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":7501,"nodeType":"VariableDeclaration","src":"461:91:7","nodes":[],"constant":true,"functionSelector":"1de45560","mutability":"constant","name":"enumConversionError","nameLocation":"483:19:7","scope":7537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7495,"name":"bytes","nodeType":"ElementaryTypeName","src":"461:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":7498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"529:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783231","id":7499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"547:4:7","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"0x21"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"}],"expression":{"id":7496,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"505:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"505:23:7","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"505:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":7508,"nodeType":"VariableDeclaration","src":"558:90:7","nodes":[],"constant":true,"functionSelector":"d160e4de","mutability":"constant","name":"encodeStorageError","nameLocation":"580:18:7","scope":7537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7502,"name":"bytes","nodeType":"ElementaryTypeName","src":"558:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":7505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"625:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783232","id":7506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"643:4:7","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"0x22"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"}],"expression":{"id":7503,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"601:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"601:23:7","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"601:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":7515,"nodeType":"VariableDeclaration","src":"654:80:7","nodes":[],"constant":true,"functionSelector":"b22dc54d","mutability":"constant","name":"popError","nameLocation":"676:8:7","scope":7537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7509,"name":"bytes","nodeType":"ElementaryTypeName","src":"654:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":7512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"711:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783331","id":7513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"729:4:7","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"0x31"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"}],"expression":{"id":7510,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"687:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"687:23:7","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"687:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":7522,"nodeType":"VariableDeclaration","src":"740:85:7","nodes":[],"constant":true,"functionSelector":"05ee8612","mutability":"constant","name":"indexOOBError","nameLocation":"762:13:7","scope":7537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7516,"name":"bytes","nodeType":"ElementaryTypeName","src":"740:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":7519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"802:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783332","id":7520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"820:4:7","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"0x32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"}],"expression":{"id":7517,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"778:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"778:23:7","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"778:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":7529,"nodeType":"VariableDeclaration","src":"831:88:7","nodes":[],"constant":true,"functionSelector":"986c5f68","mutability":"constant","name":"memOverflowError","nameLocation":"853:16:7","scope":7537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7523,"name":"bytes","nodeType":"ElementaryTypeName","src":"831:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":7526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"896:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783431","id":7527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"914:4:7","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"0x41"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"expression":{"id":7524,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"872:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"872:23:7","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"872:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":7536,"nodeType":"VariableDeclaration","src":"925:84:7","nodes":[],"constant":true,"functionSelector":"b67689da","mutability":"constant","name":"zeroVarError","nameLocation":"947:12:7","scope":7537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7530,"name":"bytes","nodeType":"ElementaryTypeName","src":"925:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":7533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"986:16:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783531","id":7534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1004:4:7","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"0x51"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"}],"expression":{"id":7531,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"962:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"962:23:7","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"962:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"stdError","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[7537],"name":"stdError","nameLocation":"170:8:7","scope":7538,"usedErrors":[]}],"license":"MIT"},"id":7}
{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x6102a761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100ad5760003560e01c8063986c5f6811610080578063b67689da11610065578063b67689da146100f8578063d160e4de14610100578063fa784a441461010857600080fd5b8063986c5f68146100e8578063b22dc54d146100f057600080fd5b806305ee8612146100b257806310332977146100d05780631de45560146100d85780638995290f146100e0575b600080fd5b6100ba610110565b6040516100c79190610227565b60405180910390f35b6100ba610197565b6100ba6101a9565b6100ba6101bb565b6100ba6101cd565b6100ba6101df565b6100ba6101f1565b6100ba610203565b6100ba610215565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011e565b6040516021602482015260440161011e565b6040516011602482015260440161011e565b6040516041602482015260440161011e565b6040516031602482015260440161011e565b6040516051602482015260440161011e565b6040516022602482015260440161011e565b6040516012602482015260440161011e565b600060208083528351808285015260005b8181101561025457858101830151858201604001528201610238565b81811115610266576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"162:850:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:850:7;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600436106100ad5760003560e01c8063986c5f6811610080578063b67689da11610065578063b67689da146100f8578063d160e4de14610100578063fa784a441461010857600080fd5b8063986c5f68146100e8578063b22dc54d146100f057600080fd5b806305ee8612146100b257806310332977146100d05780631de45560146100d85780638995290f146100e0575b600080fd5b6100ba610110565b6040516100c79190610227565b60405180910390f35b6100ba610197565b6100ba6101a9565b6100ba6101bb565b6100ba6101cd565b6100ba6101df565b6100ba6101f1565b6100ba610203565b6100ba610215565b604051603260248201526044015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011e565b6040516021602482015260440161011e565b6040516011602482015260440161011e565b6040516041602482015260440161011e565b6040516031602482015260440161011e565b6040516051602482015260440161011e565b6040516022602482015260440161011e565b6040516012602482015260440161011e565b600060208083528351808285015260005b8181101561025457858101830151858201604001528201610238565b81811115610266576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"162:850:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:86;;;:::i;461:91::-;;;:::i;277:87::-;;;:::i;831:88::-;;;:::i;654:80::-;;;:::i;925:84::-;;;:::i;558:90::-;;;:::i;370:85::-;;;:::i;740:::-;778:47;;820:4;778:47;;;834:36:350;807:18;;778:47:7;;;;;;;;;;;;;;;;;;;;;;;;;740:85;:::o;185:86::-;224:47;;266:4;224:47;;;834:36:350;807:18;;224:47:7;681:195:350;461:91:7;505:47;;547:4;505:47;;;834:36:350;807:18;;505:47:7;681:195:350;277:87:7;317:47;;359:4;317:47;;;834:36:350;807:18;;317:47:7;681:195:350;831:88:7;872:47;;914:4;872:47;;;834:36:350;807:18;;872:47:7;681:195:350;654:80:7;687:47;;729:4;687:47;;;834:36:350;807:18;;687:47:7;681:195:350;925:84:7;962:47;;1004:4;962:47;;;834:36:350;807:18;;962:47:7;681:195:350;558:90:7;601:47;;643:4;601:47;;;834:36:350;807:18;;601:47:7;681:195:350;370:85:7;408:47;;450:4;408:47;;;834:36:350;807:18;;408:47:7;681:195:350;14:662;132:4;161:2;190;179:9;172:21;222:6;216:13;265:6;260:2;249:9;245:18;238:34;290:1;300:140;314:6;311:1;308:13;300:140;;;409:14;;;405:23;;399:30;375:17;;;394:2;371:26;364:66;329:10;;300:140;;;458:6;455:1;452:13;449:91;;;528:1;523:2;514:6;503:9;499:22;495:31;488:42;449:91;-1:-1:-1;592:2:350;580:15;597:66;576:88;561:104;;;;667:2;557:113;;14:662;-1:-1:-1;;;14:662:350:o","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":7}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"65:1294:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:1294:10;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"65:1294:10:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/StdMath.sol","id":8531,"exportedSymbols":{"stdMath":[8530]},"nodeType":"SourceUnit","src":"32:1328:10","nodes":[{"id":8390,"nodeType":"PragmaDirective","src":"32:31:10","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":8530,"nodeType":"ContractDefinition","src":"65:1294:10","nodes":[{"id":8394,"nodeType":"VariableDeclaration","src":"87:115:10","nodes":[],"constant":true,"mutability":"constant","name":"INT256_MIN","nameLocation":"111:10:10","scope":8530,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8391,"name":"int256","nodeType":"ElementaryTypeName","src":"87:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"id":8393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"124:78:10","subExpression":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":8392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"125:77:10","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const -578...(70 digits omitted)...9968"}},"visibility":"private"},{"id":8420,"nodeType":"FunctionDefinition","src":"209:306:10","nodes":[],"body":{"id":8419,"nodeType":"Block","src":"264:251:10","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8401,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8396,"src":"342:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8402,"name":"INT256_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8394,"src":"347:10:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"342:15:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8407,"nodeType":"IfStatement","src":"338:130:10","trueBody":{"id":8406,"nodeType":"Block","src":"359:109:10","statements":[{"expression":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":8404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"380:77:10","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"functionReturnParameters":8400,"id":8405,"nodeType":"Return","src":"373:84:10"}]}},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8410,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8396,"src":"493:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"497:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"493:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":8415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"505:2:10","subExpression":{"id":8414,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8396,"src":"506:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"493:14:10","trueExpression":{"id":8413,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8396,"src":"501:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"485:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8408,"name":"uint256","nodeType":"ElementaryTypeName","src":"485:7:10","typeDescriptions":{}}},"id":8417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"485:23:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8400,"id":8418,"nodeType":"Return","src":"478:30:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"218:3:10","parameters":{"id":8397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8396,"mutability":"mutable","name":"a","nameLocation":"229:1:10","nodeType":"VariableDeclaration","scope":8420,"src":"222:8:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8395,"name":"int256","nodeType":"ElementaryTypeName","src":"222:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"221:10:10"},"returnParameters":{"id":8400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8420,"src":"255:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8398,"name":"uint256","nodeType":"ElementaryTypeName","src":"255:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"254:9:10"},"scope":8530,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8441,"nodeType":"FunctionDefinition","src":"521:114:10","nodes":[],"body":{"id":8440,"nodeType":"Block","src":"590:45:10","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8429,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8422,"src":"607:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":8430,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8424,"src":"611:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"607:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8435,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8424,"src":"623:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8436,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8422,"src":"627:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"623:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"607:21:10","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8432,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8422,"src":"615:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8433,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8424,"src":"619:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"615:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8428,"id":8439,"nodeType":"Return","src":"600:28:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"delta","nameLocation":"530:5:10","parameters":{"id":8425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8422,"mutability":"mutable","name":"a","nameLocation":"544:1:10","nodeType":"VariableDeclaration","scope":8441,"src":"536:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8421,"name":"uint256","nodeType":"ElementaryTypeName","src":"536:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8424,"mutability":"mutable","name":"b","nameLocation":"555:1:10","nodeType":"VariableDeclaration","scope":8441,"src":"547:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8423,"name":"uint256","nodeType":"ElementaryTypeName","src":"547:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"535:22:10"},"returnParameters":{"id":8428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8427,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8441,"src":"581:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8426,"name":"uint256","nodeType":"ElementaryTypeName","src":"581:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"580:9:10"},"scope":8530,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8477,"nodeType":"FunctionDefinition","src":"641:352:10","nodes":[],"body":{"id":8476,"nodeType":"Block","src":"708:285:10","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8450,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8443,"src":"847:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":8451,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8445,"src":"851:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"847:5:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":8453,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"846:7:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":8455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"856:2:10","subExpression":{"hexValue":"31","id":8454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"857:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"846:12:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8467,"nodeType":"IfStatement","src":"842:71:10","trueBody":{"id":8466,"nodeType":"Block","src":"860:53:10","statements":[{"expression":{"arguments":[{"arguments":[{"id":8459,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8443,"src":"891:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8458,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"887:3:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":8460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"887:6:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":8462,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8445,"src":"899:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8461,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"895:3:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":8463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"895:6:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8457,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[8441,8477],"referencedDeclaration":8441,"src":"881:5:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"881:21:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8449,"id":8465,"nodeType":"Return","src":"874:28:10"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8469,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8443,"src":"975:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8468,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"971:3:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":8470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"971:6:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":8472,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8445,"src":"984:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8471,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"980:3:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":8473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"980:6:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"971:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8449,"id":8475,"nodeType":"Return","src":"964:22:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"delta","nameLocation":"650:5:10","parameters":{"id":8446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8443,"mutability":"mutable","name":"a","nameLocation":"663:1:10","nodeType":"VariableDeclaration","scope":8477,"src":"656:8:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8442,"name":"int256","nodeType":"ElementaryTypeName","src":"656:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":8445,"mutability":"mutable","name":"b","nameLocation":"673:1:10","nodeType":"VariableDeclaration","scope":8477,"src":"666:8:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8444,"name":"int256","nodeType":"ElementaryTypeName","src":"666:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"655:20:10"},"returnParameters":{"id":8449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8477,"src":"699:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8447,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"698:9:10"},"scope":8530,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8500,"nodeType":"FunctionDefinition","src":"999:160:10","nodes":[],"body":{"id":8499,"nodeType":"Block","src":"1075:84:10","nodes":[],"statements":[{"assignments":[8487],"declarations":[{"constant":false,"id":8487,"mutability":"mutable","name":"absDelta","nameLocation":"1093:8:10","nodeType":"VariableDeclaration","scope":8499,"src":"1085:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8486,"name":"uint256","nodeType":"ElementaryTypeName","src":"1085:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8492,"initialValue":{"arguments":[{"id":8489,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8479,"src":"1110:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8490,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8481,"src":"1113:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8488,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[8441,8477],"referencedDeclaration":8441,"src":"1104:5:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1104:11:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1085:30:10"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8493,"name":"absDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8487,"src":"1133:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":8494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1144:4:10","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"1133:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8496,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8481,"src":"1151:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1133:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8485,"id":8498,"nodeType":"Return","src":"1126:26:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"percentDelta","nameLocation":"1008:12:10","parameters":{"id":8482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8479,"mutability":"mutable","name":"a","nameLocation":"1029:1:10","nodeType":"VariableDeclaration","scope":8500,"src":"1021:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8478,"name":"uint256","nodeType":"ElementaryTypeName","src":"1021:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8481,"mutability":"mutable","name":"b","nameLocation":"1040:1:10","nodeType":"VariableDeclaration","scope":8500,"src":"1032:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8480,"name":"uint256","nodeType":"ElementaryTypeName","src":"1032:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1020:22:10"},"returnParameters":{"id":8485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8484,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8500,"src":"1066:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8483,"name":"uint256","nodeType":"ElementaryTypeName","src":"1066:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1065:9:10"},"scope":8530,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8529,"nodeType":"FunctionDefinition","src":"1165:192:10","nodes":[],"body":{"id":8528,"nodeType":"Block","src":"1239:118:10","nodes":[],"statements":[{"assignments":[8510],"declarations":[{"constant":false,"id":8510,"mutability":"mutable","name":"absDelta","nameLocation":"1257:8:10","nodeType":"VariableDeclaration","scope":8528,"src":"1249:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8509,"name":"uint256","nodeType":"ElementaryTypeName","src":"1249:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8515,"initialValue":{"arguments":[{"id":8512,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8502,"src":"1274:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":8513,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8504,"src":"1277:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8511,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[8441,8477],"referencedDeclaration":8477,"src":"1268:5:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":8514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1268:11:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1249:30:10"},{"assignments":[8517],"declarations":[{"constant":false,"id":8517,"mutability":"mutable","name":"absB","nameLocation":"1297:4:10","nodeType":"VariableDeclaration","scope":8528,"src":"1289:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1289:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8521,"initialValue":{"arguments":[{"id":8519,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8504,"src":"1308:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8518,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"1304:3:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":8520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1304:6:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1289:21:10"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8522,"name":"absDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8510,"src":"1328:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":8523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1339:4:10","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"1328:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8525,"name":"absB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8517,"src":"1346:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1328:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8508,"id":8527,"nodeType":"Return","src":"1321:29:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"percentDelta","nameLocation":"1174:12:10","parameters":{"id":8505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8502,"mutability":"mutable","name":"a","nameLocation":"1194:1:10","nodeType":"VariableDeclaration","scope":8529,"src":"1187:8:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8501,"name":"int256","nodeType":"ElementaryTypeName","src":"1187:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":8504,"mutability":"mutable","name":"b","nameLocation":"1204:1:10","nodeType":"VariableDeclaration","scope":8529,"src":"1197:8:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8503,"name":"int256","nodeType":"ElementaryTypeName","src":"1197:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1186:20:10"},"returnParameters":{"id":8508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8507,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8529,"src":"1230:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8506,"name":"uint256","nodeType":"ElementaryTypeName","src":"1230:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1229:9:10"},"scope":8530,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"stdMath","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[8530],"name":"stdMath","nameLocation":"73:7:10","scope":8531,"usedErrors":[]}],"license":"MIT"},"id":10}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"65:1294:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:1294:10;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"65:1294:10:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":10}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"154:3315:185:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;154:3315:185;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"154:3315:185:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Storage\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Storage handles reading and writing to arbitary storage locations\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Storage.sol\":\"Storage\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Storage.sol":"Storage"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Storage handles reading and writing to arbitary storage locations"},"devdoc":{"version":1,"kind":"dev","title":"Storage"},"ast":{"absolutePath":"src/libraries/Storage.sol","id":94030,"exportedSymbols":{"Storage":[94029]},"nodeType":"SourceUnit","src":"32:3438:185","nodes":[{"id":93947,"nodeType":"PragmaDirective","src":"32:23:185","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":94029,"nodeType":"ContractDefinition","src":"154:3315:185","nodes":[{"id":93958,"nodeType":"FunctionDefinition","src":"420:143:185","nodes":[],"body":{"id":93957,"nodeType":"Block","src":"493:70:185","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"512:45:185","statements":[{"nodeType":"YulAssignment","src":"526:21:185","value":{"arguments":[{"name":"_slot","nodeType":"YulIdentifier","src":"541:5:185"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"535:5:185"},"nodeType":"YulFunctionCall","src":"535:12:185"},"variableNames":[{"name":"addr_","nodeType":"YulIdentifier","src":"526:5:185"}]}]},"evmVersion":"london","externalReferences":[{"declaration":93951,"isOffset":false,"isSlot":false,"src":"541:5:185","valueSize":1},{"declaration":93954,"isOffset":false,"isSlot":false,"src":"526:5:185","valueSize":1}],"id":93956,"nodeType":"InlineAssembly","src":"503:54:185"}]},"documentation":{"id":93949,"nodeType":"StructuredDocumentation","src":"176:239:185","text":"@notice Returns an address stored in an arbitrary storage slot.\n These storage slots decouple the storage layout from\n solc's automation.\n @param _slot The storage slot to retrieve the address from."},"implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"429:10:185","parameters":{"id":93952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93951,"mutability":"mutable","name":"_slot","nameLocation":"448:5:185","nodeType":"VariableDeclaration","scope":93958,"src":"440:13:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93950,"name":"bytes32","nodeType":"ElementaryTypeName","src":"440:7:185","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"439:15:185"},"returnParameters":{"id":93955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93954,"mutability":"mutable","name":"addr_","nameLocation":"486:5:185","nodeType":"VariableDeclaration","scope":93958,"src":"478:13:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93953,"name":"address","nodeType":"ElementaryTypeName","src":"478:7:185","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"477:15:185"},"scope":94029,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":93968,"nodeType":"FunctionDefinition","src":"900:134:185","nodes":[],"body":{"id":93967,"nodeType":"Block","src":"962:72:185","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"981:47:185","statements":[{"expression":{"arguments":[{"name":"_slot","nodeType":"YulIdentifier","src":"1002:5:185"},{"name":"_address","nodeType":"YulIdentifier","src":"1009:8:185"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"995:6:185"},"nodeType":"YulFunctionCall","src":"995:23:185"},"nodeType":"YulExpressionStatement","src":"995:23:185"}]},"evmVersion":"london","externalReferences":[{"declaration":93963,"isOffset":false,"isSlot":false,"src":"1009:8:185","valueSize":1},{"declaration":93961,"isOffset":false,"isSlot":false,"src":"1002:5:185","valueSize":1}],"id":93966,"nodeType":"InlineAssembly","src":"972:56:185"}]},"documentation":{"id":93959,"nodeType":"StructuredDocumentation","src":"569:326:185","text":"@notice Stores an address in an arbitrary storage slot, `_slot`.\n @param _slot The storage slot to store the address in.\n @param _address The protocol version to store\n @dev WARNING! This function must be used cautiously, as it allows for overwriting addresses\n in arbitrary storage slots."},"implemented":true,"kind":"function","modifiers":[],"name":"setAddress","nameLocation":"909:10:185","parameters":{"id":93964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93961,"mutability":"mutable","name":"_slot","nameLocation":"928:5:185","nodeType":"VariableDeclaration","scope":93968,"src":"920:13:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93960,"name":"bytes32","nodeType":"ElementaryTypeName","src":"920:7:185","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":93963,"mutability":"mutable","name":"_address","nameLocation":"943:8:185","nodeType":"VariableDeclaration","scope":93968,"src":"935:16:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93962,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:185","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"919:33:185"},"returnParameters":{"id":93965,"nodeType":"ParameterList","parameters":[],"src":"962:0:185"},"scope":94029,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":93978,"nodeType":"FunctionDefinition","src":"1283:142:185","nodes":[],"body":{"id":93977,"nodeType":"Block","src":"1354:71:185","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1373:46:185","statements":[{"nodeType":"YulAssignment","src":"1387:22:185","value":{"arguments":[{"name":"_slot","nodeType":"YulIdentifier","src":"1403:5:185"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1397:5:185"},"nodeType":"YulFunctionCall","src":"1397:12:185"},"variableNames":[{"name":"value_","nodeType":"YulIdentifier","src":"1387:6:185"}]}]},"evmVersion":"london","externalReferences":[{"declaration":93971,"isOffset":false,"isSlot":false,"src":"1403:5:185","valueSize":1},{"declaration":93974,"isOffset":false,"isSlot":false,"src":"1387:6:185","valueSize":1}],"id":93976,"nodeType":"InlineAssembly","src":"1364:55:185"}]},"documentation":{"id":93969,"nodeType":"StructuredDocumentation","src":"1040:238:185","text":"@notice Returns a uint256 stored in an arbitrary storage slot.\n These storage slots decouple the storage layout from\n solc's automation.\n @param _slot The storage slot to retrieve the address from."},"implemented":true,"kind":"function","modifiers":[],"name":"getUint","nameLocation":"1292:7:185","parameters":{"id":93972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93971,"mutability":"mutable","name":"_slot","nameLocation":"1308:5:185","nodeType":"VariableDeclaration","scope":93978,"src":"1300:13:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1300:7:185","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1299:15:185"},"returnParameters":{"id":93975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93974,"mutability":"mutable","name":"value_","nameLocation":"1346:6:185","nodeType":"VariableDeclaration","scope":93978,"src":"1338:14:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93973,"name":"uint256","nodeType":"ElementaryTypeName","src":"1338:7:185","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1337:16:185"},"scope":94029,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":93988,"nodeType":"FunctionDefinition","src":"1754:127:185","nodes":[],"body":{"id":93987,"nodeType":"Block","src":"1811:70:185","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1830:45:185","statements":[{"expression":{"arguments":[{"name":"_slot","nodeType":"YulIdentifier","src":"1851:5:185"},{"name":"_value","nodeType":"YulIdentifier","src":"1858:6:185"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1844:6:185"},"nodeType":"YulFunctionCall","src":"1844:21:185"},"nodeType":"YulExpressionStatement","src":"1844:21:185"}]},"evmVersion":"london","externalReferences":[{"declaration":93981,"isOffset":false,"isSlot":false,"src":"1851:5:185","valueSize":1},{"declaration":93983,"isOffset":false,"isSlot":false,"src":"1858:6:185","valueSize":1}],"id":93986,"nodeType":"InlineAssembly","src":"1821:54:185"}]},"documentation":{"id":93979,"nodeType":"StructuredDocumentation","src":"1431:318:185","text":"@notice Stores a value in an arbitrary storage slot, `_slot`.\n @param _slot The storage slot to store the address in.\n @param _value The protocol version to store\n @dev WARNING! This function must be used cautiously, as it allows for overwriting values\n in arbitrary storage slots."},"implemented":true,"kind":"function","modifiers":[],"name":"setUint","nameLocation":"1763:7:185","parameters":{"id":93984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93981,"mutability":"mutable","name":"_slot","nameLocation":"1779:5:185","nodeType":"VariableDeclaration","scope":93988,"src":"1771:13:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93980,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1771:7:185","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":93983,"mutability":"mutable","name":"_value","nameLocation":"1794:6:185","nodeType":"VariableDeclaration","scope":93988,"src":"1786:14:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":93982,"name":"uint256","nodeType":"ElementaryTypeName","src":"1786:7:185","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1770:31:185"},"returnParameters":{"id":93985,"nodeType":"ParameterList","parameters":[],"src":"1811:0:185"},"scope":94029,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":93998,"nodeType":"FunctionDefinition","src":"2130:145:185","nodes":[],"body":{"id":93997,"nodeType":"Block","src":"2204:71:185","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2223:46:185","statements":[{"nodeType":"YulAssignment","src":"2237:22:185","value":{"arguments":[{"name":"_slot","nodeType":"YulIdentifier","src":"2253:5:185"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"2247:5:185"},"nodeType":"YulFunctionCall","src":"2247:12:185"},"variableNames":[{"name":"value_","nodeType":"YulIdentifier","src":"2237:6:185"}]}]},"evmVersion":"london","externalReferences":[{"declaration":93991,"isOffset":false,"isSlot":false,"src":"2253:5:185","valueSize":1},{"declaration":93994,"isOffset":false,"isSlot":false,"src":"2237:6:185","valueSize":1}],"id":93996,"nodeType":"InlineAssembly","src":"2214:55:185"}]},"documentation":{"id":93989,"nodeType":"StructuredDocumentation","src":"1887:238:185","text":"@notice Returns a bytes32 stored in an arbitrary storage slot.\n These storage slots decouple the storage layout from\n solc's automation.\n @param _slot The storage slot to retrieve the address from."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32","nameLocation":"2139:10:185","parameters":{"id":93992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93991,"mutability":"mutable","name":"_slot","nameLocation":"2158:5:185","nodeType":"VariableDeclaration","scope":93998,"src":"2150:13:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93990,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2150:7:185","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2149:15:185"},"returnParameters":{"id":93995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93994,"mutability":"mutable","name":"value_","nameLocation":"2196:6:185","nodeType":"VariableDeclaration","scope":93998,"src":"2188:14:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":93993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2188:7:185","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2187:16:185"},"scope":94029,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":94008,"nodeType":"FunctionDefinition","src":"2610:130:185","nodes":[],"body":{"id":94007,"nodeType":"Block","src":"2670:70:185","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2689:45:185","statements":[{"expression":{"arguments":[{"name":"_slot","nodeType":"YulIdentifier","src":"2710:5:185"},{"name":"_value","nodeType":"YulIdentifier","src":"2717:6:185"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2703:6:185"},"nodeType":"YulFunctionCall","src":"2703:21:185"},"nodeType":"YulExpressionStatement","src":"2703:21:185"}]},"evmVersion":"london","externalReferences":[{"declaration":94001,"isOffset":false,"isSlot":false,"src":"2710:5:185","valueSize":1},{"declaration":94003,"isOffset":false,"isSlot":false,"src":"2717:6:185","valueSize":1}],"id":94006,"nodeType":"InlineAssembly","src":"2680:54:185"}]},"documentation":{"id":93999,"nodeType":"StructuredDocumentation","src":"2281:324:185","text":"@notice Stores a bytes32 value in an arbitrary storage slot, `_slot`.\n @param _slot The storage slot to store the address in.\n @param _value The bytes32 value to store.\n @dev WARNING! This function must be used cautiously, as it allows for overwriting values\n in arbitrary storage slots."},"implemented":true,"kind":"function","modifiers":[],"name":"setBytes32","nameLocation":"2619:10:185","parameters":{"id":94004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":94001,"mutability":"mutable","name":"_slot","nameLocation":"2638:5:185","nodeType":"VariableDeclaration","scope":94008,"src":"2630:13:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94000,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2630:7:185","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":94003,"mutability":"mutable","name":"_value","nameLocation":"2653:6:185","nodeType":"VariableDeclaration","scope":94008,"src":"2645:14:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94002,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2645:7:185","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2629:31:185"},"returnParameters":{"id":94005,"nodeType":"ParameterList","parameters":[],"src":"2670:0:185"},"scope":94029,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":94018,"nodeType":"FunctionDefinition","src":"3065:124:185","nodes":[],"body":{"id":94017,"nodeType":"Block","src":"3119:70:185","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3138:45:185","statements":[{"expression":{"arguments":[{"name":"_slot","nodeType":"YulIdentifier","src":"3159:5:185"},{"name":"_value","nodeType":"YulIdentifier","src":"3166:6:185"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3152:6:185"},"nodeType":"YulFunctionCall","src":"3152:21:185"},"nodeType":"YulExpressionStatement","src":"3152:21:185"}]},"evmVersion":"london","externalReferences":[{"declaration":94011,"isOffset":false,"isSlot":false,"src":"3159:5:185","valueSize":1},{"declaration":94013,"isOffset":false,"isSlot":false,"src":"3166:6:185","valueSize":1}],"id":94016,"nodeType":"InlineAssembly","src":"3129:54:185"}]},"documentation":{"id":94009,"nodeType":"StructuredDocumentation","src":"2746:314:185","text":"@notice Stores a bool value in an arbitrary storage slot, `_slot`.\n @param _slot The storage slot to store the bool in.\n @param _value The bool value to store\n @dev WARNING! This function must be used cautiously, as it allows for overwriting values\n in arbitrary storage slots."},"implemented":true,"kind":"function","modifiers":[],"name":"setBool","nameLocation":"3074:7:185","parameters":{"id":94014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":94011,"mutability":"mutable","name":"_slot","nameLocation":"3090:5:185","nodeType":"VariableDeclaration","scope":94018,"src":"3082:13:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94010,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3082:7:185","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":94013,"mutability":"mutable","name":"_value","nameLocation":"3102:6:185","nodeType":"VariableDeclaration","scope":94018,"src":"3097:11:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":94012,"name":"bool","nodeType":"ElementaryTypeName","src":"3097:4:185","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3081:28:185"},"returnParameters":{"id":94015,"nodeType":"ParameterList","parameters":[],"src":"3119:0:185"},"scope":94029,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":94028,"nodeType":"FunctionDefinition","src":"3328:139:185","nodes":[],"body":{"id":94027,"nodeType":"Block","src":"3396:71:185","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3415:46:185","statements":[{"nodeType":"YulAssignment","src":"3429:22:185","value":{"arguments":[{"name":"_slot","nodeType":"YulIdentifier","src":"3445:5:185"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3439:5:185"},"nodeType":"YulFunctionCall","src":"3439:12:185"},"variableNames":[{"name":"value_","nodeType":"YulIdentifier","src":"3429:6:185"}]}]},"evmVersion":"london","externalReferences":[{"declaration":94021,"isOffset":false,"isSlot":false,"src":"3445:5:185","valueSize":1},{"declaration":94024,"isOffset":false,"isSlot":false,"src":"3429:6:185","valueSize":1}],"id":94026,"nodeType":"InlineAssembly","src":"3406:55:185"}]},"documentation":{"id":94019,"nodeType":"StructuredDocumentation","src":"3195:128:185","text":"@notice Returns a bool stored in an arbitrary storage slot.\n @param _slot The storage slot to retrieve the bool from."},"implemented":true,"kind":"function","modifiers":[],"name":"getBool","nameLocation":"3337:7:185","parameters":{"id":94022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":94021,"mutability":"mutable","name":"_slot","nameLocation":"3353:5:185","nodeType":"VariableDeclaration","scope":94028,"src":"3345:13:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94020,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3345:7:185","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3344:15:185"},"returnParameters":{"id":94025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":94024,"mutability":"mutable","name":"value_","nameLocation":"3388:6:185","nodeType":"VariableDeclaration","scope":94028,"src":"3383:11:185","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":94023,"name":"bool","nodeType":"ElementaryTypeName","src":"3383:4:185","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3382:13:185"},"scope":94029,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Storage","contractDependencies":[],"contractKind":"library","documentation":{"id":93948,"nodeType":"StructuredDocumentation","src":"57:97:185","text":"@title Storage\n @notice Storage handles reading and writing to arbitary storage locations"},"fullyImplemented":true,"linearizedBaseContracts":[94029],"name":"Storage","nameLocation":"162:7:185","scope":94030,"usedErrors":[]}],"license":"MIT"},"id":185}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"154:3315:196:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;154:3315:196;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"154:3315:196:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Storage\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Storage handles reading and writing to arbitary storage locations\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Storage.sol\":\"Storage\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/libraries/Storage.sol":"Storage"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"Storage handles reading and writing to arbitary storage locations"},"devdoc":{"version":1,"kind":"dev","title":"Storage"},"id":196}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"getStorageAt","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"simulateAndRevert","inputs":[{"name":"targetContract","type":"address","internalType":"address"},{"name":"calldataPayload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getStorageAt(uint256,uint256)":"5624b25b","simulateAndRevert(address,bytes)":"b4faba09"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"getStorageAt\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"targetContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"calldataPayload\",\"type\":\"bytes\"}],\"name\":\"simulateAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Gnosis Developers\",\"kind\":\"dev\",\"methods\":{\"getStorageAt(uint256,uint256)\":{\"params\":{\"length\":\"- the number of words (32 bytes) of data to read\",\"offset\":\"- the offset in the current contract's storage in words to start reading from\"},\"returns\":{\"_0\":\"the bytes that were read.\"}},\"simulateAndRevert(address,bytes)\":{\"details\":\"Performs a delegatecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). This method reverts with data equal to `abi.encode(bool(success), bytes(response))`. Specifically, the `returndata` after a call to this method will be: `success:bool || response.length:uint256 || response:bytes`.\",\"params\":{\"calldataPayload\":\"Calldata that should be sent to the target contract (encoded method name and arguments).\",\"targetContract\":\"Address of the contract containing the code to execute.\"}}},\"title\":\"StorageAccessible - A generic base contract that allows callers to access all internal storage.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getStorageAt(uint256,uint256)\":{\"notice\":\"Reads `length` bytes of storage in the currents contract\"}},\"notice\":\"See https://github.com/gnosis/util-contracts/blob/bb5fe5fb5df6d8400998094fb1b32a178a47c3a1/contracts/StorageAccessible.sol It removes a method from the original contract not needed for the Safe contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/StorageAccessible.sol\":\"StorageAccessible\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/StorageAccessible.sol\":{\"keccak256\":\"0x2c5412a8f014db332322a6b24ee3cedce15dca17a721ae49fdef368568d4391e\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://e775f267d3e60ebe452d9533f46a0eb1f1dc4593d1bcb553e86cea205a5f361e\",\"dweb:/ipfs/QmQdYDHGQsiMx1AADWRhX7tduU9ycTzrT5q3zBWvphXzKZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStorageAt","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"targetContract","type":"address"},{"internalType":"bytes","name":"calldataPayload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"simulateAndRevert"}],"devdoc":{"kind":"dev","methods":{"getStorageAt(uint256,uint256)":{"params":{"length":"- the number of words (32 bytes) of data to read","offset":"- the offset in the current contract's storage in words to start reading from"},"returns":{"_0":"the bytes that were read."}},"simulateAndRevert(address,bytes)":{"details":"Performs a delegatecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). This method reverts with data equal to `abi.encode(bool(success), bytes(response))`. Specifically, the `returndata` after a call to this method will be: `success:bool || response.length:uint256 || response:bytes`.","params":{"calldataPayload":"Calldata that should be sent to the target contract (encoded method name and arguments).","targetContract":"Address of the contract containing the code to execute."}}},"version":1},"userdoc":{"kind":"user","methods":{"getStorageAt(uint256,uint256)":{"notice":"Reads `length` bytes of storage in the currents contract"}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/StorageAccessible.sol":"StorageAccessible"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/StorageAccessible.sol":{"keccak256":"0x2c5412a8f014db332322a6b24ee3cedce15dca17a721ae49fdef368568d4391e","urls":["bzz-raw://e775f267d3e60ebe452d9533f46a0eb1f1dc4593d1bcb553e86cea205a5f361e","dweb:/ipfs/QmQdYDHGQsiMx1AADWRhX7tduU9ycTzrT5q3zBWvphXzKZ"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"getStorageAt(uint256,uint256)":{"notice":"Reads `length` bytes of storage in the currents contract"}},"notice":"See https://github.com/gnosis/util-contracts/blob/bb5fe5fb5df6d8400998094fb1b32a178a47c3a1/contracts/StorageAccessible.sol It removes a method from the original contract not needed for the Safe contracts."},"devdoc":{"version":1,"kind":"dev","author":"Gnosis Developers","methods":{"getStorageAt(uint256,uint256)":{"params":{"length":"- the number of words (32 bytes) of data to read","offset":"- the offset in the current contract's storage in words to start reading from"},"returns":{"_0":"the bytes that were read."}},"simulateAndRevert(address,bytes)":{"details":"Performs a delegatecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). This method reverts with data equal to `abi.encode(bool(success), bytes(response))`. Specifically, the `returndata` after a call to this method will be: `success:bool || response.length:uint256 || response:bytes`.","params":{"calldataPayload":"Calldata that should be sent to the target contract (encoded method name and arguments).","targetContract":"Address of the contract containing the code to execute."}}},"title":"StorageAccessible - A generic base contract that allows callers to access all internal storage."},"ast":{"absolutePath":"lib/safe-contracts/contracts/common/StorageAccessible.sol","id":58081,"exportedSymbols":{"StorageAccessible":[58080]},"nodeType":"SourceUnit","src":"42:2329:83","nodes":[{"id":58033,"nodeType":"PragmaDirective","src":"42:31:83","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58080,"nodeType":"ContractDefinition","src":"445:1925:83","nodes":[{"id":58069,"nodeType":"FunctionDefinition","src":"785:464:83","nodes":[],"body":{"id":58068,"nodeType":"Block","src":"874:375:83","nodes":[],"statements":[{"assignments":[58045],"declarations":[{"constant":false,"id":58045,"mutability":"mutable","name":"result","nameLocation":"897:6:83","nodeType":"VariableDeclaration","scope":58068,"src":"884:19:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58044,"name":"bytes","nodeType":"ElementaryTypeName","src":"884:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":58052,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58048,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58039,"src":"916:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":58049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"925:2:83","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"916:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"906:9:83","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":58046,"name":"bytes","nodeType":"ElementaryTypeName","src":"910:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":58051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"906:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"884:44:83"},{"body":{"id":58064,"nodeType":"Block","src":"987:233:83","statements":[{"AST":{"nodeType":"YulBlock","src":"1070:140:83","statements":[{"nodeType":"YulVariableDeclaration","src":"1088:37:83","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1110:6:83"},{"name":"index","nodeType":"YulIdentifier","src":"1118:5:83"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1106:3:83"},"nodeType":"YulFunctionCall","src":"1106:18:83"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1100:5:83"},"nodeType":"YulFunctionCall","src":"1100:25:83"},"variables":[{"name":"word","nodeType":"YulTypedName","src":"1092:4:83","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"1157:6:83"},{"kind":"number","nodeType":"YulLiteral","src":"1165:4:83","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1153:3:83"},"nodeType":"YulFunctionCall","src":"1153:17:83"},{"arguments":[{"name":"index","nodeType":"YulIdentifier","src":"1176:5:83"},{"kind":"number","nodeType":"YulLiteral","src":"1183:4:83","type":"","value":"0x20"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"1172:3:83"},"nodeType":"YulFunctionCall","src":"1172:16:83"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1149:3:83"},"nodeType":"YulFunctionCall","src":"1149:40:83"},{"name":"word","nodeType":"YulIdentifier","src":"1191:4:83"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1142:6:83"},"nodeType":"YulFunctionCall","src":"1142:54:83"},"nodeType":"YulExpressionStatement","src":"1142:54:83"}]},"evmVersion":"london","externalReferences":[{"declaration":58054,"isOffset":false,"isSlot":false,"src":"1118:5:83","valueSize":1},{"declaration":58054,"isOffset":false,"isSlot":false,"src":"1176:5:83","valueSize":1},{"declaration":58037,"isOffset":false,"isSlot":false,"src":"1110:6:83","valueSize":1},{"declaration":58045,"isOffset":false,"isSlot":false,"src":"1157:6:83","valueSize":1}],"id":58063,"nodeType":"InlineAssembly","src":"1061:149:83"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58057,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58054,"src":"962:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":58058,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58039,"src":"970:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"962:14:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58065,"initializationExpression":{"assignments":[58054],"declarations":[{"constant":false,"id":58054,"mutability":"mutable","name":"index","nameLocation":"951:5:83","nodeType":"VariableDeclaration","scope":58065,"src":"943:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58053,"name":"uint256","nodeType":"ElementaryTypeName","src":"943:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58056,"initialValue":{"hexValue":"30","id":58055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"959:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"943:17:83"},"loopExpression":{"expression":{"id":58061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"978:7:83","subExpression":{"id":58060,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58054,"src":"978:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58062,"nodeType":"ExpressionStatement","src":"978:7:83"},"nodeType":"ForStatement","src":"938:282:83"},{"expression":{"id":58066,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58045,"src":"1236:6:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":58043,"id":58067,"nodeType":"Return","src":"1229:13:83"}]},"documentation":{"id":58035,"nodeType":"StructuredDocumentation","src":"487:293:83","text":" @notice Reads `length` bytes of storage in the currents contract\n @param offset - the offset in the current contract's storage in words to start reading from\n @param length - the number of words (32 bytes) of data to read\n @return the bytes that were read."},"functionSelector":"5624b25b","implemented":true,"kind":"function","modifiers":[],"name":"getStorageAt","nameLocation":"794:12:83","parameters":{"id":58040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58037,"mutability":"mutable","name":"offset","nameLocation":"815:6:83","nodeType":"VariableDeclaration","scope":58069,"src":"807:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58036,"name":"uint256","nodeType":"ElementaryTypeName","src":"807:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58039,"mutability":"mutable","name":"length","nameLocation":"831:6:83","nodeType":"VariableDeclaration","scope":58069,"src":"823:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58038,"name":"uint256","nodeType":"ElementaryTypeName","src":"823:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"806:32:83"},"returnParameters":{"id":58043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58069,"src":"860:12:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58041,"name":"bytes","nodeType":"ElementaryTypeName","src":"860:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"859:14:83"},"scope":58080,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":58079,"nodeType":"FunctionDefinition","src":"1882:486:83","nodes":[],"body":{"id":58078,"nodeType":"Block","src":"1972:396:83","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2047:315:83","statements":[{"nodeType":"YulVariableDeclaration","src":"2061:108:83","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2089:3:83"},"nodeType":"YulFunctionCall","src":"2089:5:83"},{"name":"targetContract","nodeType":"YulIdentifier","src":"2096:14:83"},{"arguments":[{"name":"calldataPayload","nodeType":"YulIdentifier","src":"2116:15:83"},{"kind":"number","nodeType":"YulLiteral","src":"2133:4:83","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2112:3:83"},"nodeType":"YulFunctionCall","src":"2112:26:83"},{"arguments":[{"name":"calldataPayload","nodeType":"YulIdentifier","src":"2146:15:83"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2140:5:83"},"nodeType":"YulFunctionCall","src":"2140:22:83"},{"kind":"number","nodeType":"YulLiteral","src":"2164:1:83","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2167:1:83","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"2076:12:83"},"nodeType":"YulFunctionCall","src":"2076:93:83"},"variables":[{"name":"success","nodeType":"YulTypedName","src":"2065:7:83","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2190:4:83","type":"","value":"0x00"},{"name":"success","nodeType":"YulIdentifier","src":"2196:7:83"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2183:6:83"},"nodeType":"YulFunctionCall","src":"2183:21:83"},"nodeType":"YulExpressionStatement","src":"2183:21:83"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2224:4:83","type":"","value":"0x20"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2230:14:83"},"nodeType":"YulFunctionCall","src":"2230:16:83"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2217:6:83"},"nodeType":"YulFunctionCall","src":"2217:30:83"},"nodeType":"YulExpressionStatement","src":"2217:30:83"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2275:4:83","type":"","value":"0x40"},{"kind":"number","nodeType":"YulLiteral","src":"2281:1:83","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2284:14:83"},"nodeType":"YulFunctionCall","src":"2284:16:83"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"2260:14:83"},"nodeType":"YulFunctionCall","src":"2260:41:83"},"nodeType":"YulExpressionStatement","src":"2260:41:83"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2321:1:83","type":"","value":"0"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2328:14:83"},"nodeType":"YulFunctionCall","src":"2328:16:83"},{"kind":"number","nodeType":"YulLiteral","src":"2346:4:83","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2324:3:83"},"nodeType":"YulFunctionCall","src":"2324:27:83"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2314:6:83"},"nodeType":"YulFunctionCall","src":"2314:38:83"},"nodeType":"YulExpressionStatement","src":"2314:38:83"}]},"evmVersion":"london","externalReferences":[{"declaration":58074,"isOffset":false,"isSlot":false,"src":"2116:15:83","valueSize":1},{"declaration":58074,"isOffset":false,"isSlot":false,"src":"2146:15:83","valueSize":1},{"declaration":58072,"isOffset":false,"isSlot":false,"src":"2096:14:83","valueSize":1}],"id":58077,"nodeType":"InlineAssembly","src":"2038:324:83"}]},"documentation":{"id":58070,"nodeType":"StructuredDocumentation","src":"1255:622:83","text":" @dev Performs a delegatecall on a targetContract in the context of self.\n Internally reverts execution to avoid side effects (making it static).\n This method reverts with data equal to `abi.encode(bool(success), bytes(response))`.\n Specifically, the `returndata` after a call to this method will be:\n `success:bool || response.length:uint256 || response:bytes`.\n @param targetContract Address of the contract containing the code to execute.\n @param calldataPayload Calldata that should be sent to the target contract (encoded method name and arguments)."},"functionSelector":"b4faba09","implemented":true,"kind":"function","modifiers":[],"name":"simulateAndRevert","nameLocation":"1891:17:83","parameters":{"id":58075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58072,"mutability":"mutable","name":"targetContract","nameLocation":"1917:14:83","nodeType":"VariableDeclaration","scope":58079,"src":"1909:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58071,"name":"address","nodeType":"ElementaryTypeName","src":"1909:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58074,"mutability":"mutable","name":"calldataPayload","nameLocation":"1946:15:83","nodeType":"VariableDeclaration","scope":58079,"src":"1933:28:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58073,"name":"bytes","nodeType":"ElementaryTypeName","src":"1933:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1908:54:83"},"returnParameters":{"id":58076,"nodeType":"ParameterList","parameters":[],"src":"1972:0:83"},"scope":58080,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":true,"baseContracts":[],"canonicalName":"StorageAccessible","contractDependencies":[],"contractKind":"contract","documentation":{"id":58034,"nodeType":"StructuredDocumentation","src":"75:369:83","text":" @title StorageAccessible - A generic base contract that allows callers to access all internal storage.\n @notice See https://github.com/gnosis/util-contracts/blob/bb5fe5fb5df6d8400998094fb1b32a178a47c3a1/contracts/StorageAccessible.sol\n It removes a method from the original contract not needed for the Safe contracts.\n @author Gnosis Developers"},"fullyImplemented":true,"linearizedBaseContracts":[58080],"name":"StorageAccessible","nameLocation":"463:17:83","scope":58081,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":83}
{"abi":[{"type":"function","name":"getStorageAt","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"simulateAndRevert","inputs":[{"name":"targetContract","type":"address","internalType":"address"},{"name":"calldataPayload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getStorageAt(uint256,uint256)":"5624b25b","simulateAndRevert(address,bytes)":"b4faba09"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"getStorageAt\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"targetContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"calldataPayload\",\"type\":\"bytes\"}],\"name\":\"simulateAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Gnosis Developers\",\"kind\":\"dev\",\"methods\":{\"getStorageAt(uint256,uint256)\":{\"params\":{\"length\":\"- the number of words (32 bytes) of data to read\",\"offset\":\"- the offset in the current contract's storage in words to start reading from\"},\"returns\":{\"_0\":\"the bytes that were read.\"}},\"simulateAndRevert(address,bytes)\":{\"details\":\"Performs a delegatecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). This method reverts with data equal to `abi.encode(bool(success), bytes(response))`. Specifically, the `returndata` after a call to this method will be: `success:bool || response.length:uint256 || response:bytes`.\",\"params\":{\"calldataPayload\":\"Calldata that should be sent to the target contract (encoded method name and arguments).\",\"targetContract\":\"Address of the contract containing the code to execute.\"}}},\"title\":\"StorageAccessible - A generic base contract that allows callers to access all internal storage.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getStorageAt(uint256,uint256)\":{\"notice\":\"Reads `length` bytes of storage in the currents contract\"}},\"notice\":\"See https://github.com/gnosis/util-contracts/blob/bb5fe5fb5df6d8400998094fb1b32a178a47c3a1/contracts/StorageAccessible.sol It removes a method from the original contract not needed for the Safe contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/common/StorageAccessible.sol\":\"StorageAccessible\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/common/StorageAccessible.sol\":{\"keccak256\":\"0x2c5412a8f014db332322a6b24ee3cedce15dca17a721ae49fdef368568d4391e\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://e775f267d3e60ebe452d9533f46a0eb1f1dc4593d1bcb553e86cea205a5f361e\",\"dweb:/ipfs/QmQdYDHGQsiMx1AADWRhX7tduU9ycTzrT5q3zBWvphXzKZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStorageAt","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"targetContract","type":"address"},{"internalType":"bytes","name":"calldataPayload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"simulateAndRevert"}],"devdoc":{"kind":"dev","methods":{"getStorageAt(uint256,uint256)":{"params":{"length":"- the number of words (32 bytes) of data to read","offset":"- the offset in the current contract's storage in words to start reading from"},"returns":{"_0":"the bytes that were read."}},"simulateAndRevert(address,bytes)":{"details":"Performs a delegatecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). This method reverts with data equal to `abi.encode(bool(success), bytes(response))`. Specifically, the `returndata` after a call to this method will be: `success:bool || response.length:uint256 || response:bytes`.","params":{"calldataPayload":"Calldata that should be sent to the target contract (encoded method name and arguments).","targetContract":"Address of the contract containing the code to execute."}}},"version":1},"userdoc":{"kind":"user","methods":{"getStorageAt(uint256,uint256)":{"notice":"Reads `length` bytes of storage in the currents contract"}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/common/StorageAccessible.sol":"StorageAccessible"},"evmVersion":"london","libraries":{}},"sources":{"lib/safe-contracts/contracts/common/StorageAccessible.sol":{"keccak256":"0x2c5412a8f014db332322a6b24ee3cedce15dca17a721ae49fdef368568d4391e","urls":["bzz-raw://e775f267d3e60ebe452d9533f46a0eb1f1dc4593d1bcb553e86cea205a5f361e","dweb:/ipfs/QmQdYDHGQsiMx1AADWRhX7tduU9ycTzrT5q3zBWvphXzKZ"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"getStorageAt(uint256,uint256)":{"notice":"Reads `length` bytes of storage in the currents contract"}},"notice":"See https://github.com/gnosis/util-contracts/blob/bb5fe5fb5df6d8400998094fb1b32a178a47c3a1/contracts/StorageAccessible.sol It removes a method from the original contract not needed for the Safe contracts."},"devdoc":{"version":1,"kind":"dev","author":"Gnosis Developers","methods":{"getStorageAt(uint256,uint256)":{"params":{"length":"- the number of words (32 bytes) of data to read","offset":"- the offset in the current contract's storage in words to start reading from"},"returns":{"_0":"the bytes that were read."}},"simulateAndRevert(address,bytes)":{"details":"Performs a delegatecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). This method reverts with data equal to `abi.encode(bool(success), bytes(response))`. Specifically, the `returndata` after a call to this method will be: `success:bool || response.length:uint256 || response:bytes`.","params":{"calldataPayload":"Calldata that should be sent to the target contract (encoded method name and arguments).","targetContract":"Address of the contract containing the code to execute."}}},"title":"StorageAccessible - A generic base contract that allows callers to access all internal storage."},"id":83}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"getAddress","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"addr_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getBool","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getBytes32","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getUint","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setAddress","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBool","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBytes32","inputs":[{"name":"slots","type":"tuple[]","internalType":"struct StorageSetter.Slot[]","components":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBytes32","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUint","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061046a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a6ed563e11610076578063bd02d0f51161005b578063bd02d0f51461018e578063ca446dd9146101b8578063e2a4853a1461011557600080fd5b8063a6ed563e1461018e578063abfdcced146101aa57600080fd5b80634e91db08116100a75780634e91db081461011557806354fd4d50146101275780637ae1cfca1461017057600080fd5b80630528afe2146100c357806321f8a721146100d8575b600080fd5b6100d66100d1366004610239565b6101c6565b005b6100eb6100e63660046102ae565b610229565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d66101233660046102c7565b9055565b6101636040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c91906102e9565b61017e6100e63660046102ae565b604051901515815260200161010c565b61019c6100e63660046102ae565b60405190815260200161010c565b6100d661012336600461035c565b6100d6610123366004610391565b8060005b81811015610223576102118484838181106101e7576101e76103cf565b90506040020160000135858584818110610203576102036103cf565b905060400201602001359055565b8061021b816103fe565b9150506101ca565b50505050565b6000610233825490565b92915050565b6000806020838503121561024c57600080fd5b823567ffffffffffffffff8082111561026457600080fd5b818501915085601f83011261027857600080fd5b81358181111561028757600080fd5b8660208260061b850101111561029c57600080fd5b60209290920196919550909350505050565b6000602082840312156102c057600080fd5b5035919050565b600080604083850312156102da57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015610316578581018301518582016040015282016102fa565b81811115610328576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000806040838503121561036f57600080fd5b823591506020830135801515811461038657600080fd5b809150509250929050565b600080604083850312156103a457600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461038657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610456577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"416:2030:220:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a6ed563e11610076578063bd02d0f51161005b578063bd02d0f51461018e578063ca446dd9146101b8578063e2a4853a1461011557600080fd5b8063a6ed563e1461018e578063abfdcced146101aa57600080fd5b80634e91db08116100a75780634e91db081461011557806354fd4d50146101275780637ae1cfca1461017057600080fd5b80630528afe2146100c357806321f8a721146100d8575b600080fd5b6100d66100d1366004610239565b6101c6565b005b6100eb6100e63660046102ae565b610229565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d66101233660046102c7565b9055565b6101636040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c91906102e9565b61017e6100e63660046102ae565b604051901515815260200161010c565b61019c6100e63660046102ae565b60405190815260200161010c565b6100d661012336600461035c565b6100d6610123366004610391565b8060005b81811015610223576102118484838181106101e7576101e76103cf565b90506040020160000135858584818110610203576102036103cf565b905060400201602001359055565b8061021b816103fe565b9150506101ca565b50505050565b6000610233825490565b92915050565b6000806020838503121561024c57600080fd5b823567ffffffffffffffff8082111561026457600080fd5b818501915085601f83011261027857600080fd5b81358181111561028757600080fd5b8660208260061b850101111561029c57600080fd5b60209290920196919550909350505050565b6000602082840312156102c057600080fd5b5035919050565b600080604083850312156102da57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015610316578581018301518582016040015282016102fa565b81811115610328576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000806040838503121561036f57600080fd5b823591506020830135801515811461038657600080fd5b809150509250929050565b600080604083850312156103a457600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461038657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610456577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"416:2030:220:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1013:211;;;;;;:::i;:::-;;:::i;:::-;;1990:123;;;;;;:::i;:::-;;:::i;:::-;;;1021:42:334;1009:55;;;991:74;;979:2;964:18;1990:123:220;;;;;;;;835:108;;;;;;:::i;:::-;2703:21:185;;835:108:220;646:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2328:116::-;;;;;;:::i;:::-;;;2155:14:334;;2148:22;2130:41;;2118:2;2103:18;2328:116:220;1990:187:334;1286:125:220;;;;;;:::i;:::-;;;2328:25:334;;;2316:2;2301:18;1286:125:220;2182:177:334;2170:99:220;;;;;;:::i;1815:112::-;;;;;;:::i;1013:211::-;1090:5;1073:14;1112:106;1132:6;1128:1;:10;1112:106;;;1159:48;1178:5;;1184:1;1178:8;;;;;;;:::i;:::-;;;;;;:12;;;1192:5;;1198:1;1192:8;;;;;;;:::i;:::-;;;;;;:14;;;2703:21:185;;2610:130;1159:48:220;1140:3;;;;:::i;:::-;;;;1112:106;;;;1063:161;1013:211;;:::o;1990:123::-;2048:13;2081:25;2100:5;535:12:185;;420:143;2081:25:220;2073:33;1990:123;-1:-1:-1;;1990:123:220:o;14:641:334:-;126:6;134;187:2;175:9;166:7;162:23;158:32;155:52;;;203:1;200;193:12;155:52;243:9;230:23;272:18;313:2;305:6;302:14;299:34;;;329:1;326;319:12;299:34;367:6;356:9;352:22;342:32;;412:7;405:4;401:2;397:13;393:27;383:55;;434:1;431;424:12;383:55;474:2;461:16;500:2;492:6;489:14;486:34;;;516:1;513;506:12;486:34;569:7;564:2;554:6;551:1;547:14;543:2;539:23;535:32;532:45;529:65;;;590:1;587;580:12;529:65;621:2;613:11;;;;;643:6;;-1:-1:-1;14:641:334;;-1:-1:-1;;;;14:641:334:o;660:180::-;719:6;772:2;760:9;751:7;747:23;743:32;740:52;;;788:1;785;778:12;740:52;-1:-1:-1;811:23:334;;660:180;-1:-1:-1;660:180:334:o;1076:248::-;1144:6;1152;1205:2;1193:9;1184:7;1180:23;1176:32;1173:52;;;1221:1;1218;1211:12;1173:52;-1:-1:-1;;1244:23:334;;;1314:2;1299:18;;;1286:32;;-1:-1:-1;1076:248:334:o;1329:656::-;1441:4;1470:2;1499;1488:9;1481:21;1531:6;1525:13;1574:6;1569:2;1558:9;1554:18;1547:34;1599:1;1609:140;1623:6;1620:1;1617:13;1609:140;;;1718:14;;;1714:23;;1708:30;1684:17;;;1703:2;1680:26;1673:66;1638:10;;1609:140;;;1767:6;1764:1;1761:13;1758:91;;;1837:1;1832:2;1823:6;1812:9;1808:22;1804:31;1797:42;1758:91;-1:-1:-1;1901:2:334;1889:15;1906:66;1885:88;1870:104;;;;1976:2;1866:113;;1329:656;-1:-1:-1;;;1329:656:334:o;2364:341::-;2429:6;2437;2490:2;2478:9;2469:7;2465:23;2461:32;2458:52;;;2506:1;2503;2496:12;2458:52;2542:9;2529:23;2519:33;;2602:2;2591:9;2587:18;2574:32;2649:5;2642:13;2635:21;2628:5;2625:32;2615:60;;2671:1;2668;2661:12;2615:60;2694:5;2684:15;;;2364:341;;;;;:::o;2892:377::-;2960:6;2968;3021:2;3009:9;3000:7;2996:23;2992:32;2989:52;;;3037:1;3034;3027:12;2989:52;3073:9;3060:23;3050:33;;3133:2;3122:9;3118:18;3105:32;3177:42;3170:5;3166:54;3159:5;3156:65;3146:93;;3235:1;3232;3225:12;3527:184;3579:77;3576:1;3569:88;3676:4;3673:1;3666:15;3700:4;3697:1;3690:15;3716:349;3755:3;3786:66;3779:5;3776:77;3773:257;;3886:77;3883:1;3876:88;3987:4;3984:1;3977:15;4015:4;4012:1;4005:15;3773:257;-1:-1:-1;4057:1:334;4046:13;;3716:349::o","linkReferences":{}},"methodIdentifiers":{"getAddress(bytes32)":"21f8a721","getBool(bytes32)":"7ae1cfca","getBytes32(bytes32)":"a6ed563e","getUint(bytes32)":"bd02d0f5","setAddress(bytes32,address)":"ca446dd9","setBool(bytes32,bool)":"abfdcced","setBytes32((bytes32,bytes32)[])":"0528afe2","setBytes32(bytes32,bytes32)":"4e91db08","setUint(bytes32,uint256)":"e2a4853a","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_value\",\"type\":\"bool\"}],\"name\":\"setBool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"internalType\":\"struct StorageSetter.Slot[]\",\"name\":\"slots\",\"type\":\"tuple[]\"}],\"name\":\"setBytes32\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_value\",\"type\":\"bytes32\"}],\"name\":\"setBytes32\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"setUint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"StorageSetter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAddress(bytes32)\":{\"notice\":\"Retrieves an address value from `_slot`.\"},\"getBool(bytes32)\":{\"notice\":\"Retrieves a bool value from `_slot`.\"},\"getBytes32(bytes32)\":{\"notice\":\"Retrieves a bytes32 value from `_slot`.\"},\"getUint(bytes32)\":{\"notice\":\"Retrieves a uint256 value from `_slot`.\"},\"setAddress(bytes32,address)\":{\"notice\":\"Stores an address `_value` at `_slot`.\"},\"setBool(bytes32,bool)\":{\"notice\":\"Stores a bool `_value` at `_slot`.\"},\"setBytes32((bytes32,bytes32)[])\":{\"notice\":\"Stores a bytes32 value at each key in `_slots`.\"},\"setBytes32(bytes32,bytes32)\":{\"notice\":\"Stores a bytes32 `_value` at `_slot`. Any storage slots that are packed should be set through this interface.\"},\"setUint(bytes32,uint256)\":{\"notice\":\"Stores a uint256 `_value` at `_slot`.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"A simple contract that allows setting arbitrary storage slots. WARNING: this contract is not safe to be called by untrusted parties. It is only meant as an intermediate step during upgrades.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/StorageSetter.sol\":\"StorageSetter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/StorageSetter.sol\":{\"keccak256\":\"0x6fd8feff6ed9a3a20ed599c2b838b79f424f66ad2f3b618f4d1aebf9a867491b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0df55fd09a8a9cf4e55e188fff90d623606898c123b8e21d809f206c2328455f\",\"dweb:/ipfs/QmZWzbfkUYAxfN5eRtEpPjr6WcK86ZjsiJ8PVm7bULByPu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"addr_","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getBool","outputs":[{"internalType":"bool","name":"value_","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getBytes32","outputs":[{"internalType":"bytes32","name":"value_","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getUint","outputs":[{"internalType":"uint256","name":"value_","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAddress"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"bool","name":"_value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setBool"},{"inputs":[{"internalType":"struct StorageSetter.Slot[]","name":"slots","type":"tuple[]","components":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"setBytes32"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"bytes32","name":"_value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setBytes32"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setUint"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getAddress(bytes32)":{"notice":"Retrieves an address value from `_slot`."},"getBool(bytes32)":{"notice":"Retrieves a bool value from `_slot`."},"getBytes32(bytes32)":{"notice":"Retrieves a bytes32 value from `_slot`."},"getUint(bytes32)":{"notice":"Retrieves a uint256 value from `_slot`."},"setAddress(bytes32,address)":{"notice":"Stores an address `_value` at `_slot`."},"setBool(bytes32,bool)":{"notice":"Stores a bool `_value` at `_slot`."},"setBytes32((bytes32,bytes32)[])":{"notice":"Stores a bytes32 value at each key in `_slots`."},"setBytes32(bytes32,bytes32)":{"notice":"Stores a bytes32 `_value` at `_slot`. Any storage slots that are packed should be set through this interface."},"setUint(bytes32,uint256)":{"notice":"Stores a uint256 `_value` at `_slot`."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/StorageSetter.sol":"StorageSetter"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/StorageSetter.sol":{"keccak256":"0x6fd8feff6ed9a3a20ed599c2b838b79f424f66ad2f3b618f4d1aebf9a867491b","urls":["bzz-raw://0df55fd09a8a9cf4e55e188fff90d623606898c123b8e21d809f206c2328455f","dweb:/ipfs/QmZWzbfkUYAxfN5eRtEpPjr6WcK86ZjsiJ8PVm7bULByPu"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"getAddress(bytes32)":{"notice":"Retrieves an address value from `_slot`."},"getBool(bytes32)":{"notice":"Retrieves a bool value from `_slot`."},"getBytes32(bytes32)":{"notice":"Retrieves a bytes32 value from `_slot`."},"getUint(bytes32)":{"notice":"Retrieves a uint256 value from `_slot`."},"setAddress(bytes32,address)":{"notice":"Stores an address `_value` at `_slot`."},"setBool(bytes32,bool)":{"notice":"Stores a bool `_value` at `_slot`."},"setBytes32((bytes32,bytes32)[])":{"notice":"Stores a bytes32 value at each key in `_slots`."},"setBytes32(bytes32,bytes32)":{"notice":"Stores a bytes32 `_value` at `_slot`. Any storage slots that are packed should be set through this interface."},"setUint(bytes32,uint256)":{"notice":"Stores a uint256 `_value` at `_slot`."},"version()":{"notice":"Semantic version."}},"notice":"A simple contract that allows setting arbitrary storage slots. WARNING: this contract is not safe to be called by untrusted parties. It is only meant as an intermediate step during upgrades."},"devdoc":{"version":1,"kind":"dev","title":"StorageSetter"},"ast":{"absolutePath":"src/universal/StorageSetter.sol","id":101593,"exportedSymbols":{"ISemver":[99149],"Storage":[94029],"StorageSetter":[101592]},"nodeType":"SourceUnit","src":"32:2415:220","nodes":[{"id":101409,"nodeType":"PragmaDirective","src":"32:23:220","nodes":[],"literals":["solidity","0.8",".15"]},{"id":101411,"nodeType":"ImportDirective","src":"57:52:220","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":101593,"sourceUnit":99150,"symbolAliases":[{"foreign":{"id":101410,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99149,"src":"66:7:220","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":101413,"nodeType":"ImportDirective","src":"110:52:220","nodes":[],"absolutePath":"src/libraries/Storage.sol","file":"src/libraries/Storage.sol","nameLocation":"-1:-1:-1","scope":101593,"sourceUnit":94030,"symbolAliases":[{"foreign":{"id":101412,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94029,"src":"119:7:220","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":101592,"nodeType":"ContractDefinition","src":"416:2030:220","nodes":[{"id":101421,"nodeType":"StructDefinition","src":"514:63:220","nodes":[],"canonicalName":"StorageSetter.Slot","members":[{"constant":false,"id":101418,"mutability":"mutable","name":"key","nameLocation":"544:3:220","nodeType":"VariableDeclaration","scope":101421,"src":"536:11:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":101417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"536:7:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":101420,"mutability":"mutable","name":"value","nameLocation":"565:5:220","nodeType":"VariableDeclaration","scope":101421,"src":"557:13:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":101419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"557:7:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Slot","nameLocation":"521:4:220","scope":101592,"visibility":"public"},{"id":101425,"nodeType":"VariableDeclaration","src":"646:40:220","nodes":[],"baseFunctions":[99148],"constant":true,"documentation":{"id":101422,"nodeType":"StructuredDocumentation","src":"583:58:220","text":"@notice Semantic version.\n @custom:semver 1.2.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"669:7:220","scope":101592,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":101423,"name":"string","nodeType":"ElementaryTypeName","src":"646:6:220","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e322e30","id":101424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"679:7:220","typeDescriptions":{"typeIdentifier":"t_stringliteral_e374587661e69268352d25204d81b23ce801573f4b09f3545e69536dc085a37a","typeString":"literal_string \"1.2.0\""},"value":"1.2.0"},"visibility":"public"},{"id":101441,"nodeType":"FunctionDefinition","src":"835:108:220","nodes":[],"body":{"id":101440,"nodeType":"Block","src":"893:50:220","nodes":[],"statements":[{"expression":{"arguments":[{"id":101436,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101428,"src":"922:5:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":101437,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101430,"src":"929:6:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":101433,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94029,"src":"903:7:220","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$94029_$","typeString":"type(library Storage)"}},"id":101435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setBytes32","nodeType":"MemberAccess","referencedDeclaration":94008,"src":"903:18:220","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":101438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"903:33:220","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":101439,"nodeType":"ExpressionStatement","src":"903:33:220"}]},"documentation":{"id":101426,"nodeType":"StructuredDocumentation","src":"693:137:220","text":"@notice Stores a bytes32 `_value` at `_slot`. Any storage slots that\n are packed should be set through this interface."},"functionSelector":"4e91db08","implemented":true,"kind":"function","modifiers":[],"name":"setBytes32","nameLocation":"844:10:220","parameters":{"id":101431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101428,"mutability":"mutable","name":"_slot","nameLocation":"863:5:220","nodeType":"VariableDeclaration","scope":101441,"src":"855:13:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":101427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"855:7:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":101430,"mutability":"mutable","name":"_value","nameLocation":"878:6:220","nodeType":"VariableDeclaration","scope":101441,"src":"870:14:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":101429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"870:7:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"854:31:220"},"returnParameters":{"id":101432,"nodeType":"ParameterList","parameters":[],"src":"893:0:220"},"scope":101592,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":101479,"nodeType":"FunctionDefinition","src":"1013:211:220","nodes":[],"body":{"id":101478,"nodeType":"Block","src":"1063:161:220","nodes":[],"statements":[{"assignments":[101450],"declarations":[{"constant":false,"id":101450,"mutability":"mutable","name":"length","nameLocation":"1081:6:220","nodeType":"VariableDeclaration","scope":101478,"src":"1073:14:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":101449,"name":"uint256","nodeType":"ElementaryTypeName","src":"1073:7:220","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":101453,"initialValue":{"expression":{"id":101451,"name":"slots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101446,"src":"1090:5:220","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Slot_$101421_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StorageSetter.Slot calldata[] calldata"}},"id":101452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1090:12:220","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1073:29:220"},{"body":{"id":101476,"nodeType":"Block","src":"1145:73:220","statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":101466,"name":"slots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101446,"src":"1178:5:220","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Slot_$101421_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StorageSetter.Slot calldata[] calldata"}},"id":101468,"indexExpression":{"id":101467,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101455,"src":"1184:1:220","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1178:8:220","typeDescriptions":{"typeIdentifier":"t_struct$_Slot_$101421_calldata_ptr","typeString":"struct StorageSetter.Slot calldata"}},"id":101469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"key","nodeType":"MemberAccess","referencedDeclaration":101418,"src":"1178:12:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"baseExpression":{"id":101470,"name":"slots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101446,"src":"1192:5:220","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Slot_$101421_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StorageSetter.Slot calldata[] calldata"}},"id":101472,"indexExpression":{"id":101471,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101455,"src":"1198:1:220","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1192:8:220","typeDescriptions":{"typeIdentifier":"t_struct$_Slot_$101421_calldata_ptr","typeString":"struct StorageSetter.Slot calldata"}},"id":101473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":101420,"src":"1192:14:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":101463,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94029,"src":"1159:7:220","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$94029_$","typeString":"type(library Storage)"}},"id":101465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setBytes32","nodeType":"MemberAccess","referencedDeclaration":94008,"src":"1159:18:220","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":101474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1159:48:220","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":101475,"nodeType":"ExpressionStatement","src":"1159:48:220"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":101459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":101457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101455,"src":"1128:1:220","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":101458,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101450,"src":"1132:6:220","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1128:10:220","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":101477,"initializationExpression":{"assignments":[101455],"declarations":[{"constant":false,"id":101455,"mutability":"mutable","name":"i","nameLocation":"1125:1:220","nodeType":"VariableDeclaration","scope":101477,"src":"1117:9:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":101454,"name":"uint256","nodeType":"ElementaryTypeName","src":"1117:7:220","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":101456,"nodeType":"VariableDeclarationStatement","src":"1117:9:220"},"loopExpression":{"expression":{"id":101461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1140:3:220","subExpression":{"id":101460,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101455,"src":"1140:1:220","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":101462,"nodeType":"ExpressionStatement","src":"1140:3:220"},"nodeType":"ForStatement","src":"1112:106:220"}]},"documentation":{"id":101442,"nodeType":"StructuredDocumentation","src":"949:59:220","text":"@notice Stores a bytes32 value at each key in `_slots`."},"functionSelector":"0528afe2","implemented":true,"kind":"function","modifiers":[],"name":"setBytes32","nameLocation":"1022:10:220","parameters":{"id":101447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101446,"mutability":"mutable","name":"slots","nameLocation":"1049:5:220","nodeType":"VariableDeclaration","scope":101479,"src":"1033:21:220","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Slot_$101421_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StorageSetter.Slot[]"},"typeName":{"baseType":{"id":101444,"nodeType":"UserDefinedTypeName","pathNode":{"id":101443,"name":"Slot","nodeType":"IdentifierPath","referencedDeclaration":101421,"src":"1033:4:220"},"referencedDeclaration":101421,"src":"1033:4:220","typeDescriptions":{"typeIdentifier":"t_struct$_Slot_$101421_storage_ptr","typeString":"struct StorageSetter.Slot"}},"id":101445,"nodeType":"ArrayTypeName","src":"1033:6:220","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Slot_$101421_storage_$dyn_storage_ptr","typeString":"struct StorageSetter.Slot[]"}},"visibility":"internal"}],"src":"1032:23:220"},"returnParameters":{"id":101448,"nodeType":"ParameterList","parameters":[],"src":"1063:0:220"},"scope":101592,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":101495,"nodeType":"FunctionDefinition","src":"1286:125:220","nodes":[],"body":{"id":101494,"nodeType":"Block","src":"1360:51:220","nodes":[],"statements":[{"expression":{"id":101492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":101487,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101485,"src":"1370:6:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":101490,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101482,"src":"1398:5:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":101488,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94029,"src":"1379:7:220","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$94029_$","typeString":"type(library Storage)"}},"id":101489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBytes32","nodeType":"MemberAccess","referencedDeclaration":93998,"src":"1379:18:220","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":101491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1379:25:220","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1370:34:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":101493,"nodeType":"ExpressionStatement","src":"1370:34:220"}]},"documentation":{"id":101480,"nodeType":"StructuredDocumentation","src":"1230:51:220","text":"@notice Retrieves a bytes32 value from `_slot`."},"functionSelector":"a6ed563e","implemented":true,"kind":"function","modifiers":[],"name":"getBytes32","nameLocation":"1295:10:220","parameters":{"id":101483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101482,"mutability":"mutable","name":"_slot","nameLocation":"1314:5:220","nodeType":"VariableDeclaration","scope":101495,"src":"1306:13:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":101481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1306:7:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1305:15:220"},"returnParameters":{"id":101486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101485,"mutability":"mutable","name":"value_","nameLocation":"1352:6:220","nodeType":"VariableDeclaration","scope":101495,"src":"1344:14:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":101484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1344:7:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1343:16:220"},"scope":101592,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":101511,"nodeType":"FunctionDefinition","src":"1471:102:220","nodes":[],"body":{"id":101510,"nodeType":"Block","src":"1526:47:220","nodes":[],"statements":[{"expression":{"arguments":[{"id":101506,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101498,"src":"1552:5:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":101507,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101500,"src":"1559:6:220","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":101503,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94029,"src":"1536:7:220","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$94029_$","typeString":"type(library Storage)"}},"id":101505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setUint","nodeType":"MemberAccess","referencedDeclaration":93988,"src":"1536:15:220","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":101508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1536:30:220","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":101509,"nodeType":"ExpressionStatement","src":"1536:30:220"}]},"documentation":{"id":101496,"nodeType":"StructuredDocumentation","src":"1417:49:220","text":"@notice Stores a uint256 `_value` at `_slot`."},"functionSelector":"e2a4853a","implemented":true,"kind":"function","modifiers":[],"name":"setUint","nameLocation":"1480:7:220","parameters":{"id":101501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101498,"mutability":"mutable","name":"_slot","nameLocation":"1496:5:220","nodeType":"VariableDeclaration","scope":101511,"src":"1488:13:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":101497,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1488:7:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":101500,"mutability":"mutable","name":"_value","nameLocation":"1511:6:220","nodeType":"VariableDeclaration","scope":101511,"src":"1503:14:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":101499,"name":"uint256","nodeType":"ElementaryTypeName","src":"1503:7:220","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1487:31:220"},"returnParameters":{"id":101502,"nodeType":"ParameterList","parameters":[],"src":"1526:0:220"},"scope":101592,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":101527,"nodeType":"FunctionDefinition","src":"1635:119:220","nodes":[],"body":{"id":101526,"nodeType":"Block","src":"1706:48:220","nodes":[],"statements":[{"expression":{"id":101524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":101519,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101517,"src":"1716:6:220","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":101522,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101514,"src":"1741:5:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":101520,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94029,"src":"1725:7:220","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$94029_$","typeString":"type(library Storage)"}},"id":101521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getUint","nodeType":"MemberAccess","referencedDeclaration":93978,"src":"1725:15:220","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":101523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1725:22:220","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1716:31:220","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":101525,"nodeType":"ExpressionStatement","src":"1716:31:220"}]},"documentation":{"id":101512,"nodeType":"StructuredDocumentation","src":"1579:51:220","text":"@notice Retrieves a uint256 value from `_slot`."},"functionSelector":"bd02d0f5","implemented":true,"kind":"function","modifiers":[],"name":"getUint","nameLocation":"1644:7:220","parameters":{"id":101515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101514,"mutability":"mutable","name":"_slot","nameLocation":"1660:5:220","nodeType":"VariableDeclaration","scope":101527,"src":"1652:13:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":101513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1652:7:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1651:15:220"},"returnParameters":{"id":101518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101517,"mutability":"mutable","name":"value_","nameLocation":"1698:6:220","nodeType":"VariableDeclaration","scope":101527,"src":"1690:14:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":101516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1690:7:220","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1689:16:220"},"scope":101592,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":101543,"nodeType":"FunctionDefinition","src":"1815:112:220","nodes":[],"body":{"id":101542,"nodeType":"Block","src":"1875:52:220","nodes":[],"statements":[{"expression":{"arguments":[{"id":101538,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101530,"src":"1904:5:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":101539,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101532,"src":"1911:8:220","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":101535,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94029,"src":"1885:7:220","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$94029_$","typeString":"type(library Storage)"}},"id":101537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAddress","nodeType":"MemberAccess","referencedDeclaration":93968,"src":"1885:18:220","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":101540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1885:35:220","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":101541,"nodeType":"ExpressionStatement","src":"1885:35:220"}]},"documentation":{"id":101528,"nodeType":"StructuredDocumentation","src":"1760:50:220","text":"@notice Stores an address `_value` at `_slot`."},"functionSelector":"ca446dd9","implemented":true,"kind":"function","modifiers":[],"name":"setAddress","nameLocation":"1824:10:220","parameters":{"id":101533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101530,"mutability":"mutable","name":"_slot","nameLocation":"1843:5:220","nodeType":"VariableDeclaration","scope":101543,"src":"1835:13:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":101529,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1835:7:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":101532,"mutability":"mutable","name":"_address","nameLocation":"1858:8:220","nodeType":"VariableDeclaration","scope":101543,"src":"1850:16:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":101531,"name":"address","nodeType":"ElementaryTypeName","src":"1850:7:220","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1834:33:220"},"returnParameters":{"id":101534,"nodeType":"ParameterList","parameters":[],"src":"1875:0:220"},"scope":101592,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":101559,"nodeType":"FunctionDefinition","src":"1990:123:220","nodes":[],"body":{"id":101558,"nodeType":"Block","src":"2063:50:220","nodes":[],"statements":[{"expression":{"id":101556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":101551,"name":"addr_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101549,"src":"2073:5:220","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":101554,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101546,"src":"2100:5:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":101552,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94029,"src":"2081:7:220","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$94029_$","typeString":"type(library Storage)"}},"id":101553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":93958,"src":"2081:18:220","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":101555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2081:25:220","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2073:33:220","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":101557,"nodeType":"ExpressionStatement","src":"2073:33:220"}]},"documentation":{"id":101544,"nodeType":"StructuredDocumentation","src":"1933:52:220","text":"@notice Retrieves an address value from `_slot`."},"functionSelector":"21f8a721","implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"1999:10:220","parameters":{"id":101547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101546,"mutability":"mutable","name":"_slot","nameLocation":"2018:5:220","nodeType":"VariableDeclaration","scope":101559,"src":"2010:13:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":101545,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2010:7:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2009:15:220"},"returnParameters":{"id":101550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101549,"mutability":"mutable","name":"addr_","nameLocation":"2056:5:220","nodeType":"VariableDeclaration","scope":101559,"src":"2048:13:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":101548,"name":"address","nodeType":"ElementaryTypeName","src":"2048:7:220","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2047:15:220"},"scope":101592,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":101575,"nodeType":"FunctionDefinition","src":"2170:99:220","nodes":[],"body":{"id":101574,"nodeType":"Block","src":"2222:47:220","nodes":[],"statements":[{"expression":{"arguments":[{"id":101570,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101562,"src":"2248:5:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":101571,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101564,"src":"2255:6:220","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":101567,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94029,"src":"2232:7:220","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$94029_$","typeString":"type(library Storage)"}},"id":101569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setBool","nodeType":"MemberAccess","referencedDeclaration":94018,"src":"2232:15:220","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":101572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2232:30:220","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":101573,"nodeType":"ExpressionStatement","src":"2232:30:220"}]},"documentation":{"id":101560,"nodeType":"StructuredDocumentation","src":"2119:46:220","text":"@notice Stores a bool `_value` at `_slot`."},"functionSelector":"abfdcced","implemented":true,"kind":"function","modifiers":[],"name":"setBool","nameLocation":"2179:7:220","parameters":{"id":101565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101562,"mutability":"mutable","name":"_slot","nameLocation":"2195:5:220","nodeType":"VariableDeclaration","scope":101575,"src":"2187:13:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":101561,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2187:7:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":101564,"mutability":"mutable","name":"_value","nameLocation":"2207:6:220","nodeType":"VariableDeclaration","scope":101575,"src":"2202:11:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":101563,"name":"bool","nodeType":"ElementaryTypeName","src":"2202:4:220","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2186:28:220"},"returnParameters":{"id":101566,"nodeType":"ParameterList","parameters":[],"src":"2222:0:220"},"scope":101592,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":101591,"nodeType":"FunctionDefinition","src":"2328:116:220","nodes":[],"body":{"id":101590,"nodeType":"Block","src":"2396:48:220","nodes":[],"statements":[{"expression":{"id":101588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":101583,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101581,"src":"2406:6:220","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":101586,"name":"_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101578,"src":"2431:5:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":101584,"name":"Storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94029,"src":"2415:7:220","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Storage_$94029_$","typeString":"type(library Storage)"}},"id":101585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBool","nodeType":"MemberAccess","referencedDeclaration":94028,"src":"2415:15:220","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":101587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2415:22:220","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2406:31:220","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":101589,"nodeType":"ExpressionStatement","src":"2406:31:220"}]},"documentation":{"id":101576,"nodeType":"StructuredDocumentation","src":"2275:48:220","text":"@notice Retrieves a bool value from `_slot`."},"functionSelector":"7ae1cfca","implemented":true,"kind":"function","modifiers":[],"name":"getBool","nameLocation":"2337:7:220","parameters":{"id":101579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101578,"mutability":"mutable","name":"_slot","nameLocation":"2353:5:220","nodeType":"VariableDeclaration","scope":101591,"src":"2345:13:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":101577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2345:7:220","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2344:15:220"},"returnParameters":{"id":101582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101581,"mutability":"mutable","name":"value_","nameLocation":"2388:6:220","nodeType":"VariableDeclaration","scope":101591,"src":"2383:11:220","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":101580,"name":"bool","nodeType":"ElementaryTypeName","src":"2383:4:220","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2382:13:220"},"scope":101592,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":101415,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":99149,"src":"442:7:220"},"id":101416,"nodeType":"InheritanceSpecifier","src":"442:7:220"}],"canonicalName":"StorageSetter","contractDependencies":[],"contractKind":"contract","documentation":{"id":101414,"nodeType":"StructuredDocumentation","src":"164:252:220","text":"@title StorageSetter\n @notice A simple contract that allows setting arbitrary storage slots.\n WARNING: this contract is not safe to be called by untrusted parties.\n It is only meant as an intermediate step during upgrades."},"fullyImplemented":true,"linearizedBaseContracts":[101592,99149],"name":"StorageSetter","nameLocation":"425:13:220","scope":101593,"usedErrors":[]}],"license":"MIT"},"id":220}
{"abi":[{"type":"function","name":"getAddress","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"addr_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getBool","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getBytes32","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value_","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getUint","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setAddress","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBool","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBytes32","inputs":[{"name":"slots","type":"tuple[]","internalType":"struct StorageSetter.Slot[]","components":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBytes32","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUint","inputs":[{"name":"_slot","type":"bytes32","internalType":"bytes32"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061046a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a6ed563e11610076578063bd02d0f51161005b578063bd02d0f51461018e578063ca446dd9146101b8578063e2a4853a1461011557600080fd5b8063a6ed563e1461018e578063abfdcced146101aa57600080fd5b80634e91db08116100a75780634e91db081461011557806354fd4d50146101275780637ae1cfca1461017057600080fd5b80630528afe2146100c357806321f8a721146100d8575b600080fd5b6100d66100d1366004610239565b6101c6565b005b6100eb6100e63660046102ae565b610229565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d66101233660046102c7565b9055565b6101636040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c91906102e9565b61017e6100e63660046102ae565b604051901515815260200161010c565b61019c6100e63660046102ae565b60405190815260200161010c565b6100d661012336600461035c565b6100d6610123366004610391565b8060005b81811015610223576102118484838181106101e7576101e76103cf565b90506040020160000135858584818110610203576102036103cf565b905060400201602001359055565b8061021b816103fe565b9150506101ca565b50505050565b6000610233825490565b92915050565b6000806020838503121561024c57600080fd5b823567ffffffffffffffff8082111561026457600080fd5b818501915085601f83011261027857600080fd5b81358181111561028757600080fd5b8660208260061b850101111561029c57600080fd5b60209290920196919550909350505050565b6000602082840312156102c057600080fd5b5035919050565b600080604083850312156102da57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015610316578581018301518582016040015282016102fa565b81811115610328576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000806040838503121561036f57600080fd5b823591506020830135801515811461038657600080fd5b809150509250929050565b600080604083850312156103a457600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461038657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610456577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"416:2030:231:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a6ed563e11610076578063bd02d0f51161005b578063bd02d0f51461018e578063ca446dd9146101b8578063e2a4853a1461011557600080fd5b8063a6ed563e1461018e578063abfdcced146101aa57600080fd5b80634e91db08116100a75780634e91db081461011557806354fd4d50146101275780637ae1cfca1461017057600080fd5b80630528afe2146100c357806321f8a721146100d8575b600080fd5b6100d66100d1366004610239565b6101c6565b005b6100eb6100e63660046102ae565b610229565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d66101233660046102c7565b9055565b6101636040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c91906102e9565b61017e6100e63660046102ae565b604051901515815260200161010c565b61019c6100e63660046102ae565b60405190815260200161010c565b6100d661012336600461035c565b6100d6610123366004610391565b8060005b81811015610223576102118484838181106101e7576101e76103cf565b90506040020160000135858584818110610203576102036103cf565b905060400201602001359055565b8061021b816103fe565b9150506101ca565b50505050565b6000610233825490565b92915050565b6000806020838503121561024c57600080fd5b823567ffffffffffffffff8082111561026457600080fd5b818501915085601f83011261027857600080fd5b81358181111561028757600080fd5b8660208260061b850101111561029c57600080fd5b60209290920196919550909350505050565b6000602082840312156102c057600080fd5b5035919050565b600080604083850312156102da57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015610316578581018301518582016040015282016102fa565b81811115610328576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000806040838503121561036f57600080fd5b823591506020830135801515811461038657600080fd5b809150509250929050565b600080604083850312156103a457600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461038657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610456577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","sourceMap":"416:2030:231:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1013:211;;;;;;:::i;:::-;;:::i;:::-;;1990:123;;;;;;:::i;:::-;;:::i;:::-;;;1021:42:350;1009:55;;;991:74;;979:2;964:18;1990:123:231;;;;;;;;835:108;;;;;;:::i;:::-;2703:21:196;;835:108:231;646:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2328:116::-;;;;;;:::i;:::-;;;2155:14:350;;2148:22;2130:41;;2118:2;2103:18;2328:116:231;1990:187:350;1286:125:231;;;;;;:::i;:::-;;;2328:25:350;;;2316:2;2301:18;1286:125:231;2182:177:350;2170:99:231;;;;;;:::i;1815:112::-;;;;;;:::i;1013:211::-;1090:5;1073:14;1112:106;1132:6;1128:1;:10;1112:106;;;1159:48;1178:5;;1184:1;1178:8;;;;;;;:::i;:::-;;;;;;:12;;;1192:5;;1198:1;1192:8;;;;;;;:::i;:::-;;;;;;:14;;;2703:21:196;;2610:130;1159:48:231;1140:3;;;;:::i;:::-;;;;1112:106;;;;1063:161;1013:211;;:::o;1990:123::-;2048:13;2081:25;2100:5;535:12:196;;420:143;2081:25:231;2073:33;1990:123;-1:-1:-1;;1990:123:231:o;14:641:350:-;126:6;134;187:2;175:9;166:7;162:23;158:32;155:52;;;203:1;200;193:12;155:52;243:9;230:23;272:18;313:2;305:6;302:14;299:34;;;329:1;326;319:12;299:34;367:6;356:9;352:22;342:32;;412:7;405:4;401:2;397:13;393:27;383:55;;434:1;431;424:12;383:55;474:2;461:16;500:2;492:6;489:14;486:34;;;516:1;513;506:12;486:34;569:7;564:2;554:6;551:1;547:14;543:2;539:23;535:32;532:45;529:65;;;590:1;587;580:12;529:65;621:2;613:11;;;;;643:6;;-1:-1:-1;14:641:350;;-1:-1:-1;;;;14:641:350:o;660:180::-;719:6;772:2;760:9;751:7;747:23;743:32;740:52;;;788:1;785;778:12;740:52;-1:-1:-1;811:23:350;;660:180;-1:-1:-1;660:180:350:o;1076:248::-;1144:6;1152;1205:2;1193:9;1184:7;1180:23;1176:32;1173:52;;;1221:1;1218;1211:12;1173:52;-1:-1:-1;;1244:23:350;;;1314:2;1299:18;;;1286:32;;-1:-1:-1;1076:248:350:o;1329:656::-;1441:4;1470:2;1499;1488:9;1481:21;1531:6;1525:13;1574:6;1569:2;1558:9;1554:18;1547:34;1599:1;1609:140;1623:6;1620:1;1617:13;1609:140;;;1718:14;;;1714:23;;1708:30;1684:17;;;1703:2;1680:26;1673:66;1638:10;;1609:140;;;1767:6;1764:1;1761:13;1758:91;;;1837:1;1832:2;1823:6;1812:9;1808:22;1804:31;1797:42;1758:91;-1:-1:-1;1901:2:350;1889:15;1906:66;1885:88;1870:104;;;;1976:2;1866:113;;1329:656;-1:-1:-1;;;1329:656:350:o;2364:341::-;2429:6;2437;2490:2;2478:9;2469:7;2465:23;2461:32;2458:52;;;2506:1;2503;2496:12;2458:52;2542:9;2529:23;2519:33;;2602:2;2591:9;2587:18;2574:32;2649:5;2642:13;2635:21;2628:5;2625:32;2615:60;;2671:1;2668;2661:12;2615:60;2694:5;2684:15;;;2364:341;;;;;:::o;2892:377::-;2960:6;2968;3021:2;3009:9;3000:7;2996:23;2992:32;2989:52;;;3037:1;3034;3027:12;2989:52;3073:9;3060:23;3050:33;;3133:2;3122:9;3118:18;3105:32;3177:42;3170:5;3166:54;3159:5;3156:65;3146:93;;3235:1;3232;3225:12;3527:184;3579:77;3576:1;3569:88;3676:4;3673:1;3666:15;3700:4;3697:1;3690:15;3716:349;3755:3;3786:66;3779:5;3776:77;3773:257;;3886:77;3883:1;3876:88;3987:4;3984:1;3977:15;4015:4;4012:1;4005:15;3773:257;-1:-1:-1;4057:1:350;4046:13;;3716:349::o","linkReferences":{}},"methodIdentifiers":{"getAddress(bytes32)":"21f8a721","getBool(bytes32)":"7ae1cfca","getBytes32(bytes32)":"a6ed563e","getUint(bytes32)":"bd02d0f5","setAddress(bytes32,address)":"ca446dd9","setBool(bytes32,bool)":"abfdcced","setBytes32((bytes32,bytes32)[])":"0528afe2","setBytes32(bytes32,bytes32)":"4e91db08","setUint(bytes32,uint256)":"e2a4853a","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"}],\"name\":\"getUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_value\",\"type\":\"bool\"}],\"name\":\"setBool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"internalType\":\"struct StorageSetter.Slot[]\",\"name\":\"slots\",\"type\":\"tuple[]\"}],\"name\":\"setBytes32\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_value\",\"type\":\"bytes32\"}],\"name\":\"setBytes32\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_slot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"setUint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"StorageSetter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAddress(bytes32)\":{\"notice\":\"Retrieves an address value from `_slot`.\"},\"getBool(bytes32)\":{\"notice\":\"Retrieves a bool value from `_slot`.\"},\"getBytes32(bytes32)\":{\"notice\":\"Retrieves a bytes32 value from `_slot`.\"},\"getUint(bytes32)\":{\"notice\":\"Retrieves a uint256 value from `_slot`.\"},\"setAddress(bytes32,address)\":{\"notice\":\"Stores an address `_value` at `_slot`.\"},\"setBool(bytes32,bool)\":{\"notice\":\"Stores a bool `_value` at `_slot`.\"},\"setBytes32((bytes32,bytes32)[])\":{\"notice\":\"Stores a bytes32 value at each key in `_slots`.\"},\"setBytes32(bytes32,bytes32)\":{\"notice\":\"Stores a bytes32 `_value` at `_slot`. Any storage slots that are packed should be set through this interface.\"},\"setUint(bytes32,uint256)\":{\"notice\":\"Stores a uint256 `_value` at `_slot`.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"A simple contract that allows setting arbitrary storage slots. WARNING: this contract is not safe to be called by untrusted parties. It is only meant as an intermediate step during upgrades.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/StorageSetter.sol\":\"StorageSetter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/StorageSetter.sol\":{\"keccak256\":\"0x6fd8feff6ed9a3a20ed599c2b838b79f424f66ad2f3b618f4d1aebf9a867491b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0df55fd09a8a9cf4e55e188fff90d623606898c123b8e21d809f206c2328455f\",\"dweb:/ipfs/QmZWzbfkUYAxfN5eRtEpPjr6WcK86ZjsiJ8PVm7bULByPu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"addr_","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getBool","outputs":[{"internalType":"bool","name":"value_","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getBytes32","outputs":[{"internalType":"bytes32","name":"value_","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getUint","outputs":[{"internalType":"uint256","name":"value_","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAddress"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"bool","name":"_value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setBool"},{"inputs":[{"internalType":"struct StorageSetter.Slot[]","name":"slots","type":"tuple[]","components":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"setBytes32"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"bytes32","name":"_value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setBytes32"},{"inputs":[{"internalType":"bytes32","name":"_slot","type":"bytes32"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setUint"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getAddress(bytes32)":{"notice":"Retrieves an address value from `_slot`."},"getBool(bytes32)":{"notice":"Retrieves a bool value from `_slot`."},"getBytes32(bytes32)":{"notice":"Retrieves a bytes32 value from `_slot`."},"getUint(bytes32)":{"notice":"Retrieves a uint256 value from `_slot`."},"setAddress(bytes32,address)":{"notice":"Stores an address `_value` at `_slot`."},"setBool(bytes32,bool)":{"notice":"Stores a bool `_value` at `_slot`."},"setBytes32((bytes32,bytes32)[])":{"notice":"Stores a bytes32 value at each key in `_slots`."},"setBytes32(bytes32,bytes32)":{"notice":"Stores a bytes32 `_value` at `_slot`. Any storage slots that are packed should be set through this interface."},"setUint(bytes32,uint256)":{"notice":"Stores a uint256 `_value` at `_slot`."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/StorageSetter.sol":"StorageSetter"},"evmVersion":"london","libraries":{}},"sources":{"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/StorageSetter.sol":{"keccak256":"0x6fd8feff6ed9a3a20ed599c2b838b79f424f66ad2f3b618f4d1aebf9a867491b","urls":["bzz-raw://0df55fd09a8a9cf4e55e188fff90d623606898c123b8e21d809f206c2328455f","dweb:/ipfs/QmZWzbfkUYAxfN5eRtEpPjr6WcK86ZjsiJ8PVm7bULByPu"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"getAddress(bytes32)":{"notice":"Retrieves an address value from `_slot`."},"getBool(bytes32)":{"notice":"Retrieves a bool value from `_slot`."},"getBytes32(bytes32)":{"notice":"Retrieves a bytes32 value from `_slot`."},"getUint(bytes32)":{"notice":"Retrieves a uint256 value from `_slot`."},"setAddress(bytes32,address)":{"notice":"Stores an address `_value` at `_slot`."},"setBool(bytes32,bool)":{"notice":"Stores a bool `_value` at `_slot`."},"setBytes32((bytes32,bytes32)[])":{"notice":"Stores a bytes32 value at each key in `_slots`."},"setBytes32(bytes32,bytes32)":{"notice":"Stores a bytes32 `_value` at `_slot`. Any storage slots that are packed should be set through this interface."},"setUint(bytes32,uint256)":{"notice":"Stores a uint256 `_value` at `_slot`."},"version()":{"notice":"Semantic version."}},"notice":"A simple contract that allows setting arbitrary storage slots. WARNING: this contract is not safe to be called by untrusted parties. It is only meant as an intermediate step during upgrades."},"devdoc":{"version":1,"kind":"dev","title":"StorageSetter"},"id":231}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2235:60:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2235:60;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2235:60:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":"Strings"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"String operations."},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","id":51935,"exportedSymbols":{"Strings":[51934]},"nodeType":"SourceUnit","src":"101:2296:60","nodes":[{"id":51710,"nodeType":"PragmaDirective","src":"101:23:60","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51934,"nodeType":"ContractDefinition","src":"161:2235:60","nodes":[{"id":51714,"nodeType":"VariableDeclaration","src":"183:58:60","nodes":[],"constant":true,"mutability":"constant","name":"_HEX_SYMBOLS","nameLocation":"208:12:60","scope":51934,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":51712,"name":"bytes16","nodeType":"ElementaryTypeName","src":"183:7:60","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":51713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"223:18:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"id":51717,"nodeType":"VariableDeclaration","src":"247:43:60","nodes":[],"constant":true,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"270:15:60","scope":51934,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":51715,"name":"uint8","nodeType":"ElementaryTypeName","src":"247:5:60","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":51716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:2:60","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"id":51796,"nodeType":"FunctionDefinition","src":"392:703:60","nodes":[],"body":{"id":51795,"nodeType":"Block","src":"463:632:60","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51725,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51720,"src":"665:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"674:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"665:10:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51731,"nodeType":"IfStatement","src":"661:51:60","trueBody":{"id":51730,"nodeType":"Block","src":"677:35:60","statements":[{"expression":{"hexValue":"30","id":51728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"698:3:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":51724,"id":51729,"nodeType":"Return","src":"691:10:60"}]}},{"assignments":[51733],"declarations":[{"constant":false,"id":51733,"mutability":"mutable","name":"temp","nameLocation":"729:4:60","nodeType":"VariableDeclaration","scope":51795,"src":"721:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51732,"name":"uint256","nodeType":"ElementaryTypeName","src":"721:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51735,"initialValue":{"id":51734,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51720,"src":"736:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"721:20:60"},{"assignments":[51737],"declarations":[{"constant":false,"id":51737,"mutability":"mutable","name":"digits","nameLocation":"759:6:60","nodeType":"VariableDeclaration","scope":51795,"src":"751:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51736,"name":"uint256","nodeType":"ElementaryTypeName","src":"751:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51738,"nodeType":"VariableDeclarationStatement","src":"751:14:60"},{"body":{"id":51749,"nodeType":"Block","src":"793:57:60","statements":[{"expression":{"id":51743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"807:8:60","subExpression":{"id":51742,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"807:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51744,"nodeType":"ExpressionStatement","src":"807:8:60"},{"expression":{"id":51747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51745,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51733,"src":"829:4:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":51746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:2:60","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"829:10:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51748,"nodeType":"ExpressionStatement","src":"829:10:60"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51739,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51733,"src":"782:4:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":51740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"790:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"782:9:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51750,"nodeType":"WhileStatement","src":"775:75:60"},{"assignments":[51752],"declarations":[{"constant":false,"id":51752,"mutability":"mutable","name":"buffer","nameLocation":"872:6:60","nodeType":"VariableDeclaration","scope":51795,"src":"859:19:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":51751,"name":"bytes","nodeType":"ElementaryTypeName","src":"859:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":51757,"initialValue":{"arguments":[{"id":51755,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"891:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"881:9:60","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":51753,"name":"bytes","nodeType":"ElementaryTypeName","src":"885:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":51756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"881:17:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"859:39:60"},{"body":{"id":51788,"nodeType":"Block","src":"927:131:60","statements":[{"expression":{"id":51763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51761,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"941:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":51762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:60","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"941:11:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51764,"nodeType":"ExpressionStatement","src":"941:11:60"},{"expression":{"id":51782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51765,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51752,"src":"966:6:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":51767,"indexExpression":{"id":51766,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"973:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"966:14:60","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":51772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"996:2:60","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51775,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51720,"src":"1009:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":51776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1017:2:60","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1009:10:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1001:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":51773,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:60","typeDescriptions":{}}},"id":51778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1001:19:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"996:24:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"990:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":51770,"name":"uint8","nodeType":"ElementaryTypeName","src":"990:5:60","typeDescriptions":{}}},"id":51780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"990:31:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":51769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"983:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":51768,"name":"bytes1","nodeType":"ElementaryTypeName","src":"983:6:60","typeDescriptions":{}}},"id":51781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"983:39:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"966:56:60","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":51783,"nodeType":"ExpressionStatement","src":"966:56:60"},{"expression":{"id":51786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51784,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51720,"src":"1036:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":51785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:2:60","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1036:11:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51787,"nodeType":"ExpressionStatement","src":"1036:11:60"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51758,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51720,"src":"915:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":51759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"924:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"915:10:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51789,"nodeType":"WhileStatement","src":"908:150:60"},{"expression":{"arguments":[{"id":51792,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51752,"src":"1081:6:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":51791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1074:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":51790,"name":"string","nodeType":"ElementaryTypeName","src":"1074:6:60","typeDescriptions":{}}},"id":51793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1074:14:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":51724,"id":51794,"nodeType":"Return","src":"1067:21:60"}]},"documentation":{"id":51718,"nodeType":"StructuredDocumentation","src":"297:90:60","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"401:8:60","parameters":{"id":51721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51720,"mutability":"mutable","name":"value","nameLocation":"418:5:60","nodeType":"VariableDeclaration","scope":51796,"src":"410:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51719,"name":"uint256","nodeType":"ElementaryTypeName","src":"410:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"409:15:60"},"returnParameters":{"id":51724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51796,"src":"448:13:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51722,"name":"string","nodeType":"ElementaryTypeName","src":"448:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"447:15:60"},"scope":51934,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":51837,"nodeType":"FunctionDefinition","src":"1200:329:60","nodes":[],"body":{"id":51836,"nodeType":"Block","src":"1274:255:60","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51804,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51799,"src":"1288:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1288:10:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51810,"nodeType":"IfStatement","src":"1284:54:60","trueBody":{"id":51809,"nodeType":"Block","src":"1300:38:60","statements":[{"expression":{"hexValue":"30783030","id":51807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1321:6:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4","typeString":"literal_string \"0x00\""},"value":"0x00"},"functionReturnParameters":51803,"id":51808,"nodeType":"Return","src":"1314:13:60"}]}},{"assignments":[51812],"declarations":[{"constant":false,"id":51812,"mutability":"mutable","name":"temp","nameLocation":"1355:4:60","nodeType":"VariableDeclaration","scope":51836,"src":"1347:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51811,"name":"uint256","nodeType":"ElementaryTypeName","src":"1347:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51814,"initialValue":{"id":51813,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51799,"src":"1362:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1347:20:60"},{"assignments":[51816],"declarations":[{"constant":false,"id":51816,"mutability":"mutable","name":"length","nameLocation":"1385:6:60","nodeType":"VariableDeclaration","scope":51836,"src":"1377:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51815,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51818,"initialValue":{"hexValue":"30","id":51817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1394:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1377:18:60"},{"body":{"id":51829,"nodeType":"Block","src":"1423:57:60","statements":[{"expression":{"id":51823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1437:8:60","subExpression":{"id":51822,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51816,"src":"1437:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51824,"nodeType":"ExpressionStatement","src":"1437:8:60"},{"expression":{"id":51827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51825,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51812,"src":"1459:4:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":51826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1468:1:60","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1459:10:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51828,"nodeType":"ExpressionStatement","src":"1459:10:60"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51819,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51812,"src":"1412:4:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":51820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1420:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1412:9:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51830,"nodeType":"WhileStatement","src":"1405:75:60"},{"expression":{"arguments":[{"id":51832,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51799,"src":"1508:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":51833,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51816,"src":"1515:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51831,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[51837,51913,51933],"referencedDeclaration":51913,"src":"1496:11:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":51834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1496:26:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":51803,"id":51835,"nodeType":"Return","src":"1489:33:60"}]},"documentation":{"id":51797,"nodeType":"StructuredDocumentation","src":"1101:94:60","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1209:11:60","parameters":{"id":51800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51799,"mutability":"mutable","name":"value","nameLocation":"1229:5:60","nodeType":"VariableDeclaration","scope":51837,"src":"1221:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51798,"name":"uint256","nodeType":"ElementaryTypeName","src":"1221:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:15:60"},"returnParameters":{"id":51803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51802,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51837,"src":"1259:13:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51801,"name":"string","nodeType":"ElementaryTypeName","src":"1259:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1258:15:60"},"scope":51934,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":51913,"nodeType":"FunctionDefinition","src":"1652:441:60","nodes":[],"body":{"id":51912,"nodeType":"Block","src":"1742:351:60","nodes":[],"statements":[{"assignments":[51848],"declarations":[{"constant":false,"id":51848,"mutability":"mutable","name":"buffer","nameLocation":"1765:6:60","nodeType":"VariableDeclaration","scope":51912,"src":"1752:19:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":51847,"name":"bytes","nodeType":"ElementaryTypeName","src":"1752:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":51857,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":51851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1784:1:60","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":51852,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51842,"src":"1788:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1784:10:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":51854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1797:1:60","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1784:14:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1774:9:60","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":51849,"name":"bytes","nodeType":"ElementaryTypeName","src":"1778:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":51856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1774:25:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1752:47:60"},{"expression":{"id":51862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51858,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51848,"src":"1809:6:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":51860,"indexExpression":{"hexValue":"30","id":51859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1816:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1809:9:60","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":51861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1821:3:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1809:15:60","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":51863,"nodeType":"ExpressionStatement","src":"1809:15:60"},{"expression":{"id":51868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51864,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51848,"src":"1834:6:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":51866,"indexExpression":{"hexValue":"31","id":51865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1841:1:60","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1834:9:60","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":51867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1846:3:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1834:15:60","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":51869,"nodeType":"ExpressionStatement","src":"1834:15:60"},{"body":{"id":51898,"nodeType":"Block","src":"1904:87:60","statements":[{"expression":{"id":51892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51884,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51848,"src":"1918:6:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":51886,"indexExpression":{"id":51885,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51871,"src":"1925:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1918:9:60","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":51887,"name":"_HEX_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51714,"src":"1930:12:60","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":51891,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51888,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51840,"src":"1943:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":51889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1951:3:60","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1943:11:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1930:25:60","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1918:37:60","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":51893,"nodeType":"ExpressionStatement","src":"1918:37:60"},{"expression":{"id":51896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51894,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51840,"src":"1969:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":51895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1979:1:60","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1969:11:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51897,"nodeType":"ExpressionStatement","src":"1969:11:60"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51878,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51871,"src":"1892:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":51879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1896:1:60","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1892:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51899,"initializationExpression":{"assignments":[51871],"declarations":[{"constant":false,"id":51871,"mutability":"mutable","name":"i","nameLocation":"1872:1:60","nodeType":"VariableDeclaration","scope":51899,"src":"1864:9:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51870,"name":"uint256","nodeType":"ElementaryTypeName","src":"1864:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51877,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":51872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1876:1:60","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":51873,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51842,"src":"1880:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1876:10:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":51875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:1:60","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1876:14:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1864:26:60"},"loopExpression":{"expression":{"id":51882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1899:3:60","subExpression":{"id":51881,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51871,"src":"1901:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51883,"nodeType":"ExpressionStatement","src":"1899:3:60"},"nodeType":"ForStatement","src":"1859:132:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51901,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51840,"src":"2008:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2017:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2008:10:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":51904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2020:34:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":51900,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2000:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2000:55:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51906,"nodeType":"ExpressionStatement","src":"2000:55:60"},{"expression":{"arguments":[{"id":51909,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51848,"src":"2079:6:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":51908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2072:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":51907,"name":"string","nodeType":"ElementaryTypeName","src":"2072:6:60","typeDescriptions":{}}},"id":51910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:14:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":51846,"id":51911,"nodeType":"Return","src":"2065:21:60"}]},"documentation":{"id":51838,"nodeType":"StructuredDocumentation","src":"1535:112:60","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1661:11:60","parameters":{"id":51843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51840,"mutability":"mutable","name":"value","nameLocation":"1681:5:60","nodeType":"VariableDeclaration","scope":51913,"src":"1673:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51839,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51842,"mutability":"mutable","name":"length","nameLocation":"1696:6:60","nodeType":"VariableDeclaration","scope":51913,"src":"1688:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51841,"name":"uint256","nodeType":"ElementaryTypeName","src":"1688:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1672:31:60"},"returnParameters":{"id":51846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51845,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51913,"src":"1727:13:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51844,"name":"string","nodeType":"ElementaryTypeName","src":"1727:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1726:15:60"},"scope":51934,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":51933,"nodeType":"FunctionDefinition","src":"2245:149:60","nodes":[],"body":{"id":51932,"nodeType":"Block","src":"2318:76:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":51926,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51916,"src":"2363:4:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2355:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":51924,"name":"uint160","nodeType":"ElementaryTypeName","src":"2355:7:60","typeDescriptions":{}}},"id":51927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2355:13:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":51923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2347:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":51922,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:60","typeDescriptions":{}}},"id":51928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2347:22:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":51929,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51717,"src":"2371:15:60","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":51921,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[51837,51913,51933],"referencedDeclaration":51913,"src":"2335:11:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":51930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2335:52:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":51920,"id":51931,"nodeType":"Return","src":"2328:59:60"}]},"documentation":{"id":51914,"nodeType":"StructuredDocumentation","src":"2099:141:60","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2254:11:60","parameters":{"id":51917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51916,"mutability":"mutable","name":"addr","nameLocation":"2274:4:60","nodeType":"VariableDeclaration","scope":51933,"src":"2266:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51915,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2265:14:60"},"returnParameters":{"id":51920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51933,"src":"2303:13:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51918,"name":"string","nodeType":"ElementaryTypeName","src":"2303:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2302:15:60"},"scope":51934,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":51711,"nodeType":"StructuredDocumentation","src":"126:34:60","text":" @dev String operations."},"fullyImplemented":true,"linearizedBaseContracts":[51934],"name":"Strings","nameLocation":"169:7:60","scope":51935,"usedErrors":[]}],"license":"MIT"},"id":60}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2235:60:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2235:60;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2235:60:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":"Strings"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"String operations."},"id":60}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"161:2235:2:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2235:2;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"161:2235:2:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":"Strings"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"String operations."},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","id":535,"exportedSymbols":{"Strings":[534]},"nodeType":"SourceUnit","src":"101:2296:2","nodes":[{"id":310,"nodeType":"PragmaDirective","src":"101:23:2","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":534,"nodeType":"ContractDefinition","src":"161:2235:2","nodes":[{"id":314,"nodeType":"VariableDeclaration","src":"183:58:2","nodes":[],"constant":true,"mutability":"constant","name":"_HEX_SYMBOLS","nameLocation":"208:12:2","scope":534,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":312,"name":"bytes16","nodeType":"ElementaryTypeName","src":"183:7:2","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"223:18:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"id":317,"nodeType":"VariableDeclaration","src":"247:43:2","nodes":[],"constant":true,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"270:15:2","scope":534,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":315,"name":"uint8","nodeType":"ElementaryTypeName","src":"247:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:2:2","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"id":396,"nodeType":"FunctionDefinition","src":"392:703:2","nodes":[],"body":{"id":395,"nodeType":"Block","src":"463:632:2","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":325,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"665:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"674:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"665:10:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":331,"nodeType":"IfStatement","src":"661:51:2","trueBody":{"id":330,"nodeType":"Block","src":"677:35:2","statements":[{"expression":{"hexValue":"30","id":328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"698:3:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":324,"id":329,"nodeType":"Return","src":"691:10:2"}]}},{"assignments":[333],"declarations":[{"constant":false,"id":333,"mutability":"mutable","name":"temp","nameLocation":"729:4:2","nodeType":"VariableDeclaration","scope":395,"src":"721:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":332,"name":"uint256","nodeType":"ElementaryTypeName","src":"721:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":335,"initialValue":{"id":334,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"736:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"721:20:2"},{"assignments":[337],"declarations":[{"constant":false,"id":337,"mutability":"mutable","name":"digits","nameLocation":"759:6:2","nodeType":"VariableDeclaration","scope":395,"src":"751:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":336,"name":"uint256","nodeType":"ElementaryTypeName","src":"751:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":338,"nodeType":"VariableDeclarationStatement","src":"751:14:2"},{"body":{"id":349,"nodeType":"Block","src":"793:57:2","statements":[{"expression":{"id":343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"807:8:2","subExpression":{"id":342,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"807:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":344,"nodeType":"ExpressionStatement","src":"807:8:2"},{"expression":{"id":347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":345,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":333,"src":"829:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:2:2","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"829:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":348,"nodeType":"ExpressionStatement","src":"829:10:2"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":339,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":333,"src":"782:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"790:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"782:9:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":350,"nodeType":"WhileStatement","src":"775:75:2"},{"assignments":[352],"declarations":[{"constant":false,"id":352,"mutability":"mutable","name":"buffer","nameLocation":"872:6:2","nodeType":"VariableDeclaration","scope":395,"src":"859:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":351,"name":"bytes","nodeType":"ElementaryTypeName","src":"859:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":357,"initialValue":{"arguments":[{"id":355,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"891:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"881:9:2","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":353,"name":"bytes","nodeType":"ElementaryTypeName","src":"885:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"881:17:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"859:39:2"},{"body":{"id":388,"nodeType":"Block","src":"927:131:2","statements":[{"expression":{"id":363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":361,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"941:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"941:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":364,"nodeType":"ExpressionStatement","src":"941:11:2"},{"expression":{"id":382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":365,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"966:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":367,"indexExpression":{"id":366,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"973:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"966:14:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"996:2:2","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":375,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"1009:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1017:2:2","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1009:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1001:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":373,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:2","typeDescriptions":{}}},"id":378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1001:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"996:24:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"990:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":370,"name":"uint8","nodeType":"ElementaryTypeName","src":"990:5:2","typeDescriptions":{}}},"id":380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"990:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"983:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":368,"name":"bytes1","nodeType":"ElementaryTypeName","src":"983:6:2","typeDescriptions":{}}},"id":381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"983:39:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"966:56:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":383,"nodeType":"ExpressionStatement","src":"966:56:2"},{"expression":{"id":386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":384,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"1036:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:2:2","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1036:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":387,"nodeType":"ExpressionStatement","src":"1036:11:2"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":358,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"915:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"924:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"915:10:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":389,"nodeType":"WhileStatement","src":"908:150:2"},{"expression":{"arguments":[{"id":392,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"1081:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1074:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":390,"name":"string","nodeType":"ElementaryTypeName","src":"1074:6:2","typeDescriptions":{}}},"id":393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1074:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":324,"id":394,"nodeType":"Return","src":"1067:21:2"}]},"documentation":{"id":318,"nodeType":"StructuredDocumentation","src":"297:90:2","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"401:8:2","parameters":{"id":321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":320,"mutability":"mutable","name":"value","nameLocation":"418:5:2","nodeType":"VariableDeclaration","scope":396,"src":"410:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":319,"name":"uint256","nodeType":"ElementaryTypeName","src":"410:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"409:15:2"},"returnParameters":{"id":324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":323,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":396,"src":"448:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":322,"name":"string","nodeType":"ElementaryTypeName","src":"448:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"447:15:2"},"scope":534,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":437,"nodeType":"FunctionDefinition","src":"1200:329:2","nodes":[],"body":{"id":436,"nodeType":"Block","src":"1274:255:2","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":404,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"1288:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1288:10:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":410,"nodeType":"IfStatement","src":"1284:54:2","trueBody":{"id":409,"nodeType":"Block","src":"1300:38:2","statements":[{"expression":{"hexValue":"30783030","id":407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1321:6:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4","typeString":"literal_string \"0x00\""},"value":"0x00"},"functionReturnParameters":403,"id":408,"nodeType":"Return","src":"1314:13:2"}]}},{"assignments":[412],"declarations":[{"constant":false,"id":412,"mutability":"mutable","name":"temp","nameLocation":"1355:4:2","nodeType":"VariableDeclaration","scope":436,"src":"1347:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":411,"name":"uint256","nodeType":"ElementaryTypeName","src":"1347:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":414,"initialValue":{"id":413,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"1362:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1347:20:2"},{"assignments":[416],"declarations":[{"constant":false,"id":416,"mutability":"mutable","name":"length","nameLocation":"1385:6:2","nodeType":"VariableDeclaration","scope":436,"src":"1377:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":415,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":418,"initialValue":{"hexValue":"30","id":417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1394:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1377:18:2"},{"body":{"id":429,"nodeType":"Block","src":"1423:57:2","statements":[{"expression":{"id":423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1437:8:2","subExpression":{"id":422,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":416,"src":"1437:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":424,"nodeType":"ExpressionStatement","src":"1437:8:2"},{"expression":{"id":427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":425,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":412,"src":"1459:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1468:1:2","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1459:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":428,"nodeType":"ExpressionStatement","src":"1459:10:2"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":419,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":412,"src":"1412:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1420:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1412:9:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":430,"nodeType":"WhileStatement","src":"1405:75:2"},{"expression":{"arguments":[{"id":432,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"1508:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":433,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":416,"src":"1515:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":431,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[437,513,533],"referencedDeclaration":513,"src":"1496:11:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1496:26:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":403,"id":435,"nodeType":"Return","src":"1489:33:2"}]},"documentation":{"id":397,"nodeType":"StructuredDocumentation","src":"1101:94:2","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1209:11:2","parameters":{"id":400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":399,"mutability":"mutable","name":"value","nameLocation":"1229:5:2","nodeType":"VariableDeclaration","scope":437,"src":"1221:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":398,"name":"uint256","nodeType":"ElementaryTypeName","src":"1221:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:15:2"},"returnParameters":{"id":403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":437,"src":"1259:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":401,"name":"string","nodeType":"ElementaryTypeName","src":"1259:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1258:15:2"},"scope":534,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":513,"nodeType":"FunctionDefinition","src":"1652:441:2","nodes":[],"body":{"id":512,"nodeType":"Block","src":"1742:351:2","nodes":[],"statements":[{"assignments":[448],"declarations":[{"constant":false,"id":448,"mutability":"mutable","name":"buffer","nameLocation":"1765:6:2","nodeType":"VariableDeclaration","scope":512,"src":"1752:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":447,"name":"bytes","nodeType":"ElementaryTypeName","src":"1752:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":457,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1784:1:2","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":452,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"1788:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1784:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1797:1:2","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1784:14:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1774:9:2","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":449,"name":"bytes","nodeType":"ElementaryTypeName","src":"1778:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1752:47:2"},{"expression":{"id":462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":458,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"1809:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":460,"indexExpression":{"hexValue":"30","id":459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1816:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1809:9:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1821:3:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1809:15:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":463,"nodeType":"ExpressionStatement","src":"1809:15:2"},{"expression":{"id":468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":464,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"1834:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":466,"indexExpression":{"hexValue":"31","id":465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1841:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1834:9:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1846:3:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1834:15:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":469,"nodeType":"ExpressionStatement","src":"1834:15:2"},{"body":{"id":498,"nodeType":"Block","src":"1904:87:2","statements":[{"expression":{"id":492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":484,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"1918:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":486,"indexExpression":{"id":485,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"1925:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1918:9:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":487,"name":"_HEX_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":314,"src":"1930:12:2","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":491,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":488,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":440,"src":"1943:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1951:3:2","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1943:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1930:25:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1918:37:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":493,"nodeType":"ExpressionStatement","src":"1918:37:2"},{"expression":{"id":496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":494,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":440,"src":"1969:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1979:1:2","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1969:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":497,"nodeType":"ExpressionStatement","src":"1969:11:2"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":478,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"1892:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1896:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1892:5:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":499,"initializationExpression":{"assignments":[471],"declarations":[{"constant":false,"id":471,"mutability":"mutable","name":"i","nameLocation":"1872:1:2","nodeType":"VariableDeclaration","scope":499,"src":"1864:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":470,"name":"uint256","nodeType":"ElementaryTypeName","src":"1864:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":477,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1876:1:2","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":473,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"1880:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1876:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1876:14:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1864:26:2"},"loopExpression":{"expression":{"id":482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1899:3:2","subExpression":{"id":481,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"1901:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":483,"nodeType":"ExpressionStatement","src":"1899:3:2"},"nodeType":"ForStatement","src":"1859:132:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":501,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":440,"src":"2008:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2017:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2008:10:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2020:34:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":500,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2000:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2000:55:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":506,"nodeType":"ExpressionStatement","src":"2000:55:2"},{"expression":{"arguments":[{"id":509,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"2079:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2072:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":507,"name":"string","nodeType":"ElementaryTypeName","src":"2072:6:2","typeDescriptions":{}}},"id":510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2072:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":446,"id":511,"nodeType":"Return","src":"2065:21:2"}]},"documentation":{"id":438,"nodeType":"StructuredDocumentation","src":"1535:112:2","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1661:11:2","parameters":{"id":443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":440,"mutability":"mutable","name":"value","nameLocation":"1681:5:2","nodeType":"VariableDeclaration","scope":513,"src":"1673:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":439,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":442,"mutability":"mutable","name":"length","nameLocation":"1696:6:2","nodeType":"VariableDeclaration","scope":513,"src":"1688:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":441,"name":"uint256","nodeType":"ElementaryTypeName","src":"1688:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1672:31:2"},"returnParameters":{"id":446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":513,"src":"1727:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":444,"name":"string","nodeType":"ElementaryTypeName","src":"1727:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1726:15:2"},"scope":534,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":533,"nodeType":"FunctionDefinition","src":"2245:149:2","nodes":[],"body":{"id":532,"nodeType":"Block","src":"2318:76:2","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":526,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":516,"src":"2363:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2355:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":524,"name":"uint160","nodeType":"ElementaryTypeName","src":"2355:7:2","typeDescriptions":{}}},"id":527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2355:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2347:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":522,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:2","typeDescriptions":{}}},"id":528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2347:22:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":529,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"2371:15:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":521,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[437,513,533],"referencedDeclaration":513,"src":"2335:11:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2335:52:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":520,"id":531,"nodeType":"Return","src":"2328:59:2"}]},"documentation":{"id":514,"nodeType":"StructuredDocumentation","src":"2099:141:2","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2254:11:2","parameters":{"id":517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":516,"mutability":"mutable","name":"addr","nameLocation":"2274:4:2","nodeType":"VariableDeclaration","scope":533,"src":"2266:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":515,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2265:14:2"},"returnParameters":{"id":520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":533,"src":"2303:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":518,"name":"string","nodeType":"ElementaryTypeName","src":"2303:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2302:15:2"},"scope":534,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":311,"nodeType":"StructuredDocumentation","src":"126:34:2","text":" @dev String operations."},"fullyImplemented":true,"linearizedBaseContracts":[534],"name":"Strings","nameLocation":"169:7:2","scope":535,"usedErrors":[]}],"license":"MIT"},"id":2}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"161:2235:2:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2235:2;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000813000a","sourceMap":"161:2235:2:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":"Strings"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"String operations."},"id":2}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2246:33:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2246:33;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2246:33:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":\"StringsUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":"StringsUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"String operations."},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol","id":47072,"exportedSymbols":{"StringsUpgradeable":[47071]},"nodeType":"SourceUnit","src":"101:2307:33","nodes":[{"id":46847,"nodeType":"PragmaDirective","src":"101:23:33","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47071,"nodeType":"ContractDefinition","src":"161:2246:33","nodes":[{"id":46851,"nodeType":"VariableDeclaration","src":"194:58:33","nodes":[],"constant":true,"mutability":"constant","name":"_HEX_SYMBOLS","nameLocation":"219:12:33","scope":47071,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":46849,"name":"bytes16","nodeType":"ElementaryTypeName","src":"194:7:33","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":46850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"234:18:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"id":46854,"nodeType":"VariableDeclaration","src":"258:43:33","nodes":[],"constant":true,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"281:15:33","scope":47071,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":46852,"name":"uint8","nodeType":"ElementaryTypeName","src":"258:5:33","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":46853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"299:2:33","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"id":46933,"nodeType":"FunctionDefinition","src":"403:703:33","nodes":[],"body":{"id":46932,"nodeType":"Block","src":"474:632:33","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46862,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46857,"src":"676:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"685:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"676:10:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46868,"nodeType":"IfStatement","src":"672:51:33","trueBody":{"id":46867,"nodeType":"Block","src":"688:35:33","statements":[{"expression":{"hexValue":"30","id":46865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"709:3:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":46861,"id":46866,"nodeType":"Return","src":"702:10:33"}]}},{"assignments":[46870],"declarations":[{"constant":false,"id":46870,"mutability":"mutable","name":"temp","nameLocation":"740:4:33","nodeType":"VariableDeclaration","scope":46932,"src":"732:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46869,"name":"uint256","nodeType":"ElementaryTypeName","src":"732:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46872,"initialValue":{"id":46871,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46857,"src":"747:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"732:20:33"},{"assignments":[46874],"declarations":[{"constant":false,"id":46874,"mutability":"mutable","name":"digits","nameLocation":"770:6:33","nodeType":"VariableDeclaration","scope":46932,"src":"762:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46873,"name":"uint256","nodeType":"ElementaryTypeName","src":"762:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46875,"nodeType":"VariableDeclarationStatement","src":"762:14:33"},{"body":{"id":46886,"nodeType":"Block","src":"804:57:33","statements":[{"expression":{"id":46880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"818:8:33","subExpression":{"id":46879,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46874,"src":"818:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46881,"nodeType":"ExpressionStatement","src":"818:8:33"},{"expression":{"id":46884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":46882,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"840:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":46883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"848:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"840:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46885,"nodeType":"ExpressionStatement","src":"840:10:33"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46876,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46870,"src":"793:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":46877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"801:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"793:9:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46887,"nodeType":"WhileStatement","src":"786:75:33"},{"assignments":[46889],"declarations":[{"constant":false,"id":46889,"mutability":"mutable","name":"buffer","nameLocation":"883:6:33","nodeType":"VariableDeclaration","scope":46932,"src":"870:19:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46888,"name":"bytes","nodeType":"ElementaryTypeName","src":"870:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46894,"initialValue":{"arguments":[{"id":46892,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46874,"src":"902:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"892:9:33","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":46890,"name":"bytes","nodeType":"ElementaryTypeName","src":"896:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":46893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"892:17:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"870:39:33"},{"body":{"id":46925,"nodeType":"Block","src":"938:131:33","statements":[{"expression":{"id":46900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":46898,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46874,"src":"952:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":46899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"962:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"952:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46901,"nodeType":"ExpressionStatement","src":"952:11:33"},{"expression":{"id":46919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":46902,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46889,"src":"977:6:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":46904,"indexExpression":{"id":46903,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46874,"src":"984:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"977:14:33","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":46909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1007:2:33","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46912,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46857,"src":"1020:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":46913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1028:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1020:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1012:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46910,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:33","typeDescriptions":{}}},"id":46915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1012:19:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1007:24:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1001:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":46907,"name":"uint8","nodeType":"ElementaryTypeName","src":"1001:5:33","typeDescriptions":{}}},"id":46917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1001:31:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":46906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"994:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":46905,"name":"bytes1","nodeType":"ElementaryTypeName","src":"994:6:33","typeDescriptions":{}}},"id":46918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"994:39:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"977:56:33","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":46920,"nodeType":"ExpressionStatement","src":"977:56:33"},{"expression":{"id":46923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":46921,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46857,"src":"1047:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":46922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1056:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1047:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46924,"nodeType":"ExpressionStatement","src":"1047:11:33"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46895,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46857,"src":"926:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":46896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"935:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"926:10:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46926,"nodeType":"WhileStatement","src":"919:150:33"},{"expression":{"arguments":[{"id":46929,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46889,"src":"1092:6:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1085:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":46927,"name":"string","nodeType":"ElementaryTypeName","src":"1085:6:33","typeDescriptions":{}}},"id":46930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1085:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":46861,"id":46931,"nodeType":"Return","src":"1078:21:33"}]},"documentation":{"id":46855,"nodeType":"StructuredDocumentation","src":"308:90:33","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"412:8:33","parameters":{"id":46858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46857,"mutability":"mutable","name":"value","nameLocation":"429:5:33","nodeType":"VariableDeclaration","scope":46933,"src":"421:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46856,"name":"uint256","nodeType":"ElementaryTypeName","src":"421:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"420:15:33"},"returnParameters":{"id":46861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46860,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46933,"src":"459:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46859,"name":"string","nodeType":"ElementaryTypeName","src":"459:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"458:15:33"},"scope":47071,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46974,"nodeType":"FunctionDefinition","src":"1211:329:33","nodes":[],"body":{"id":46973,"nodeType":"Block","src":"1285:255:33","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46941,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46936,"src":"1299:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1308:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1299:10:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46947,"nodeType":"IfStatement","src":"1295:54:33","trueBody":{"id":46946,"nodeType":"Block","src":"1311:38:33","statements":[{"expression":{"hexValue":"30783030","id":46944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1332:6:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4","typeString":"literal_string \"0x00\""},"value":"0x00"},"functionReturnParameters":46940,"id":46945,"nodeType":"Return","src":"1325:13:33"}]}},{"assignments":[46949],"declarations":[{"constant":false,"id":46949,"mutability":"mutable","name":"temp","nameLocation":"1366:4:33","nodeType":"VariableDeclaration","scope":46973,"src":"1358:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46948,"name":"uint256","nodeType":"ElementaryTypeName","src":"1358:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46951,"initialValue":{"id":46950,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46936,"src":"1373:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1358:20:33"},{"assignments":[46953],"declarations":[{"constant":false,"id":46953,"mutability":"mutable","name":"length","nameLocation":"1396:6:33","nodeType":"VariableDeclaration","scope":46973,"src":"1388:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46952,"name":"uint256","nodeType":"ElementaryTypeName","src":"1388:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46955,"initialValue":{"hexValue":"30","id":46954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1405:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1388:18:33"},{"body":{"id":46966,"nodeType":"Block","src":"1434:57:33","statements":[{"expression":{"id":46960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1448:8:33","subExpression":{"id":46959,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46953,"src":"1448:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46961,"nodeType":"ExpressionStatement","src":"1448:8:33"},{"expression":{"id":46964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":46962,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46949,"src":"1470:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":46963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:1:33","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1470:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46965,"nodeType":"ExpressionStatement","src":"1470:10:33"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46956,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46949,"src":"1423:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":46957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1431:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1423:9:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46967,"nodeType":"WhileStatement","src":"1416:75:33"},{"expression":{"arguments":[{"id":46969,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46936,"src":"1519:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46970,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46953,"src":"1526:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46968,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[46974,47050,47070],"referencedDeclaration":47050,"src":"1507:11:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":46971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1507:26:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":46940,"id":46972,"nodeType":"Return","src":"1500:33:33"}]},"documentation":{"id":46934,"nodeType":"StructuredDocumentation","src":"1112:94:33","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1220:11:33","parameters":{"id":46937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46936,"mutability":"mutable","name":"value","nameLocation":"1240:5:33","nodeType":"VariableDeclaration","scope":46974,"src":"1232:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46935,"name":"uint256","nodeType":"ElementaryTypeName","src":"1232:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1231:15:33"},"returnParameters":{"id":46940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46939,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46974,"src":"1270:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46938,"name":"string","nodeType":"ElementaryTypeName","src":"1270:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1269:15:33"},"scope":47071,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":47050,"nodeType":"FunctionDefinition","src":"1663:441:33","nodes":[],"body":{"id":47049,"nodeType":"Block","src":"1753:351:33","nodes":[],"statements":[{"assignments":[46985],"declarations":[{"constant":false,"id":46985,"mutability":"mutable","name":"buffer","nameLocation":"1776:6:33","nodeType":"VariableDeclaration","scope":47049,"src":"1763:19:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46984,"name":"bytes","nodeType":"ElementaryTypeName","src":"1763:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46994,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":46988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1795:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":46989,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46979,"src":"1799:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1795:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":46991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1808:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1795:14:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1785:9:33","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":46986,"name":"bytes","nodeType":"ElementaryTypeName","src":"1789:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":46993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1785:25:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1763:47:33"},{"expression":{"id":46999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":46995,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46985,"src":"1820:6:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":46997,"indexExpression":{"hexValue":"30","id":46996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1827:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1820:9:33","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":46998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1832:3:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1820:15:33","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":47000,"nodeType":"ExpressionStatement","src":"1820:15:33"},{"expression":{"id":47005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47001,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46985,"src":"1845:6:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":47003,"indexExpression":{"hexValue":"31","id":47002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1845:9:33","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":47004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1857:3:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1845:15:33","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":47006,"nodeType":"ExpressionStatement","src":"1845:15:33"},{"body":{"id":47035,"nodeType":"Block","src":"1915:87:33","statements":[{"expression":{"id":47029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47021,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46985,"src":"1929:6:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":47023,"indexExpression":{"id":47022,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47008,"src":"1936:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1929:9:33","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":47024,"name":"_HEX_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46851,"src":"1941:12:33","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":47028,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47025,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46977,"src":"1954:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":47026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1962:3:33","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1954:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1941:25:33","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1929:37:33","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":47030,"nodeType":"ExpressionStatement","src":"1929:37:33"},{"expression":{"id":47033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47031,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46977,"src":"1980:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":47032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1990:1:33","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1980:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47034,"nodeType":"ExpressionStatement","src":"1980:11:33"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47015,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47008,"src":"1903:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":47016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1907:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1903:5:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47036,"initializationExpression":{"assignments":[47008],"declarations":[{"constant":false,"id":47008,"mutability":"mutable","name":"i","nameLocation":"1883:1:33","nodeType":"VariableDeclaration","scope":47036,"src":"1875:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1875:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47014,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":47009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1887:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":47010,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46979,"src":"1891:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1887:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":47012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1900:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1887:14:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1875:26:33"},"loopExpression":{"expression":{"id":47019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1910:3:33","subExpression":{"id":47018,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47008,"src":"1912:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47020,"nodeType":"ExpressionStatement","src":"1910:3:33"},"nodeType":"ForStatement","src":"1870:132:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47038,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46977,"src":"2019:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2028:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2019:10:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":47041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2031:34:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":47037,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2011:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2011:55:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47043,"nodeType":"ExpressionStatement","src":"2011:55:33"},{"expression":{"arguments":[{"id":47046,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46985,"src":"2090:6:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2083:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":47044,"name":"string","nodeType":"ElementaryTypeName","src":"2083:6:33","typeDescriptions":{}}},"id":47047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2083:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":46983,"id":47048,"nodeType":"Return","src":"2076:21:33"}]},"documentation":{"id":46975,"nodeType":"StructuredDocumentation","src":"1546:112:33","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1672:11:33","parameters":{"id":46980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46977,"mutability":"mutable","name":"value","nameLocation":"1692:5:33","nodeType":"VariableDeclaration","scope":47050,"src":"1684:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46976,"name":"uint256","nodeType":"ElementaryTypeName","src":"1684:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46979,"mutability":"mutable","name":"length","nameLocation":"1707:6:33","nodeType":"VariableDeclaration","scope":47050,"src":"1699:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46978,"name":"uint256","nodeType":"ElementaryTypeName","src":"1699:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1683:31:33"},"returnParameters":{"id":46983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47050,"src":"1738:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46981,"name":"string","nodeType":"ElementaryTypeName","src":"1738:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1737:15:33"},"scope":47071,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":47070,"nodeType":"FunctionDefinition","src":"2256:149:33","nodes":[],"body":{"id":47069,"nodeType":"Block","src":"2329:76:33","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":47063,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47053,"src":"2374:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2366:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":47061,"name":"uint160","nodeType":"ElementaryTypeName","src":"2366:7:33","typeDescriptions":{}}},"id":47064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2366:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":47060,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2358:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":47059,"name":"uint256","nodeType":"ElementaryTypeName","src":"2358:7:33","typeDescriptions":{}}},"id":47065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2358:22:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47066,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46854,"src":"2382:15:33","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":47058,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[46974,47050,47070],"referencedDeclaration":47050,"src":"2346:11:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":47067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2346:52:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":47057,"id":47068,"nodeType":"Return","src":"2339:59:33"}]},"documentation":{"id":47051,"nodeType":"StructuredDocumentation","src":"2110:141:33","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2265:11:33","parameters":{"id":47054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47053,"mutability":"mutable","name":"addr","nameLocation":"2285:4:33","nodeType":"VariableDeclaration","scope":47070,"src":"2277:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47052,"name":"address","nodeType":"ElementaryTypeName","src":"2277:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2276:14:33"},"returnParameters":{"id":47057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47070,"src":"2314:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47055,"name":"string","nodeType":"ElementaryTypeName","src":"2314:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2313:15:33"},"scope":47071,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"StringsUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":46848,"nodeType":"StructuredDocumentation","src":"126:34:33","text":" @dev String operations."},"fullyImplemented":true,"linearizedBaseContracts":[47071],"name":"StringsUpgradeable","nameLocation":"169:18:33","scope":47072,"usedErrors":[]}],"license":"MIT"},"id":33}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2246:33:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2246:33;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"161:2246:33:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":\"StringsUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":"StringsUpgradeable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"String operations."},"id":33}

@@ -1,1 +0,1 @@

{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Test.sol\":\"Test\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x598b85609125830885b8fb54a18f447d04f8dd799aca3de81baef35eb6b783c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9c128aae4f5668d8c8f71e9e6d9379d8451b8713d139cb66a02d23bc1c75f69\",\"dweb:/ipfs/QmVRihXHWi2yg9CcAhzKf63Y7m6gWz4P1giGMhXUHT3DFu\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765\",\"dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Test.sol":"Test"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x598b85609125830885b8fb54a18f447d04f8dd799aca3de81baef35eb6b783c0","urls":["bzz-raw://c9c128aae4f5668d8c8f71e9e6d9379d8451b8713d139cb66a02d23bc1c75f69","dweb:/ipfs/QmVRihXHWi2yg9CcAhzKf63Y7m6gWz4P1giGMhXUHT3DFu"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0","urls":["bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765","dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"},{"astId":119,"contract":"lib/forge-std/src/Test.sol:Test","label":"IS_TEST","offset":0,"slot":"7","type":"t_bool"},{"astId":121,"contract":"lib/forge-std/src/Test.sol:Test","label":"_failed","offset":1,"slot":"7","type":"t_bool"},{"astId":3878,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdChainsInitialized","offset":2,"slot":"7","type":"t_bool"},{"astId":3899,"contract":"lib/forge-std/src/Test.sol:Test","label":"chains","offset":0,"slot":"8","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)3894_storage)"},{"astId":3903,"contract":"lib/forge-std/src/Test.sol:Test","label":"defaultRpcUrls","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":3907,"contract":"lib/forge-std/src/Test.sol:Test","label":"idToAlias","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":3910,"contract":"lib/forge-std/src/Test.sol:Test","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"11","type":"t_bool"},{"astId":4650,"contract":"lib/forge-std/src/Test.sol:Test","label":"gasMeteringOff","offset":1,"slot":"11","type":"t_bool"},{"astId":6687,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdstore","offset":0,"slot":"12","type":"t_struct(StdStorage)8562_storage"},{"astId":7555,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedContracts","offset":0,"slot":"19","type":"t_array(t_address)dyn_storage"},{"astId":7558,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedSenders","offset":0,"slot":"20","type":"t_array(t_address)dyn_storage"},{"astId":7561,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":7564,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":7567,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedArtifacts","offset":0,"slot":"23","type":"t_array(t_string_storage)dyn_storage"},{"astId":7570,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedArtifacts","offset":0,"slot":"24","type":"t_array(t_string_storage)dyn_storage"},{"astId":7574,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedArtifactSelectors","offset":0,"slot":"25","type":"t_array(t_struct(FuzzSelector)7546_storage)dyn_storage"},{"astId":7578,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedSelectors","offset":0,"slot":"26","type":"t_array(t_struct(FuzzSelector)7546_storage)dyn_storage"},{"astId":7582,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedInterfaces","offset":0,"slot":"27","type":"t_array(t_struct(FuzzInterface)7552_storage)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)7552_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)7552_storage"},"t_array(t_struct(FuzzSelector)7546_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)7546_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)3894_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)3894_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)3894_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":3887,"contract":"lib/forge-std/src/Test.sol:Test","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":3889,"contract":"lib/forge-std/src/Test.sol:Test","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":3891,"contract":"lib/forge-std/src/Test.sol:Test","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":3893,"contract":"lib/forge-std/src/Test.sol:Test","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FuzzInterface)7552_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":7548,"contract":"lib/forge-std/src/Test.sol:Test","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":7551,"contract":"lib/forge-std/src/Test.sol:Test","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)7546_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":7542,"contract":"lib/forge-std/src/Test.sol:Test","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":7545,"contract":"lib/forge-std/src/Test.sol:Test","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Test.sol:Test","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Test.sol:Test","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Test.sol:Test","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Test.sol:Test","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Test.sol:Test","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Test.sol:Test","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Test.sol:Test","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/Test.sol","id":12250,"exportedSymbols":{"DSTest":[2322],"StdAssertions":[3854],"StdChains":[4618],"StdCheats":[7471],"StdInvariant":[7796],"StdStorage":[8562],"StdStyle":[11412],"StdUtils":[12198],"Test":[12249],"TestBase":[2388],"Vm":[14428],"console":[22492],"console2":[30617],"safeconsole":[44957],"stdError":[7537],"stdJson":[8388],"stdMath":[8530],"stdStorage":[10201]},"nodeType":"SourceUnit","src":"32:1126:14","nodes":[{"id":12200,"nodeType":"PragmaDirective","src":"32:31:14","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":12201,"nodeType":"PragmaDirective","src":"65:33:14","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":12203,"nodeType":"ImportDirective","src":"160:38:14","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"./console.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":22493,"symbolAliases":[{"foreign":{"id":12202,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22492,"src":"168:7:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12205,"nodeType":"ImportDirective","src":"199:40:14","nodes":[],"absolutePath":"lib/forge-std/src/console2.sol","file":"./console2.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":30618,"symbolAliases":[{"foreign":{"id":12204,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30617,"src":"207:8:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12207,"nodeType":"ImportDirective","src":"240:46:14","nodes":[],"absolutePath":"lib/forge-std/src/safeconsole.sol","file":"./safeconsole.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":44958,"symbolAliases":[{"foreign":{"id":12206,"name":"safeconsole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44957,"src":"248:11:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12209,"nodeType":"ImportDirective","src":"287:50:14","nodes":[],"absolutePath":"lib/forge-std/src/StdAssertions.sol","file":"./StdAssertions.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":3855,"symbolAliases":[{"foreign":{"id":12208,"name":"StdAssertions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"295:13:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12211,"nodeType":"ImportDirective","src":"338:42:14","nodes":[],"absolutePath":"lib/forge-std/src/StdChains.sol","file":"./StdChains.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":4619,"symbolAliases":[{"foreign":{"id":12210,"name":"StdChains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4618,"src":"346:9:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12213,"nodeType":"ImportDirective","src":"381:42:14","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"./StdCheats.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":7472,"symbolAliases":[{"foreign":{"id":12212,"name":"StdCheats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7471,"src":"389:9:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12215,"nodeType":"ImportDirective","src":"424:40:14","nodes":[],"absolutePath":"lib/forge-std/src/StdError.sol","file":"./StdError.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":7538,"symbolAliases":[{"foreign":{"id":12214,"name":"stdError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7537,"src":"432:8:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12217,"nodeType":"ImportDirective","src":"465:48:14","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"./StdInvariant.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":7797,"symbolAliases":[{"foreign":{"id":12216,"name":"StdInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7796,"src":"473:12:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12219,"nodeType":"ImportDirective","src":"514:38:14","nodes":[],"absolutePath":"lib/forge-std/src/StdJson.sol","file":"./StdJson.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":8389,"symbolAliases":[{"foreign":{"id":12218,"name":"stdJson","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8388,"src":"522:7:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12221,"nodeType":"ImportDirective","src":"553:38:14","nodes":[],"absolutePath":"lib/forge-std/src/StdMath.sol","file":"./StdMath.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":8531,"symbolAliases":[{"foreign":{"id":12220,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8530,"src":"561:7:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12224,"nodeType":"ImportDirective","src":"592:56:14","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":10202,"symbolAliases":[{"foreign":{"id":12222,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8562,"src":"600:10:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":12223,"name":"stdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10201,"src":"612:10:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12226,"nodeType":"ImportDirective","src":"649:40:14","nodes":[],"absolutePath":"lib/forge-std/src/StdStyle.sol","file":"./StdStyle.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":11413,"symbolAliases":[{"foreign":{"id":12225,"name":"StdStyle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11412,"src":"657:8:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12228,"nodeType":"ImportDirective","src":"690:40:14","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"./StdUtils.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":12199,"symbolAliases":[{"foreign":{"id":12227,"name":"StdUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12198,"src":"698:8:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12230,"nodeType":"ImportDirective","src":"731:28:14","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":14429,"symbolAliases":[{"foreign":{"id":12229,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14428,"src":"739:2:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12232,"nodeType":"ImportDirective","src":"781:36:14","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"./Base.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":2398,"symbolAliases":[{"foreign":{"id":12231,"name":"TestBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2388,"src":"789:8:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12234,"nodeType":"ImportDirective","src":"818:40:14","nodes":[],"absolutePath":"lib/forge-std/lib/ds-test/src/test.sol","file":"ds-test/test.sol","nameLocation":"-1:-1:-1","scope":12250,"sourceUnit":2323,"symbolAliases":[{"foreign":{"id":12233,"name":"DSTest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2322,"src":"826:6:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12249,"nodeType":"ContractDefinition","src":"875:282:14","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":12235,"name":"TestBase","nodeType":"IdentifierPath","referencedDeclaration":2388,"src":"901:8:14"},"id":12236,"nodeType":"InheritanceSpecifier","src":"901:8:14"},{"baseName":{"id":12237,"name":"DSTest","nodeType":"IdentifierPath","referencedDeclaration":2322,"src":"911:6:14"},"id":12238,"nodeType":"InheritanceSpecifier","src":"911:6:14"},{"baseName":{"id":12239,"name":"StdAssertions","nodeType":"IdentifierPath","referencedDeclaration":3854,"src":"919:13:14"},"id":12240,"nodeType":"InheritanceSpecifier","src":"919:13:14"},{"baseName":{"id":12241,"name":"StdChains","nodeType":"IdentifierPath","referencedDeclaration":4618,"src":"934:9:14"},"id":12242,"nodeType":"InheritanceSpecifier","src":"934:9:14"},{"baseName":{"id":12243,"name":"StdCheats","nodeType":"IdentifierPath","referencedDeclaration":7471,"src":"945:9:14"},"id":12244,"nodeType":"InheritanceSpecifier","src":"945:9:14"},{"baseName":{"id":12245,"name":"StdInvariant","nodeType":"IdentifierPath","referencedDeclaration":7796,"src":"956:12:14"},"id":12246,"nodeType":"InheritanceSpecifier","src":"956:12:14"},{"baseName":{"id":12247,"name":"StdUtils","nodeType":"IdentifierPath","referencedDeclaration":12198,"src":"970:8:14"},"id":12248,"nodeType":"InheritanceSpecifier","src":"970:8:14"}],"canonicalName":"Test","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[12249,12198,7796,7471,6678,4618,3854,2322,2388,2385],"name":"Test","nameLocation":"893:4:14","scope":12250,"usedErrors":[]}],"license":"MIT"},"id":14}
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Test.sol\":\"Test\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x598b85609125830885b8fb54a18f447d04f8dd799aca3de81baef35eb6b783c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9c128aae4f5668d8c8f71e9e6d9379d8451b8713d139cb66a02d23bc1c75f69\",\"dweb:/ipfs/QmVRihXHWi2yg9CcAhzKf63Y7m6gWz4P1giGMhXUHT3DFu\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765\",\"dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/Test.sol":"Test"},"evmVersion":"london","libraries":{}},"sources":{"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x598b85609125830885b8fb54a18f447d04f8dd799aca3de81baef35eb6b783c0","urls":["bzz-raw://c9c128aae4f5668d8c8f71e9e6d9379d8451b8713d139cb66a02d23bc1c75f69","dweb:/ipfs/QmVRihXHWi2yg9CcAhzKf63Y7m6gWz4P1giGMhXUHT3DFu"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0","urls":["bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765","dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":2384,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)8562_storage"},{"astId":119,"contract":"lib/forge-std/src/Test.sol:Test","label":"IS_TEST","offset":0,"slot":"7","type":"t_bool"},{"astId":121,"contract":"lib/forge-std/src/Test.sol:Test","label":"_failed","offset":1,"slot":"7","type":"t_bool"},{"astId":3878,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdChainsInitialized","offset":2,"slot":"7","type":"t_bool"},{"astId":3899,"contract":"lib/forge-std/src/Test.sol:Test","label":"chains","offset":0,"slot":"8","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)3894_storage)"},{"astId":3903,"contract":"lib/forge-std/src/Test.sol:Test","label":"defaultRpcUrls","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":3907,"contract":"lib/forge-std/src/Test.sol:Test","label":"idToAlias","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":3910,"contract":"lib/forge-std/src/Test.sol:Test","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"11","type":"t_bool"},{"astId":4650,"contract":"lib/forge-std/src/Test.sol:Test","label":"gasMeteringOff","offset":1,"slot":"11","type":"t_bool"},{"astId":6687,"contract":"lib/forge-std/src/Test.sol:Test","label":"stdstore","offset":0,"slot":"12","type":"t_struct(StdStorage)8562_storage"},{"astId":7555,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedContracts","offset":0,"slot":"19","type":"t_array(t_address)dyn_storage"},{"astId":7558,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedSenders","offset":0,"slot":"20","type":"t_array(t_address)dyn_storage"},{"astId":7561,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":7564,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":7567,"contract":"lib/forge-std/src/Test.sol:Test","label":"_excludedArtifacts","offset":0,"slot":"23","type":"t_array(t_string_storage)dyn_storage"},{"astId":7570,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedArtifacts","offset":0,"slot":"24","type":"t_array(t_string_storage)dyn_storage"},{"astId":7574,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedArtifactSelectors","offset":0,"slot":"25","type":"t_array(t_struct(FuzzSelector)7546_storage)dyn_storage"},{"astId":7578,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedSelectors","offset":0,"slot":"26","type":"t_array(t_struct(FuzzSelector)7546_storage)dyn_storage"},{"astId":7582,"contract":"lib/forge-std/src/Test.sol:Test","label":"_targetedInterfaces","offset":0,"slot":"27","type":"t_array(t_struct(FuzzInterface)7552_storage)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)7552_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)7552_storage"},"t_array(t_struct(FuzzSelector)7546_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)7546_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)3894_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)3894_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)3894_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":3887,"contract":"lib/forge-std/src/Test.sol:Test","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":3889,"contract":"lib/forge-std/src/Test.sol:Test","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":3891,"contract":"lib/forge-std/src/Test.sol:Test","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":3893,"contract":"lib/forge-std/src/Test.sol:Test","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FuzzInterface)7552_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":7548,"contract":"lib/forge-std/src/Test.sol:Test","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":7551,"contract":"lib/forge-std/src/Test.sol:Test","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)7546_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":7542,"contract":"lib/forge-std/src/Test.sol:Test","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":7545,"contract":"lib/forge-std/src/Test.sol:Test","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)8562_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"224","members":[{"astId":8542,"contract":"lib/forge-std/src/Test.sol:Test","label":"slots","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_uint256)))"},{"astId":8550,"contract":"lib/forge-std/src/Test.sol:Test","label":"finds","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_bool)))"},{"astId":8553,"contract":"lib/forge-std/src/Test.sol:Test","label":"_keys","offset":0,"slot":"2","type":"t_array(t_bytes32)dyn_storage"},{"astId":8555,"contract":"lib/forge-std/src/Test.sol:Test","label":"_sig","offset":0,"slot":"3","type":"t_bytes4"},{"astId":8557,"contract":"lib/forge-std/src/Test.sol:Test","label":"_depth","offset":0,"slot":"4","type":"t_uint256"},{"astId":8559,"contract":"lib/forge-std/src/Test.sol:Test","label":"_target","offset":0,"slot":"5","type":"t_address"},{"astId":8561,"contract":"lib/forge-std/src/Test.sol:Test","label":"_set","offset":0,"slot":"6","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":14}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"originalOwner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"isValidSignature","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"magicValue","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50604051610a13380380610a1383398101604081905261002f91610171565b61003833610047565b61004181610097565b506101a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61009f610115565b6001600160a01b0381166101095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61011281610047565b50565b6000546001600160a01b0316331461016f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610100565b565b60006020828403121561018357600080fd5b81516001600160a01b038116811461019a57600080fd5b9392505050565b610863806101b06000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631626ba7e14610051578063715018a61461009a5780638da5cb5b146100a4578063f2fde38b146100cc575b600080fd5b61006461005f366004610718565b6100df565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100a261014e565b005b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610091565b6100a26100da3660046107f1565b610162565b6000805473ffffffffffffffffffffffffffffffffffffffff16610103848461021e565b73ffffffffffffffffffffffffffffffffffffffff1614610125576000610147565b7f1626ba7e000000000000000000000000000000000000000000000000000000005b9392505050565b610156610242565b61016060006102c3565b565b61016a610242565b73ffffffffffffffffffffffffffffffffffffffff8116610212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61021b816102c3565b50565b600080600061022d8585610338565b9150915061023a8161037d565b509392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610209565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080825160410361036e5760208301516040840151606085015160001a610362878285856105d1565b94509450505050610376565b506000905060025b9250929050565b600081600481111561039157610391610827565b036103995750565b60018160048111156103ad576103ad610827565b03610414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610209565b600281600481111561042857610428610827565b0361048f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610209565b60038160048111156104a3576104a3610827565b03610530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610209565b600481600481111561054457610544610827565b0361021b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610209565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561060857506000905060036106e0565b8460ff16601b1415801561062057508460ff16601c14155b1561063157506000905060046106e0565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610685573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166106d9576000600192509250506106e0565b9150600090505b94509492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561072b57600080fd5b82359150602083013567ffffffffffffffff8082111561074a57600080fd5b818501915085601f83011261075e57600080fd5b813581811115610770576107706106e9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156107b6576107b66106e9565b816040528281528860208487010111156107cf57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561080357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461014757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a","sourceMap":"502:369:300:-:0;;;556:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:38;719:10:58;936:18:38;:32::i;:::-;601::300;619:13;601:17;:32::i;:::-;556:84;502:369;;2433:187:38;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:38;;;-1:-1:-1;;;;;;2541:17:38;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2081:198::-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:38;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:38;;511:2:334;2161:73:38::1;::::0;::::1;493:21:334::0;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:334;;;633:36;686:19;;2161:73:38::1;;;;;;;;;2244:28;2263:8:::0;2244:18:::1;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:38;719:10:58;1422:23:38;1414:68;;;;-1:-1:-1;;;1414:68:38;;918:2:334;1414:68:38;;;900:21:334;;;937:18;;;930:30;996:34;976:18;;;969:62;1048:18;;1414:68:38;716:356:334;1414:68:38;1359:130::o;14:290:334:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:334;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:334:o;716:356::-;502:369:300;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631626ba7e14610051578063715018a61461009a5780638da5cb5b146100a4578063f2fde38b146100cc575b600080fd5b61006461005f366004610718565b6100df565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100a261014e565b005b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610091565b6100a26100da3660046107f1565b610162565b6000805473ffffffffffffffffffffffffffffffffffffffff16610103848461021e565b73ffffffffffffffffffffffffffffffffffffffff1614610125576000610147565b7f1626ba7e000000000000000000000000000000000000000000000000000000005b9392505050565b610156610242565b61016060006102c3565b565b61016a610242565b73ffffffffffffffffffffffffffffffffffffffff8116610212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61021b816102c3565b50565b600080600061022d8585610338565b9150915061023a8161037d565b509392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610209565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080825160410361036e5760208301516040840151606085015160001a610362878285856105d1565b94509450505050610376565b506000905060025b9250929050565b600081600481111561039157610391610827565b036103995750565b60018160048111156103ad576103ad610827565b03610414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610209565b600281600481111561042857610428610827565b0361048f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610209565b60038160048111156104a3576104a3610827565b03610530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610209565b600481600481111561054457610544610827565b0361021b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610209565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561060857506000905060036106e0565b8460ff16601b1415801561062057508460ff16601c14155b1561063157506000905060046106e0565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610685573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166106d9576000600192509250506106e0565b9150600090505b94509492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561072b57600080fd5b82359150602083013567ffffffffffffffff8082111561074a57600080fd5b818501915085601f83011261075e57600080fd5b813581811115610770576107706106e9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156107b6576107b66106e9565b816040528281528860208487010111156107cf57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561080357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461014757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a","sourceMap":"502:369:300:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;646:223;;;;;;:::i;:::-;;:::i;:::-;;;1430:66:334;1418:79;;;1400:98;;1388:2;1373:18;646:223:300;;;;;;;;1831:101:38;;;:::i;:::-;;1201:85;1247:7;1273:6;1201:85;;1273:6;;;;1655:74:334;;1643:2;1628:18;1201:85:38;1509:226:334;2081:198:38;;;;;;:::i;:::-;;:::i;646:223:300:-;740:17;1273:6:38;;;;776:30:300;790:4;796:9;776:13;:30::i;:::-;:41;;;:86;;860:1;776:86;;;820:30;776:86;769:93;646:223;-1:-1:-1;;;646:223:300:o;1831:101:38:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2081:198::-;1094:13;:11;:13::i;:::-;2169:22:::1;::::0;::::1;2161:73;;;::::0;::::1;::::0;;2256:2:334;2161:73:38::1;::::0;::::1;2238:21:334::0;2295:2;2275:18;;;2268:30;2334:34;2314:18;;;2307:62;2405:8;2385:18;;;2378:36;2431:19;;2161:73:38::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;3759:227:61:-;3837:7;3857:17;3876:18;3898:27;3909:4;3915:9;3898:10;:27::i;:::-;3856:69;;;;3935:18;3947:5;3935:11;:18::i;:::-;-1:-1:-1;3970:9:61;3759:227;-1:-1:-1;;;3759:227:61:o;1359:130:38:-;1247:7;1273:6;1422:23;1273:6;719:10:58;1422:23:38;1414:68;;;;;;;2663:2:334;1414:68:38;;;2645:21:334;;;2682:18;;;2675:30;2741:34;2721:18;;;2714:62;2793:18;;1414:68:38;2461:356:334;2433:187:38;2506:16;2525:6;;;2541:17;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2243:730:61:-;2324:7;2333:12;2361:9;:16;2381:2;2361:22;2357:610;;2697:4;2682:20;;2676:27;2746:4;2731:20;;2725:27;2803:4;2788:20;;2782:27;2399:9;2774:36;2844:25;2855:4;2774:36;2676:27;2725;2844:10;:25::i;:::-;2837:32;;;;;;;;;2357:610;-1:-1:-1;2916:1:61;;-1:-1:-1;2920:35:61;2357:610;2243:730;;;;;:::o;548:631::-;625:20;616:5;:29;;;;;;;;:::i;:::-;;612:561;;548:631;:::o;612:561::-;721:29;712:5;:38;;;;;;;;:::i;:::-;;708:465;;766:34;;;;;3213:2:334;766:34:61;;;3195:21:334;3252:2;3232:18;;;3225:30;3291:26;3271:18;;;3264:54;3335:18;;766:34:61;3011:348:334;708:465:61;830:35;821:5;:44;;;;;;;;:::i;:::-;;817:356;;881:41;;;;;3566:2:334;881:41:61;;;3548:21:334;3605:2;3585:18;;;3578:30;3644:33;3624:18;;;3617:61;3695:18;;881:41:61;3364:355:334;817:356:61;952:30;943:5;:39;;;;;;;;:::i;:::-;;939:234;;998:44;;;;;3926:2:334;998:44:61;;;3908:21:334;3965:2;3945:18;;;3938:30;4004:34;3984:18;;;3977:62;4075:4;4055:18;;;4048:32;4097:19;;998:44:61;3724:398:334;939:234:61;1072:30;1063:5;:39;;;;;;;;:::i;:::-;;1059:114;;1118:44;;;;;4329:2:334;1118:44:61;;;4311:21:334;4368:2;4348:18;;;4341:30;4407:34;4387:18;;;4380:62;4478:4;4458:18;;;4451:32;4500:19;;1118:44:61;4127:398:334;5167:1603:61;5293:7;;6217:66;6204:79;;6200:161;;;-1:-1:-1;6315:1:61;;-1:-1:-1;6319:30:61;6299:51;;6200:161;6374:1;:7;;6379:2;6374:7;;:18;;;;;6385:1;:7;;6390:2;6385:7;;6374:18;6370:100;;;-1:-1:-1;6424:1:61;;-1:-1:-1;6428:30:61;6408:51;;6370:100;6581:24;;;6564:14;6581:24;;;;;;;;;4757:25:334;;;4830:4;4818:17;;4798:18;;;4791:45;;;;4852:18;;;4845:34;;;4895:18;;;4888:34;;;6581:24:61;;4729:19:334;;6581:24:61;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6581:24:61;;;;;;-1:-1:-1;;6619:20:61;;;6615:101;;6671:1;6675:29;6655:50;;;;;;;6615:101;6734:6;-1:-1:-1;6742:20:61;;-1:-1:-1;5167:1603:61;;;;;;;;:::o;14:184:334:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:1048;280:6;288;341:2;329:9;320:7;316:23;312:32;309:52;;;357:1;354;347:12;309:52;393:9;380:23;370:33;;454:2;443:9;439:18;426:32;477:18;518:2;510:6;507:14;504:34;;;534:1;531;524:12;504:34;572:6;561:9;557:22;547:32;;617:7;610:4;606:2;602:13;598:27;588:55;;639:1;636;629:12;588:55;675:2;662:16;697:2;693;690:10;687:36;;;703:18;;:::i;:::-;837:2;831:9;899:4;891:13;;742:66;887:22;;;911:2;883:31;879:40;867:53;;;935:18;;;955:22;;;932:46;929:72;;;981:18;;:::i;:::-;1021:10;1017:2;1010:22;1056:2;1048:6;1041:18;1096:7;1091:2;1086;1082;1078:11;1074:20;1071:33;1068:53;;;1117:1;1114;1107:12;1068:53;1173:2;1168;1164;1160:11;1155:2;1147:6;1143:15;1130:46;1218:1;1213:2;1208;1200:6;1196:15;1192:24;1185:35;1239:6;1229:16;;;;;;;203:1048;;;;;:::o;1740:309::-;1799:6;1852:2;1840:9;1831:7;1827:23;1823:32;1820:52;;;1868:1;1865;1858:12;1820:52;1907:9;1894:23;1957:42;1950:5;1946:54;1939:5;1936:65;1926:93;;2015:1;2012;2005:12;2822:184;2874:77;2871:1;2864:88;2971:4;2968:1;2961:15;2995:4;2992:1;2985:15","linkReferences":{}},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"originalOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided data\",\"params\":{\"hash\":\"Hash of the data to be signed\",\"signature\":\"Signature byte array associated with _data\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple ERC1271 wallet that can be used to test the ERC1271 signature checker.https://github.com/OpenZeppelin/openzeppelin-contracts/ blob/master/contracts/mocks/ERC1271WalletMock.sol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/TestERC1271Wallet.sol\":\"TestERC1271Wallet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"test/mocks/TestERC1271Wallet.sol\":{\"keccak256\":\"0x1dcd18b69025ced00b92bf4dd1cf1323a75da69113bc6dc1a56692aed02a6d5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://339ad51defe256385672ffed3516cdea6033d7e9661640d0948bd60e48b31e23\",\"dweb:/ipfs/QmdCRDxS1j1P8AJkhTWX1CzGnKu49oQYPBPbQzybeEmb19\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"originalOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/TestERC1271Wallet.sol":"TestERC1271Wallet"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"test/mocks/TestERC1271Wallet.sol":{"keccak256":"0x1dcd18b69025ced00b92bf4dd1cf1323a75da69113bc6dc1a56692aed02a6d5f","urls":["bzz-raw://339ad51defe256385672ffed3516cdea6033d7e9661640d0948bd60e48b31e23","dweb:/ipfs/QmdCRDxS1j1P8AJkhTWX1CzGnKu49oQYPBPbQzybeEmb19"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"test/mocks/TestERC1271Wallet.sol:TestERC1271Wallet","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","notice":"Simple ERC1271 wallet that can be used to test the ERC1271 signature checker.https://github.com/OpenZeppelin/openzeppelin-contracts/ blob/master/contracts/mocks/ERC1271WalletMock.sol"},"devdoc":{"version":1,"kind":"dev","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"ast":{"absolutePath":"test/mocks/TestERC1271Wallet.sol","id":173699,"exportedSymbols":{"ECDSA":[52322],"IERC1271":[47870],"Ownable":[47778],"TestERC1271Wallet":[173698]},"nodeType":"SourceUnit","src":"32:840:300","nodes":[{"id":173648,"nodeType":"PragmaDirective","src":"32:23:300","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":173650,"nodeType":"ImportDirective","src":"57:69:300","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":173699,"sourceUnit":47779,"symbolAliases":[{"foreign":{"id":173649,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47778,"src":"66:7:300","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":173652,"nodeType":"ImportDirective","src":"127:75:300","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","file":"@openzeppelin/contracts/interfaces/IERC1271.sol","nameLocation":"-1:-1:-1","scope":173699,"sourceUnit":47871,"symbolAliases":[{"foreign":{"id":173651,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47870,"src":"136:8:300","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":173654,"nodeType":"ImportDirective","src":"203:77:300","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":173699,"sourceUnit":52323,"symbolAliases":[{"foreign":{"id":173653,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52322,"src":"212:5:300","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":173698,"nodeType":"ContractDefinition","src":"502:369:300","nodes":[{"id":173669,"nodeType":"FunctionDefinition","src":"556:84:300","nodes":[],"body":{"id":173668,"nodeType":"Block","src":"591:49:300","nodes":[],"statements":[{"expression":{"arguments":[{"id":173665,"name":"originalOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173661,"src":"619:13:300","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":173664,"name":"transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47757,"src":"601:17:300","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":173666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"601:32:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173667,"nodeType":"ExpressionStatement","src":"601:32:300"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173661,"mutability":"mutable","name":"originalOwner","nameLocation":"576:13:300","nodeType":"VariableDeclaration","scope":173669,"src":"568:21:300","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173660,"name":"address","nodeType":"ElementaryTypeName","src":"568:7:300","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"567:23:300"},"returnParameters":{"id":173663,"nodeType":"ParameterList","parameters":[],"src":"591:0:300"},"scope":173698,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":173697,"nodeType":"FunctionDefinition","src":"646:223:300","nodes":[],"body":{"id":173696,"nodeType":"Block","src":"759:110:300","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":173686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":173681,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173671,"src":"790:4:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":173682,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173673,"src":"796:9:300","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":173679,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52322,"src":"776:5:300","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$52322_$","typeString":"type(library ECDSA)"}},"id":173680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":52071,"src":"776:13:300","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":173683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"776:30:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":173684,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"810:5:300","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":173685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"810:7:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"776:41:300","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"hexValue":"30","id":173692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"860:1:300","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":173691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"853:6:300","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":173690,"name":"bytes4","nodeType":"ElementaryTypeName","src":"853:6:300","typeDescriptions":{}}},"id":173693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"853:9:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":173694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"776:86:300","trueExpression":{"expression":{"expression":{"id":173687,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"820:4:300","typeDescriptions":{"typeIdentifier":"t_contract$_TestERC1271Wallet_$173698","typeString":"contract TestERC1271Wallet"}},"id":173688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":173697,"src":"820:21:300","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (bytes32,bytes memory) view external returns (bytes4)"}},"id":173689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"820:30:300","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":173678,"id":173695,"nodeType":"Return","src":"769:93:300"}]},"baseFunctions":[47869],"functionSelector":"1626ba7e","implemented":true,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"655:16:300","overrides":{"id":173675,"nodeType":"OverrideSpecifier","overrides":[],"src":"722:8:300"},"parameters":{"id":173674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173671,"mutability":"mutable","name":"hash","nameLocation":"680:4:300","nodeType":"VariableDeclaration","scope":173697,"src":"672:12:300","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173670,"name":"bytes32","nodeType":"ElementaryTypeName","src":"672:7:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":173673,"mutability":"mutable","name":"signature","nameLocation":"699:9:300","nodeType":"VariableDeclaration","scope":173697,"src":"686:22:300","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173672,"name":"bytes","nodeType":"ElementaryTypeName","src":"686:5:300","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"671:38:300"},"returnParameters":{"id":173678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173677,"mutability":"mutable","name":"magicValue","nameLocation":"747:10:300","nodeType":"VariableDeclaration","scope":173697,"src":"740:17:300","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":173676,"name":"bytes4","nodeType":"ElementaryTypeName","src":"740:6:300","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"739:19:300"},"scope":173698,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":173656,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":47778,"src":"532:7:300"},"id":173657,"nodeType":"InheritanceSpecifier","src":"532:7:300"},{"baseName":{"id":173658,"name":"IERC1271","nodeType":"IdentifierPath","referencedDeclaration":47870,"src":"541:8:300"},"id":173659,"nodeType":"InheritanceSpecifier","src":"541:8:300"}],"canonicalName":"TestERC1271Wallet","contractDependencies":[],"contractKind":"contract","documentation":{"id":173655,"nodeType":"StructuredDocumentation","src":"282:220:300","text":"@notice Simple ERC1271 wallet that can be used to test the ERC1271 signature checker.\n @notice https://github.com/OpenZeppelin/openzeppelin-contracts/\n blob/master/contracts/mocks/ERC1271WalletMock.sol"},"fullyImplemented":true,"linearizedBaseContracts":[173698,47870,47778,51634],"name":"TestERC1271Wallet","nameLocation":"511:17:300","scope":173699,"usedErrors":[]}],"license":"MIT"},"id":300}
{"abi":[{"type":"constructor","inputs":[{"name":"originalOwner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"isValidSignature","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"magicValue","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50604051610a13380380610a1383398101604081905261002f91610171565b61003833610047565b61004181610097565b506101a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61009f610115565b6001600160a01b0381166101095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61011281610047565b50565b6000546001600160a01b0316331461016f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610100565b565b60006020828403121561018357600080fd5b81516001600160a01b038116811461019a57600080fd5b9392505050565b610863806101b06000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631626ba7e14610051578063715018a61461009a5780638da5cb5b146100a4578063f2fde38b146100cc575b600080fd5b61006461005f366004610718565b6100df565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100a261014e565b005b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610091565b6100a26100da3660046107f1565b610162565b6000805473ffffffffffffffffffffffffffffffffffffffff16610103848461021e565b73ffffffffffffffffffffffffffffffffffffffff1614610125576000610147565b7f1626ba7e000000000000000000000000000000000000000000000000000000005b9392505050565b610156610242565b61016060006102c3565b565b61016a610242565b73ffffffffffffffffffffffffffffffffffffffff8116610212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61021b816102c3565b50565b600080600061022d8585610338565b9150915061023a8161037d565b509392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610209565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080825160410361036e5760208301516040840151606085015160001a610362878285856105d1565b94509450505050610376565b506000905060025b9250929050565b600081600481111561039157610391610827565b036103995750565b60018160048111156103ad576103ad610827565b03610414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610209565b600281600481111561042857610428610827565b0361048f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610209565b60038160048111156104a3576104a3610827565b03610530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610209565b600481600481111561054457610544610827565b0361021b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610209565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561060857506000905060036106e0565b8460ff16601b1415801561062057508460ff16601c14155b1561063157506000905060046106e0565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610685573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166106d9576000600192509250506106e0565b9150600090505b94509492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561072b57600080fd5b82359150602083013567ffffffffffffffff8082111561074a57600080fd5b818501915085601f83011261075e57600080fd5b813581811115610770576107706106e9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156107b6576107b66106e9565b816040528281528860208487010111156107cf57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561080357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461014757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a","sourceMap":"502:369:316:-:0;;;556:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:38;719:10:58;936:18:38;:32::i;:::-;601::316;619:13;601:17;:32::i;:::-;556:84;502:369;;2433:187:38;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:38;;;-1:-1:-1;;;;;;2541:17:38;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2081:198::-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:38;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:38;;511:2:350;2161:73:38::1;::::0;::::1;493:21:350::0;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:350;;;633:36;686:19;;2161:73:38::1;;;;;;;;;2244:28;2263:8:::0;2244:18:::1;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:38;719:10:58;1422:23:38;1414:68;;;;-1:-1:-1;;;1414:68:38;;918:2:350;1414:68:38;;;900:21:350;;;937:18;;;930:30;996:34;976:18;;;969:62;1048:18;;1414:68:38;716:356:350;1414:68:38;1359:130::o;14:290:350:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:350;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:350:o;716:356::-;502:369:316;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631626ba7e14610051578063715018a61461009a5780638da5cb5b146100a4578063f2fde38b146100cc575b600080fd5b61006461005f366004610718565b6100df565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100a261014e565b005b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610091565b6100a26100da3660046107f1565b610162565b6000805473ffffffffffffffffffffffffffffffffffffffff16610103848461021e565b73ffffffffffffffffffffffffffffffffffffffff1614610125576000610147565b7f1626ba7e000000000000000000000000000000000000000000000000000000005b9392505050565b610156610242565b61016060006102c3565b565b61016a610242565b73ffffffffffffffffffffffffffffffffffffffff8116610212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61021b816102c3565b50565b600080600061022d8585610338565b9150915061023a8161037d565b509392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610209565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080825160410361036e5760208301516040840151606085015160001a610362878285856105d1565b94509450505050610376565b506000905060025b9250929050565b600081600481111561039157610391610827565b036103995750565b60018160048111156103ad576103ad610827565b03610414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610209565b600281600481111561042857610428610827565b0361048f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610209565b60038160048111156104a3576104a3610827565b03610530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610209565b600481600481111561054457610544610827565b0361021b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610209565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561060857506000905060036106e0565b8460ff16601b1415801561062057508460ff16601c14155b1561063157506000905060046106e0565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610685573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166106d9576000600192509250506106e0565b9150600090505b94509492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561072b57600080fd5b82359150602083013567ffffffffffffffff8082111561074a57600080fd5b818501915085601f83011261075e57600080fd5b813581811115610770576107706106e9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156107b6576107b66106e9565b816040528281528860208487010111156107cf57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561080357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461014757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a","sourceMap":"502:369:316:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;646:223;;;;;;:::i;:::-;;:::i;:::-;;;1430:66:350;1418:79;;;1400:98;;1388:2;1373:18;646:223:316;;;;;;;;1831:101:38;;;:::i;:::-;;1201:85;1247:7;1273:6;1201:85;;1273:6;;;;1655:74:350;;1643:2;1628:18;1201:85:38;1509:226:350;2081:198:38;;;;;;:::i;:::-;;:::i;646:223:316:-;740:17;1273:6:38;;;;776:30:316;790:4;796:9;776:13;:30::i;:::-;:41;;;:86;;860:1;776:86;;;820:30;776:86;769:93;646:223;-1:-1:-1;;;646:223:316:o;1831:101:38:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2081:198::-;1094:13;:11;:13::i;:::-;2169:22:::1;::::0;::::1;2161:73;;;::::0;::::1;::::0;;2256:2:350;2161:73:38::1;::::0;::::1;2238:21:350::0;2295:2;2275:18;;;2268:30;2334:34;2314:18;;;2307:62;2405:8;2385:18;;;2378:36;2431:19;;2161:73:38::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;3759:227:61:-;3837:7;3857:17;3876:18;3898:27;3909:4;3915:9;3898:10;:27::i;:::-;3856:69;;;;3935:18;3947:5;3935:11;:18::i;:::-;-1:-1:-1;3970:9:61;3759:227;-1:-1:-1;;;3759:227:61:o;1359:130:38:-;1247:7;1273:6;1422:23;1273:6;719:10:58;1422:23:38;1414:68;;;;;;;2663:2:350;1414:68:38;;;2645:21:350;;;2682:18;;;2675:30;2741:34;2721:18;;;2714:62;2793:18;;1414:68:38;2461:356:350;2433:187:38;2506:16;2525:6;;;2541:17;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2243:730:61:-;2324:7;2333:12;2361:9;:16;2381:2;2361:22;2357:610;;2697:4;2682:20;;2676:27;2746:4;2731:20;;2725:27;2803:4;2788:20;;2782:27;2399:9;2774:36;2844:25;2855:4;2774:36;2676:27;2725;2844:10;:25::i;:::-;2837:32;;;;;;;;;2357:610;-1:-1:-1;2916:1:61;;-1:-1:-1;2920:35:61;2357:610;2243:730;;;;;:::o;548:631::-;625:20;616:5;:29;;;;;;;;:::i;:::-;;612:561;;548:631;:::o;612:561::-;721:29;712:5;:38;;;;;;;;:::i;:::-;;708:465;;766:34;;;;;3213:2:350;766:34:61;;;3195:21:350;3252:2;3232:18;;;3225:30;3291:26;3271:18;;;3264:54;3335:18;;766:34:61;3011:348:350;708:465:61;830:35;821:5;:44;;;;;;;;:::i;:::-;;817:356;;881:41;;;;;3566:2:350;881:41:61;;;3548:21:350;3605:2;3585:18;;;3578:30;3644:33;3624:18;;;3617:61;3695:18;;881:41:61;3364:355:350;817:356:61;952:30;943:5;:39;;;;;;;;:::i;:::-;;939:234;;998:44;;;;;3926:2:350;998:44:61;;;3908:21:350;3965:2;3945:18;;;3938:30;4004:34;3984:18;;;3977:62;4075:4;4055:18;;;4048:32;4097:19;;998:44:61;3724:398:350;939:234:61;1072:30;1063:5;:39;;;;;;;;:::i;:::-;;1059:114;;1118:44;;;;;4329:2:350;1118:44:61;;;4311:21:350;4368:2;4348:18;;;4341:30;4407:34;4387:18;;;4380:62;4478:4;4458:18;;;4451:32;4500:19;;1118:44:61;4127:398:350;5167:1603:61;5293:7;;6217:66;6204:79;;6200:161;;;-1:-1:-1;6315:1:61;;-1:-1:-1;6319:30:61;6299:51;;6200:161;6374:1;:7;;6379:2;6374:7;;:18;;;;;6385:1;:7;;6390:2;6385:7;;6374:18;6370:100;;;-1:-1:-1;6424:1:61;;-1:-1:-1;6428:30:61;6408:51;;6370:100;6581:24;;;6564:14;6581:24;;;;;;;;;4757:25:350;;;4830:4;4818:17;;4798:18;;;4791:45;;;;4852:18;;;4845:34;;;4895:18;;;4888:34;;;6581:24:61;;4729:19:350;;6581:24:61;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6581:24:61;;;;;;-1:-1:-1;;6619:20:61;;;6615:101;;6671:1;6675:29;6655:50;;;;;;;6615:101;6734:6;-1:-1:-1;6742:20:61;;-1:-1:-1;5167:1603:61;;;;;;;;:::o;14:184:350:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:1048;280:6;288;341:2;329:9;320:7;316:23;312:32;309:52;;;357:1;354;347:12;309:52;393:9;380:23;370:33;;454:2;443:9;439:18;426:32;477:18;518:2;510:6;507:14;504:34;;;534:1;531;524:12;504:34;572:6;561:9;557:22;547:32;;617:7;610:4;606:2;602:13;598:27;588:55;;639:1;636;629:12;588:55;675:2;662:16;697:2;693;690:10;687:36;;;703:18;;:::i;:::-;837:2;831:9;899:4;891:13;;742:66;887:22;;;911:2;883:31;879:40;867:53;;;935:18;;;955:22;;;932:46;929:72;;;981:18;;:::i;:::-;1021:10;1017:2;1010:22;1056:2;1048:6;1041:18;1096:7;1091:2;1086;1082;1078:11;1074:20;1071:33;1068:53;;;1117:1;1114;1107:12;1068:53;1173:2;1168;1164;1160:11;1155:2;1147:6;1143:15;1130:46;1218:1;1213:2;1208;1200:6;1196:15;1192:24;1185:35;1239:6;1229:16;;;;;;;203:1048;;;;;:::o;1740:309::-;1799:6;1852:2;1840:9;1831:7;1827:23;1823:32;1820:52;;;1868:1;1865;1858:12;1820:52;1907:9;1894:23;1957:42;1950:5;1946:54;1939:5;1936:65;1926:93;;2015:1;2012;2005:12;2822:184;2874:77;2871:1;2864:88;2971:4;2968:1;2961:15;2995:4;2992:1;2985:15","linkReferences":{}},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"originalOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided data\",\"params\":{\"hash\":\"Hash of the data to be signed\",\"signature\":\"Signature byte array associated with _data\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple ERC1271 wallet that can be used to test the ERC1271 signature checker.https://github.com/OpenZeppelin/openzeppelin-contracts/ blob/master/contracts/mocks/ERC1271WalletMock.sol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/TestERC1271Wallet.sol\":\"TestERC1271Wallet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900\",\"dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2\"]},\"test/mocks/TestERC1271Wallet.sol\":{\"keccak256\":\"0x1dcd18b69025ced00b92bf4dd1cf1323a75da69113bc6dc1a56692aed02a6d5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://339ad51defe256385672ffed3516cdea6033d7e9661640d0948bd60e48b31e23\",\"dweb:/ipfs/QmdCRDxS1j1P8AJkhTWX1CzGnKu49oQYPBPbQzybeEmb19\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"originalOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/TestERC1271Wallet.sol":"TestERC1271Wallet"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xdb7f5c28fc61cda0bd8ab60ce288e206b791643bcd3ba464a70cbec18895a2f5","urls":["bzz-raw://bf52bdf22a33263f5ca6227a35faeac3b81e7d2c692fbcc6a079d488710c5900","dweb:/ipfs/QmcmsjkP4yq3UhiJbvyzwufaY2EKh1zhHaRK8ATag2cpD2"],"license":"MIT"},"test/mocks/TestERC1271Wallet.sol":{"keccak256":"0x1dcd18b69025ced00b92bf4dd1cf1323a75da69113bc6dc1a56692aed02a6d5f","urls":["bzz-raw://339ad51defe256385672ffed3516cdea6033d7e9661640d0948bd60e48b31e23","dweb:/ipfs/QmdCRDxS1j1P8AJkhTWX1CzGnKu49oQYPBPbQzybeEmb19"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47673,"contract":"test/mocks/TestERC1271Wallet.sol:TestERC1271Wallet","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","notice":"Simple ERC1271 wallet that can be used to test the ERC1271 signature checker.https://github.com/OpenZeppelin/openzeppelin-contracts/ blob/master/contracts/mocks/ERC1271WalletMock.sol"},"devdoc":{"version":1,"kind":"dev","methods":{"isValidSignature(bytes32,bytes)":{"details":"Should return whether the signature provided is valid for the provided data","params":{"hash":"Hash of the data to be signed","signature":"Signature byte array associated with _data"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"id":316}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b5060405180604001604052806004815260200163151154d560e21b815250604051806040016040528060038152602001621514d560ea1b815250601282600090816200005e9190620001d1565b5060016200006d8382620001d1565b5060ff81166080524660a0526200008362000090565b60c052506200031b915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620000c491906200029d565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200015757607f821691505b6020821081036200017857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001cc57600081815260208120601f850160051c81016020861015620001a75750805b601f850160051c820191505b81811015620001c857828155600101620001b3565b5050505b505050565b81516001600160401b03811115620001ed57620001ed6200012c565b6200020581620001fe845462000142565b846200017e565b602080601f8311600181146200023d5760008415620002245750858301515b600019600386901b1c1916600185901b178555620001c8565b600085815260208120601f198616915b828110156200026e578886015182559484019460019091019084016200024d565b50858210156200028d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808354620002ad8162000142565b60018281168015620002c85760018114620002de576200030f565b60ff19841687528215158302870194506200030f565b8760005260208060002060005b85811015620003065781548a820152908401908201620002eb565b50505082870194505b50929695505050505050565b60805160a05160c051610d186200034b60003960006104c20152600061048d015260006101540152610d186000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806340c10f191161008c57806395d89b411161006657806395d89b41146101e5578063a9059cbb146101ed578063d505accf14610200578063dd62ed3e1461021357600080fd5b806340c10f191461019057806370a08231146101a55780637ecebe00146101c557600080fd5b806323b872dd116100bd57806323b872dd1461013c578063313ce5671461014f5780633644e5151461018857600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec61023e565b6040516100f991906109ba565b60405180910390f35b610115610110366004610a56565b6102cc565b60405190151581526020016100f9565b61012e60025481565b6040519081526020016100f9565b61011561014a366004610a80565b610345565b6101767f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100f9565b61012e610489565b6101a361019e366004610a56565b6104e4565b005b61012e6101b3366004610abc565b60036020526000908152604090205481565b61012e6101d3366004610abc565b60056020526000908152604090205481565b6100ec6104f2565b6101156101fb366004610a56565b6104ff565b6101a361020e366004610ade565b610584565b61012e610221366004610b51565b600460209081526000928352604080842090915290825290205481565b6000805461024b90610b84565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610b84565b80156102c45780601f10610299576101008083540402835291602001916102c4565b820191906000526020600020905b8154815290600101906020018083116102a757829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103349086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103d9576103a78382610c06565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff85166000908152600360205260408120805485929061040e908490610c06565b909155505073ffffffffffffffffffffffffffffffffffffffff808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104769087815260200190565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146104bf576104ba6108a8565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6104ee8282610942565b5050565b6001805461024b90610b84565b33600090815260036020526040812080548391908390610520908490610c06565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103349086815260200190565b428410156105f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b600060016105ff610489565b73ffffffffffffffffffffffffffffffffffffffff8a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e0830190915280519201919091207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282019290925261012281019190915261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610751573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906107cc57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e455200000000000000000000000000000000000060448201526064016105ea565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108da9190610c1d565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600260008282546109549190610cf3565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156109e7578581018301518582016040015282016109cb565b818111156109f9576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a5157600080fd5b919050565b60008060408385031215610a6957600080fd5b610a7283610a2d565b946020939093013593505050565b600080600060608486031215610a9557600080fd5b610a9e84610a2d565b9250610aac60208501610a2d565b9150604084013590509250925092565b600060208284031215610ace57600080fd5b610ad782610a2d565b9392505050565b600080600080600080600060e0888a031215610af957600080fd5b610b0288610a2d565b9650610b1060208901610a2d565b95506040880135945060608801359350608088013560ff81168114610b3457600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610b6457600080fd5b610b6d83610a2d565b9150610b7b60208401610a2d565b90509250929050565b600181811c90821680610b9857607f821691505b602082108103610bd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610c1857610c18610bd7565b500390565b600080835481600182811c915080831680610c3957607f831692505b60208084108203610c71577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b818015610c855760018114610cb857610ce5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0086168952841515850289019650610ce5565b60008a81526020902060005b86811015610cdd5781548b820152908501908301610cc4565b505084890196505b509498975050505050505050565b60008219821115610d0657610d06610bd7565b50019056fea164736f6c634300080f000a","sourceMap":"126:165:301:-:0;;;160:42;;;;;;;;;;1968:292:98;;;;;;;;;;;;;-1:-1:-1;;;1968:292:98;;;;;;;;;;;;;;;;-1:-1:-1;;;1968:292:98;;;195:2:301;2088:5:98;2081:4;:12;;;;;;:::i;:::-;-1:-1:-1;2103:6:98;:16;2112:7;2103:6;:16;:::i;:::-;-1:-1:-1;2129:20:98;;;;;2179:13;2160:32;;2229:24;:22;:24::i;:::-;2202:51;;-1:-1:-1;126:165:301;;-1:-1:-1;;126:165:301;5497:446:98;5562:7;5659:95;5792:4;5776:22;;;;;;:::i;:::-;;;;;;;;;;5627:295;;;3843:25:334;;;;3884:18;;3877:34;;;;5820:14:98;3927:18:334;;;3920:34;5856:13:98;3970:18:334;;;3963:34;5899:4:98;4013:19:334;;;4006:61;3815:19;;5627:295:98;;;;;;;;;;;;5600:336;;;;;;5581:355;;5497:446;:::o;14:127:334:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:334;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:334;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:334;;;2580:26;2531:89;-1:-1:-1;;1335:1:334;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:334;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:334;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:334;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:334:o;2735:844::-;2865:3;2894:1;2927:6;2921:13;2957:36;2983:9;2957:36;:::i;:::-;3012:1;3029:18;;;3056:133;;;;3203:1;3198:356;;;;3022:532;;3056:133;-1:-1:-1;;3089:24:334;;3077:37;;3162:14;;3155:22;3143:35;;3134:45;;;-1:-1:-1;3056:133:334;;3198:356;3229:6;3226:1;3219:17;3259:4;3304:2;3301:1;3291:16;3329:1;3343:165;3357:6;3354:1;3351:13;3343:165;;;3435:14;;3422:11;;;3415:35;3478:16;;;;3372:10;;3343:165;;;3347:3;;;3537:6;3532:3;3528:16;3521:23;;3022:532;-1:-1:-1;3570:3:334;;2735:844;-1:-1:-1;;;;;;2735:844:334:o;3584:489::-;126:165:301;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100df5760003560e01c806340c10f191161008c57806395d89b411161006657806395d89b41146101e5578063a9059cbb146101ed578063d505accf14610200578063dd62ed3e1461021357600080fd5b806340c10f191461019057806370a08231146101a55780637ecebe00146101c557600080fd5b806323b872dd116100bd57806323b872dd1461013c578063313ce5671461014f5780633644e5151461018857600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec61023e565b6040516100f991906109ba565b60405180910390f35b610115610110366004610a56565b6102cc565b60405190151581526020016100f9565b61012e60025481565b6040519081526020016100f9565b61011561014a366004610a80565b610345565b6101767f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100f9565b61012e610489565b6101a361019e366004610a56565b6104e4565b005b61012e6101b3366004610abc565b60036020526000908152604090205481565b61012e6101d3366004610abc565b60056020526000908152604090205481565b6100ec6104f2565b6101156101fb366004610a56565b6104ff565b6101a361020e366004610ade565b610584565b61012e610221366004610b51565b600460209081526000928352604080842090915290825290205481565b6000805461024b90610b84565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610b84565b80156102c45780601f10610299576101008083540402835291602001916102c4565b820191906000526020600020905b8154815290600101906020018083116102a757829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103349086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103d9576103a78382610c06565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff85166000908152600360205260408120805485929061040e908490610c06565b909155505073ffffffffffffffffffffffffffffffffffffffff808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104769087815260200190565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146104bf576104ba6108a8565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6104ee8282610942565b5050565b6001805461024b90610b84565b33600090815260036020526040812080548391908390610520908490610c06565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103349086815260200190565b428410156105f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b600060016105ff610489565b73ffffffffffffffffffffffffffffffffffffffff8a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e0830190915280519201919091207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282019290925261012281019190915261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610751573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906107cc57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e455200000000000000000000000000000000000060448201526064016105ea565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108da9190610c1d565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600260008282546109549190610cf3565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156109e7578581018301518582016040015282016109cb565b818111156109f9576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a5157600080fd5b919050565b60008060408385031215610a6957600080fd5b610a7283610a2d565b946020939093013593505050565b600080600060608486031215610a9557600080fd5b610a9e84610a2d565b9250610aac60208501610a2d565b9150604084013590509250925092565b600060208284031215610ace57600080fd5b610ad782610a2d565b9392505050565b600080600080600080600060e0888a031215610af957600080fd5b610b0288610a2d565b9650610b1060208901610a2d565b95506040880135945060608801359350608088013560ff81168114610b3457600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610b6457600080fd5b610b6d83610a2d565b9150610b7b60208401610a2d565b90509250929050565b600181811c90821680610b9857607f821691505b602082108103610bd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610c1857610c18610bd7565b500390565b600080835481600182811c915080831680610c3957607f831692505b60208084108203610c71577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b818015610c855760018114610cb857610ce5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0086168952841515850289019650610ce5565b60008a81526020902060005b86811015610cdd5781548b820152908501908301610cc4565b505084890196505b509498975050505050505050565b60008219821115610d0657610d06610bd7565b50019056fea164736f6c634300080f000a","sourceMap":"126:165:301:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1018:18:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2448:211;;;;;;:::i;:::-;;:::i;:::-;;;1300:14:334;;1293:22;1275:41;;1263:2;1248:18;2448:211:98;1135:187:334;1291:26:98;;;;;;;;;1473:25:334;;;1461:2;1446:18;1291:26:98;1327:177:334;3044:592:98;;;;;;:::i;:::-;;:::i;1070:31::-;;;;;;;;2014:4:334;2002:17;;;1984:36;;1972:2;1957:18;1070:31:98;1842:184:334;5314:177:98;;;:::i;208:81:301:-;;;;;;:::i;:::-;;:::i;:::-;;1324:44:98;;;;;;:::i;:::-;;;;;;;;;;;;;;1738:41;;;;;;:::i;:::-;;;;;;;;;;;;;;1043:20;;;:::i;2665:373::-;;;;;;:::i;:::-;;:::i;3825:1483::-;;;;;;:::i;:::-;;:::i;1375:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1018:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2448:211::-;2548:10;2522:4;2538:21;;;:9;:21;;;;;;;;;:30;;;;;;;;;;:39;;;2593:37;2522:4;;2538:30;;2593:37;;;;2571:6;1473:25:334;;1461:2;1446:18;;1327:177;2593:37:98;;;;;;;;-1:-1:-1;2648:4:98;2448:211;;;;:::o;3044:592::-;3196:15;;;3162:4;3196:15;;;:9;:15;;;;;;;;3212:10;3196:27;;;;;;;;3285:17;3274:28;;3270:80;;3334:16;3344:6;3334:7;:16;:::i;:::-;3304:15;;;;;;;:9;:15;;;;;;;;3320:10;3304:27;;;;;;;:46;3270:80;3361:15;;;;;;;:9;:15;;;;;:25;;3380:6;;3361:15;:25;;3380:6;;3361:25;:::i;:::-;;;;-1:-1:-1;;3532:13:98;;;;;;;;:9;:13;;;;;;;:23;;;;;;3581:26;3532:13;;3581:26;;;;;;;3549:6;1473:25:334;;1461:2;1446:18;;1327:177;3581:26:98;;;;;;;;-1:-1:-1;3625:4:98;;3044:592;-1:-1:-1;;;;3044:592:98:o;5314:177::-;5371:7;5414:16;5397:13;:33;:87;;5460:24;:22;:24::i;:::-;5390:94;;5314:177;:::o;5397:87::-;-1:-1:-1;5433:24:98;;5314:177::o;208:81:301:-;266:16;272:2;276:5;266;:16::i;:::-;208:81;;:::o;1043:20:98:-;;;;;;;:::i;2665:373::-;2761:10;2735:4;2751:21;;;:9;:21;;;;;:31;;2776:6;;2751:21;2735:4;;2751:31;;2776:6;;2751:31;:::i;:::-;;;;-1:-1:-1;;2928:13:98;;;;;;;:9;:13;;;;;;;:23;;;;;;2977:32;2986:10;;2977:32;;;;2945:6;1473:25:334;;1461:2;1446:18;;1327:177;3825:1483:98;4044:15;4032:8;:27;;4024:63;;;;;;;4330:2:334;4024:63:98;;;4312:21:334;4369:2;4349:18;;;4342:30;4408:25;4388:18;;;4381:53;4451:18;;4024:63:98;;;;;;;;;4252:24;4279:805;4415:18;:16;:18::i;:::-;4860:13;;;;;;;;:6;:13;;;;;;;;;:15;;;;;;;;4498:449;;4542:165;4498:449;;;4767:25:334;4869:18;;;4862:43;;;;4941:15;;;4921:18;;;4914:43;4973:18;;;4966:34;;;5016:19;;;5009:35;;;;5060:19;;;;5053:35;;;4498:449:98;;;;;;;;;;4739:19:334;;;4498:449:98;;;4459:514;;;;;;;;5369:66:334;4337:658:98;;;5357:79:334;5452:11;;;5445:27;;;;5488:12;;;5481:28;;;;5525:12;;4337:658:98;;;;;;;;;;;;;4306:707;;4337:658;4306:707;;;;4279:805;;;;;;;;;5775:25:334;5848:4;5836:17;;5816:18;;;5809:45;5870:18;;;5863:34;;;5913:18;;;5906:34;;;5747:19;;4279:805:98;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4279:805:98;;;;;;-1:-1:-1;;5107:30:98;;;;;;;:59;;;5161:5;5141:25;;:16;:25;;;5107:59;5099:86;;;;;;;6153:2:334;5099:86:98;;;6135:21:334;6192:2;6172:18;;;6165:30;6231:16;6211:18;;;6204:44;6265:18;;5099:86:98;5951:338:334;5099:86:98;5200:27;;;;;;;;:9;:27;;;;;;;;:36;;;;;;;;;;;;;:44;;;5270:31;1473:25:334;;;5200:36:98;;5270:31;;;;;1446:18:334;5270:31:98;;;;;;;3825:1483;;;;;;;:::o;5497:446::-;5562:7;5659:95;5792:4;5776:22;;;;;;:::i;:::-;;;;;;;;;;5627:295;;;7935:25:334;;;;7976:18;;7969:34;;;;5820:14:98;8019:18:334;;;8012:34;5856:13:98;8062:18:334;;;8055:34;5899:4:98;8105:19:334;;;8098:84;7907:19;;5627:295:98;;;;;;;;;;;;5600:336;;;;;;5581:355;;5497:446;:::o;6137:325::-;6222:6;6207:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;6374:13:98;;;;;;;:9;:13;;;;;;;;:23;;;;;;6423:32;1473:25:334;;;6423:32:98;;1446:18:334;6423:32:98;;;;;;;6137:325;;:::o;14:656:334:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;586:2:334;574:15;591:66;570:88;555:104;;;;661:2;551:113;;14:656;-1:-1:-1;;;14:656:334:o;675:196::-;743:20;;803:42;792:54;;782:65;;772:93;;861:1;858;851:12;772:93;675:196;;;:::o;876:254::-;944:6;952;1005:2;993:9;984:7;980:23;976:32;973:52;;;1021:1;1018;1011:12;973:52;1044:29;1063:9;1044:29;:::i;:::-;1034:39;1120:2;1105:18;;;;1092:32;;-1:-1:-1;;;876:254:334:o;1509:328::-;1586:6;1594;1602;1655:2;1643:9;1634:7;1630:23;1626:32;1623:52;;;1671:1;1668;1661:12;1623:52;1694:29;1713:9;1694:29;:::i;:::-;1684:39;;1742:38;1776:2;1765:9;1761:18;1742:38;:::i;:::-;1732:48;;1827:2;1816:9;1812:18;1799:32;1789:42;;1509:328;;;;;:::o;2213:186::-;2272:6;2325:2;2313:9;2304:7;2300:23;2296:32;2293:52;;;2341:1;2338;2331:12;2293:52;2364:29;2383:9;2364:29;:::i;:::-;2354:39;2213:186;-1:-1:-1;;;2213:186:334:o;2404:693::-;2515:6;2523;2531;2539;2547;2555;2563;2616:3;2604:9;2595:7;2591:23;2587:33;2584:53;;;2633:1;2630;2623:12;2584:53;2656:29;2675:9;2656:29;:::i;:::-;2646:39;;2704:38;2738:2;2727:9;2723:18;2704:38;:::i;:::-;2694:48;;2789:2;2778:9;2774:18;2761:32;2751:42;;2840:2;2829:9;2825:18;2812:32;2802:42;;2894:3;2883:9;2879:19;2866:33;2939:4;2932:5;2928:16;2921:5;2918:27;2908:55;;2959:1;2956;2949:12;2908:55;2404:693;;;;-1:-1:-1;2404:693:334;;;;2982:5;3034:3;3019:19;;3006:33;;-1:-1:-1;3086:3:334;3071:19;;;3058:33;;2404:693;-1:-1:-1;;2404:693:334:o;3102:260::-;3170:6;3178;3231:2;3219:9;3210:7;3206:23;3202:32;3199:52;;;3247:1;3244;3237:12;3199:52;3270:29;3289:9;3270:29;:::i;:::-;3260:39;;3318:38;3352:2;3341:9;3337:18;3318:38;:::i;:::-;3308:48;;3102:260;;;;;:::o;3367:437::-;3446:1;3442:12;;;;3489;;;3510:61;;3564:4;3556:6;3552:17;3542:27;;3510:61;3617:2;3609:6;3606:14;3586:18;3583:38;3580:218;;3654:77;3651:1;3644:88;3755:4;3752:1;3745:15;3783:4;3780:1;3773:15;3580:218;;3367:437;;;:::o;3809:184::-;3861:77;3858:1;3851:88;3958:4;3955:1;3948:15;3982:4;3979:1;3972:15;3998:125;4038:4;4066:1;4063;4060:8;4057:34;;;4071:18;;:::i;:::-;-1:-1:-1;4108:9:334;;3998:125::o;6423:1248::-;6553:3;6582:1;6615:6;6609:13;6645:3;6667:1;6695:9;6691:2;6687:18;6677:28;;6755:2;6744:9;6740:18;6777;6767:61;;6821:4;6813:6;6809:17;6799:27;;6767:61;6847:2;6895;6887:6;6884:14;6864:18;6861:38;6858:222;;6934:77;6929:3;6922:90;7035:4;7032:1;7025:15;7065:4;7060:3;7053:17;6858:222;7096:18;7123:191;;;;7328:1;7323:323;;;;7089:557;;7123:191;7171:66;7160:9;7156:82;7151:3;7144:95;7294:6;7287:14;7280:22;7272:6;7268:35;7263:3;7259:45;7252:52;;7123:191;;7323:323;6370:1;6363:14;;;6407:4;6394:18;;7421:1;7435:165;7449:6;7446:1;7443:13;7435:165;;;7527:14;;7514:11;;;7507:35;7570:16;;;;7464:10;;7435:165;;;7439:3;;7629:6;7624:3;7620:16;7613:23;;7089:557;-1:-1:-1;7662:3:334;;6423:1248;-1:-1:-1;;;;;;;;6423:1248:334:o;8193:128::-;8233:3;8264:1;8260:6;8257:1;8254:13;8251:39;;;8270:18;;:::i;:::-;-1:-1:-1;8306:9:334;;8193:128::o","linkReferences":{},"immutableReferences":{"60158":[{"start":340,"length":32}],"60172":[{"start":1165,"length":32}],"60174":[{"start":1218,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/TestERC20.sol\":\"TestERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"test/mocks/TestERC20.sol\":{\"keccak256\":\"0x7243668e5678a6983af0dd1f419e24a2793360dfa7b95a6bf39259347677671a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ded52707c70d3dacd50e8f491c8242261077449c85c9ac092c152aaf379f921\",\"dweb:/ipfs/QmYfGdMTNE5ZcZ5MDf8KKdndu6167VN3FhjDEnRc8M7TP5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/TestERC20.sol":"TestERC20"},"evmVersion":"london","libraries":{}},"sources":{"lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"test/mocks/TestERC20.sol":{"keccak256":"0x7243668e5678a6983af0dd1f419e24a2793360dfa7b95a6bf39259347677671a","urls":["bzz-raw://3ded52707c70d3dacd50e8f491c8242261077449c85c9ac092c152aaf379f921","dweb:/ipfs/QmYfGdMTNE5ZcZ5MDf8KKdndu6167VN3FhjDEnRc8M7TP5"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":60154,"contract":"test/mocks/TestERC20.sol:TestERC20","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":60156,"contract":"test/mocks/TestERC20.sol:TestERC20","label":"symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":60160,"contract":"test/mocks/TestERC20.sol:TestERC20","label":"totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":60164,"contract":"test/mocks/TestERC20.sol:TestERC20","label":"balanceOf","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":60170,"contract":"test/mocks/TestERC20.sol:TestERC20","label":"allowance","offset":0,"slot":"4","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":60178,"contract":"test/mocks/TestERC20.sol:TestERC20","label":"nonces","offset":0,"slot":"5","type":"t_mapping(t_address,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/mocks/TestERC20.sol","id":173728,"exportedSymbols":{"ERC20":[60521],"TestERC20":[173727]},"nodeType":"SourceUnit","src":"32:260:301","nodes":[{"id":173700,"nodeType":"PragmaDirective","src":"32:23:301","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":173702,"nodeType":"ImportDirective","src":"57:67:301","nodes":[],"absolutePath":"lib/solmate/src/tokens/ERC20.sol","file":"@rari-capital/solmate/src/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":173728,"sourceUnit":60522,"symbolAliases":[{"foreign":{"id":173701,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60521,"src":"66:5:301","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":173727,"nodeType":"ContractDefinition","src":"126:165:301","nodes":[{"id":173713,"nodeType":"FunctionDefinition","src":"160:42:301","nodes":[],"body":{"id":173712,"nodeType":"Block","src":"199:3:301","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"54455354","id":173707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"180:6:301","typeDescriptions":{"typeIdentifier":"t_stringliteral_852daa74cc3c31fe64542bb9b8764cfb91cc30f9acf9389071ffb44a9eefde46","typeString":"literal_string \"TEST\""},"value":"TEST"},{"hexValue":"545354","id":173708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"188:5:301","typeDescriptions":{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},"value":"TST"},{"hexValue":"3138","id":173709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195:2:301","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"id":173710,"kind":"baseConstructorSpecifier","modifierName":{"id":173706,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":60521,"src":"174:5:301"},"nodeType":"ModifierInvocation","src":"174:24:301"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173705,"nodeType":"ParameterList","parameters":[],"src":"171:2:301"},"returnParameters":{"id":173711,"nodeType":"ParameterList","parameters":[],"src":"199:0:301"},"scope":173727,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":173726,"nodeType":"FunctionDefinition","src":"208:81:301","nodes":[],"body":{"id":173725,"nodeType":"Block","src":"256:33:301","nodes":[],"statements":[{"expression":{"arguments":[{"id":173721,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173715,"src":"272:2:301","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":173722,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173717,"src":"276:5:301","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":173720,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60492,"src":"266:5:301","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":173723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"266:16:301","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173724,"nodeType":"ExpressionStatement","src":"266:16:301"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"217:4:301","parameters":{"id":173718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173715,"mutability":"mutable","name":"to","nameLocation":"230:2:301","nodeType":"VariableDeclaration","scope":173726,"src":"222:10:301","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173714,"name":"address","nodeType":"ElementaryTypeName","src":"222:7:301","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":173717,"mutability":"mutable","name":"value","nameLocation":"242:5:301","nodeType":"VariableDeclaration","scope":173726,"src":"234:13:301","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173716,"name":"uint256","nodeType":"ElementaryTypeName","src":"234:7:301","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"221:27:301"},"returnParameters":{"id":173719,"nodeType":"ParameterList","parameters":[],"src":"256:0:301"},"scope":173727,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":173703,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":60521,"src":"148:5:301"},"id":173704,"nodeType":"InheritanceSpecifier","src":"148:5:301"}],"canonicalName":"TestERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[173727,60521],"name":"TestERC20","nameLocation":"135:9:301","scope":173728,"usedErrors":[]}],"license":"MIT"},"id":301}
{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b5060405180604001604052806004815260200163151154d560e21b815250604051806040016040528060038152602001621514d560ea1b815250601282600090816200005e9190620001d1565b5060016200006d8382620001d1565b5060ff81166080524660a0526200008362000090565b60c052506200031b915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620000c491906200029d565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200015757607f821691505b6020821081036200017857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001cc57600081815260208120601f850160051c81016020861015620001a75750805b601f850160051c820191505b81811015620001c857828155600101620001b3565b5050505b505050565b81516001600160401b03811115620001ed57620001ed6200012c565b6200020581620001fe845462000142565b846200017e565b602080601f8311600181146200023d5760008415620002245750858301515b600019600386901b1c1916600185901b178555620001c8565b600085815260208120601f198616915b828110156200026e578886015182559484019460019091019084016200024d565b50858210156200028d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808354620002ad8162000142565b60018281168015620002c85760018114620002de576200030f565b60ff19841687528215158302870194506200030f565b8760005260208060002060005b85811015620003065781548a820152908401908201620002eb565b50505082870194505b50929695505050505050565b60805160a05160c051610d186200034b60003960006104c20152600061048d015260006101540152610d186000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806340c10f191161008c57806395d89b411161006657806395d89b41146101e5578063a9059cbb146101ed578063d505accf14610200578063dd62ed3e1461021357600080fd5b806340c10f191461019057806370a08231146101a55780637ecebe00146101c557600080fd5b806323b872dd116100bd57806323b872dd1461013c578063313ce5671461014f5780633644e5151461018857600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec61023e565b6040516100f991906109ba565b60405180910390f35b610115610110366004610a56565b6102cc565b60405190151581526020016100f9565b61012e60025481565b6040519081526020016100f9565b61011561014a366004610a80565b610345565b6101767f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100f9565b61012e610489565b6101a361019e366004610a56565b6104e4565b005b61012e6101b3366004610abc565b60036020526000908152604090205481565b61012e6101d3366004610abc565b60056020526000908152604090205481565b6100ec6104f2565b6101156101fb366004610a56565b6104ff565b6101a361020e366004610ade565b610584565b61012e610221366004610b51565b600460209081526000928352604080842090915290825290205481565b6000805461024b90610b84565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610b84565b80156102c45780601f10610299576101008083540402835291602001916102c4565b820191906000526020600020905b8154815290600101906020018083116102a757829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103349086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103d9576103a78382610c06565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff85166000908152600360205260408120805485929061040e908490610c06565b909155505073ffffffffffffffffffffffffffffffffffffffff808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104769087815260200190565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146104bf576104ba6108a8565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6104ee8282610942565b5050565b6001805461024b90610b84565b33600090815260036020526040812080548391908390610520908490610c06565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103349086815260200190565b428410156105f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b600060016105ff610489565b73ffffffffffffffffffffffffffffffffffffffff8a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e0830190915280519201919091207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282019290925261012281019190915261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610751573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906107cc57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e455200000000000000000000000000000000000060448201526064016105ea565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108da9190610c1d565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600260008282546109549190610cf3565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156109e7578581018301518582016040015282016109cb565b818111156109f9576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a5157600080fd5b919050565b60008060408385031215610a6957600080fd5b610a7283610a2d565b946020939093013593505050565b600080600060608486031215610a9557600080fd5b610a9e84610a2d565b9250610aac60208501610a2d565b9150604084013590509250925092565b600060208284031215610ace57600080fd5b610ad782610a2d565b9392505050565b600080600080600080600060e0888a031215610af957600080fd5b610b0288610a2d565b9650610b1060208901610a2d565b95506040880135945060608801359350608088013560ff81168114610b3457600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610b6457600080fd5b610b6d83610a2d565b9150610b7b60208401610a2d565b90509250929050565b600181811c90821680610b9857607f821691505b602082108103610bd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610c1857610c18610bd7565b500390565b600080835481600182811c915080831680610c3957607f831692505b60208084108203610c71577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b818015610c855760018114610cb857610ce5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0086168952841515850289019650610ce5565b60008a81526020902060005b86811015610cdd5781548b820152908501908301610cc4565b505084890196505b509498975050505050505050565b60008219821115610d0657610d06610bd7565b50019056fea164736f6c634300080f000a","sourceMap":"126:165:317:-:0;;;160:42;;;;;;;;;;1968:292:99;;;;;;;;;;;;;-1:-1:-1;;;1968:292:99;;;;;;;;;;;;;;;;-1:-1:-1;;;1968:292:99;;;195:2:317;2088:5:99;2081:4;:12;;;;;;:::i;:::-;-1:-1:-1;2103:6:99;:16;2112:7;2103:6;:16;:::i;:::-;-1:-1:-1;2129:20:99;;;;;2179:13;2160:32;;2229:24;:22;:24::i;:::-;2202:51;;-1:-1:-1;126:165:317;;-1:-1:-1;;126:165:317;5497:446:99;5562:7;5659:95;5792:4;5776:22;;;;;;:::i;:::-;;;;;;;;;;5627:295;;;3843:25:350;;;;3884:18;;3877:34;;;;5820:14:99;3927:18:350;;;3920:34;5856:13:99;3970:18:350;;;3963:34;5899:4:99;4013:19:350;;;4006:61;3815:19;;5627:295:99;;;;;;;;;;;;5600:336;;;;;;5581:355;;5497:446;:::o;14:127:350:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:350;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:350;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:350;;;2580:26;2531:89;-1:-1:-1;;1335:1:350;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:350;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:350;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:350;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:350:o;2735:844::-;2865:3;2894:1;2927:6;2921:13;2957:36;2983:9;2957:36;:::i;:::-;3012:1;3029:18;;;3056:133;;;;3203:1;3198:356;;;;3022:532;;3056:133;-1:-1:-1;;3089:24:350;;3077:37;;3162:14;;3155:22;3143:35;;3134:45;;;-1:-1:-1;3056:133:350;;3198:356;3229:6;3226:1;3219:17;3259:4;3304:2;3301:1;3291:16;3329:1;3343:165;3357:6;3354:1;3351:13;3343:165;;;3435:14;;3422:11;;;3415:35;3478:16;;;;3372:10;;3343:165;;;3347:3;;;3537:6;3532:3;3528:16;3521:23;;3022:532;-1:-1:-1;3570:3:350;;2735:844;-1:-1:-1;;;;;;2735:844:350:o;3584:489::-;126:165:317;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100df5760003560e01c806340c10f191161008c57806395d89b411161006657806395d89b41146101e5578063a9059cbb146101ed578063d505accf14610200578063dd62ed3e1461021357600080fd5b806340c10f191461019057806370a08231146101a55780637ecebe00146101c557600080fd5b806323b872dd116100bd57806323b872dd1461013c578063313ce5671461014f5780633644e5151461018857600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec61023e565b6040516100f991906109ba565b60405180910390f35b610115610110366004610a56565b6102cc565b60405190151581526020016100f9565b61012e60025481565b6040519081526020016100f9565b61011561014a366004610a80565b610345565b6101767f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016100f9565b61012e610489565b6101a361019e366004610a56565b6104e4565b005b61012e6101b3366004610abc565b60036020526000908152604090205481565b61012e6101d3366004610abc565b60056020526000908152604090205481565b6100ec6104f2565b6101156101fb366004610a56565b6104ff565b6101a361020e366004610ade565b610584565b61012e610221366004610b51565b600460209081526000928352604080842090915290825290205481565b6000805461024b90610b84565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610b84565b80156102c45780601f10610299576101008083540402835291602001916102c4565b820191906000526020600020905b8154815290600101906020018083116102a757829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103349086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103d9576103a78382610c06565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff85166000908152600360205260408120805485929061040e908490610c06565b909155505073ffffffffffffffffffffffffffffffffffffffff808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104769087815260200190565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146104bf576104ba6108a8565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6104ee8282610942565b5050565b6001805461024b90610b84565b33600090815260036020526040812080548391908390610520908490610c06565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103349086815260200190565b428410156105f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b600060016105ff610489565b73ffffffffffffffffffffffffffffffffffffffff8a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e0830190915280519201919091207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282019290925261012281019190915261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610751573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906107cc57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e455200000000000000000000000000000000000060448201526064016105ea565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108da9190610c1d565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600260008282546109549190610cf3565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b818110156109e7578581018301518582016040015282016109cb565b818111156109f9576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a5157600080fd5b919050565b60008060408385031215610a6957600080fd5b610a7283610a2d565b946020939093013593505050565b600080600060608486031215610a9557600080fd5b610a9e84610a2d565b9250610aac60208501610a2d565b9150604084013590509250925092565b600060208284031215610ace57600080fd5b610ad782610a2d565b9392505050565b600080600080600080600060e0888a031215610af957600080fd5b610b0288610a2d565b9650610b1060208901610a2d565b95506040880135945060608801359350608088013560ff81168114610b3457600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610b6457600080fd5b610b6d83610a2d565b9150610b7b60208401610a2d565b90509250929050565b600181811c90821680610b9857607f821691505b602082108103610bd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610c1857610c18610bd7565b500390565b600080835481600182811c915080831680610c3957607f831692505b60208084108203610c71577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b818015610c855760018114610cb857610ce5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0086168952841515850289019650610ce5565b60008a81526020902060005b86811015610cdd5781548b820152908501908301610cc4565b505084890196505b509498975050505050505050565b60008219821115610d0657610d06610bd7565b50019056fea164736f6c634300080f000a","sourceMap":"126:165:317:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1018:18:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2448:211;;;;;;:::i;:::-;;:::i;:::-;;;1300:14:350;;1293:22;1275:41;;1263:2;1248:18;2448:211:99;1135:187:350;1291:26:99;;;;;;;;;1473:25:350;;;1461:2;1446:18;1291:26:99;1327:177:350;3044:592:99;;;;;;:::i;:::-;;:::i;1070:31::-;;;;;;;;2014:4:350;2002:17;;;1984:36;;1972:2;1957:18;1070:31:99;1842:184:350;5314:177:99;;;:::i;208:81:317:-;;;;;;:::i;:::-;;:::i;:::-;;1324:44:99;;;;;;:::i;:::-;;;;;;;;;;;;;;1738:41;;;;;;:::i;:::-;;;;;;;;;;;;;;1043:20;;;:::i;2665:373::-;;;;;;:::i;:::-;;:::i;3825:1483::-;;;;;;:::i;:::-;;:::i;1375:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1018:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2448:211::-;2548:10;2522:4;2538:21;;;:9;:21;;;;;;;;;:30;;;;;;;;;;:39;;;2593:37;2522:4;;2538:30;;2593:37;;;;2571:6;1473:25:350;;1461:2;1446:18;;1327:177;2593:37:99;;;;;;;;-1:-1:-1;2648:4:99;2448:211;;;;:::o;3044:592::-;3196:15;;;3162:4;3196:15;;;:9;:15;;;;;;;;3212:10;3196:27;;;;;;;;3285:17;3274:28;;3270:80;;3334:16;3344:6;3334:7;:16;:::i;:::-;3304:15;;;;;;;:9;:15;;;;;;;;3320:10;3304:27;;;;;;;:46;3270:80;3361:15;;;;;;;:9;:15;;;;;:25;;3380:6;;3361:15;:25;;3380:6;;3361:25;:::i;:::-;;;;-1:-1:-1;;3532:13:99;;;;;;;;:9;:13;;;;;;;:23;;;;;;3581:26;3532:13;;3581:26;;;;;;;3549:6;1473:25:350;;1461:2;1446:18;;1327:177;3581:26:99;;;;;;;;-1:-1:-1;3625:4:99;;3044:592;-1:-1:-1;;;;3044:592:99:o;5314:177::-;5371:7;5414:16;5397:13;:33;:87;;5460:24;:22;:24::i;:::-;5390:94;;5314:177;:::o;5397:87::-;-1:-1:-1;5433:24:99;;5314:177::o;208:81:317:-;266:16;272:2;276:5;266;:16::i;:::-;208:81;;:::o;1043:20:99:-;;;;;;;:::i;2665:373::-;2761:10;2735:4;2751:21;;;:9;:21;;;;;:31;;2776:6;;2751:21;2735:4;;2751:31;;2776:6;;2751:31;:::i;:::-;;;;-1:-1:-1;;2928:13:99;;;;;;;:9;:13;;;;;;;:23;;;;;;2977:32;2986:10;;2977:32;;;;2945:6;1473:25:350;;1461:2;1446:18;;1327:177;3825:1483:99;4044:15;4032:8;:27;;4024:63;;;;;;;4330:2:350;4024:63:99;;;4312:21:350;4369:2;4349:18;;;4342:30;4408:25;4388:18;;;4381:53;4451:18;;4024:63:99;;;;;;;;;4252:24;4279:805;4415:18;:16;:18::i;:::-;4860:13;;;;;;;;:6;:13;;;;;;;;;:15;;;;;;;;4498:449;;4542:165;4498:449;;;4767:25:350;4869:18;;;4862:43;;;;4941:15;;;4921:18;;;4914:43;4973:18;;;4966:34;;;5016:19;;;5009:35;;;;5060:19;;;;5053:35;;;4498:449:99;;;;;;;;;;4739:19:350;;;4498:449:99;;;4459:514;;;;;;;;5369:66:350;4337:658:99;;;5357:79:350;5452:11;;;5445:27;;;;5488:12;;;5481:28;;;;5525:12;;4337:658:99;;;;;;;;;;;;;4306:707;;4337:658;4306:707;;;;4279:805;;;;;;;;;5775:25:350;5848:4;5836:17;;5816:18;;;5809:45;5870:18;;;5863:34;;;5913:18;;;5906:34;;;5747:19;;4279:805:99;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4279:805:99;;;;;;-1:-1:-1;;5107:30:99;;;;;;;:59;;;5161:5;5141:25;;:16;:25;;;5107:59;5099:86;;;;;;;6153:2:350;5099:86:99;;;6135:21:350;6192:2;6172:18;;;6165:30;6231:16;6211:18;;;6204:44;6265:18;;5099:86:99;5951:338:350;5099:86:99;5200:27;;;;;;;;:9;:27;;;;;;;;:36;;;;;;;;;;;;;:44;;;5270:31;1473:25:350;;;5200:36:99;;5270:31;;;;;1446:18:350;5270:31:99;;;;;;;3825:1483;;;;;;;:::o;5497:446::-;5562:7;5659:95;5792:4;5776:22;;;;;;:::i;:::-;;;;;;;;;;5627:295;;;7935:25:350;;;;7976:18;;7969:34;;;;5820:14:99;8019:18:350;;;8012:34;5856:13:99;8062:18:350;;;8055:34;5899:4:99;8105:19:350;;;8098:84;7907:19;;5627:295:99;;;;;;;;;;;;5600:336;;;;;;5581:355;;5497:446;:::o;6137:325::-;6222:6;6207:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;6374:13:99;;;;;;;:9;:13;;;;;;;;:23;;;;;;6423:32;1473:25:350;;;6423:32:99;;1446:18:350;6423:32:99;;;;;;;6137:325;;:::o;14:656:350:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;586:2:350;574:15;591:66;570:88;555:104;;;;661:2;551:113;;14:656;-1:-1:-1;;;14:656:350:o;675:196::-;743:20;;803:42;792:54;;782:65;;772:93;;861:1;858;851:12;772:93;675:196;;;:::o;876:254::-;944:6;952;1005:2;993:9;984:7;980:23;976:32;973:52;;;1021:1;1018;1011:12;973:52;1044:29;1063:9;1044:29;:::i;:::-;1034:39;1120:2;1105:18;;;;1092:32;;-1:-1:-1;;;876:254:350:o;1509:328::-;1586:6;1594;1602;1655:2;1643:9;1634:7;1630:23;1626:32;1623:52;;;1671:1;1668;1661:12;1623:52;1694:29;1713:9;1694:29;:::i;:::-;1684:39;;1742:38;1776:2;1765:9;1761:18;1742:38;:::i;:::-;1732:48;;1827:2;1816:9;1812:18;1799:32;1789:42;;1509:328;;;;;:::o;2213:186::-;2272:6;2325:2;2313:9;2304:7;2300:23;2296:32;2293:52;;;2341:1;2338;2331:12;2293:52;2364:29;2383:9;2364:29;:::i;:::-;2354:39;2213:186;-1:-1:-1;;;2213:186:350:o;2404:693::-;2515:6;2523;2531;2539;2547;2555;2563;2616:3;2604:9;2595:7;2591:23;2587:33;2584:53;;;2633:1;2630;2623:12;2584:53;2656:29;2675:9;2656:29;:::i;:::-;2646:39;;2704:38;2738:2;2727:9;2723:18;2704:38;:::i;:::-;2694:48;;2789:2;2778:9;2774:18;2761:32;2751:42;;2840:2;2829:9;2825:18;2812:32;2802:42;;2894:3;2883:9;2879:19;2866:33;2939:4;2932:5;2928:16;2921:5;2918:27;2908:55;;2959:1;2956;2949:12;2908:55;2404:693;;;;-1:-1:-1;2404:693:350;;;;2982:5;3034:3;3019:19;;3006:33;;-1:-1:-1;3086:3:350;3071:19;;;3058:33;;2404:693;-1:-1:-1;;2404:693:350:o;3102:260::-;3170:6;3178;3231:2;3219:9;3210:7;3206:23;3202:32;3199:52;;;3247:1;3244;3237:12;3199:52;3270:29;3289:9;3270:29;:::i;:::-;3260:39;;3318:38;3352:2;3341:9;3337:18;3318:38;:::i;:::-;3308:48;;3102:260;;;;;:::o;3367:437::-;3446:1;3442:12;;;;3489;;;3510:61;;3564:4;3556:6;3552:17;3542:27;;3510:61;3617:2;3609:6;3606:14;3586:18;3583:38;3580:218;;3654:77;3651:1;3644:88;3755:4;3752:1;3745:15;3783:4;3780:1;3773:15;3580:218;;3367:437;;;:::o;3809:184::-;3861:77;3858:1;3851:88;3958:4;3955:1;3948:15;3982:4;3979:1;3972:15;3998:125;4038:4;4066:1;4063;4060:8;4057:34;;;4071:18;;:::i;:::-;-1:-1:-1;4108:9:350;;3998:125::o;6423:1248::-;6553:3;6582:1;6615:6;6609:13;6645:3;6667:1;6695:9;6691:2;6687:18;6677:28;;6755:2;6744:9;6740:18;6777;6767:61;;6821:4;6813:6;6809:17;6799:27;;6767:61;6847:2;6895;6887:6;6884:14;6864:18;6861:38;6858:222;;6934:77;6929:3;6922:90;7035:4;7032:1;7025:15;7065:4;7060:3;7053:17;6858:222;7096:18;7123:191;;;;7328:1;7323:323;;;;7089:557;;7123:191;7171:66;7160:9;7156:82;7151:3;7144:95;7294:6;7287:14;7280:22;7272:6;7268:35;7263:3;7259:45;7252:52;;7123:191;;7323:323;6370:1;6363:14;;;6407:4;6394:18;;7421:1;7435:165;7449:6;7446:1;7443:13;7435:165;;;7527:14;;7514:11;;;7507:35;7570:16;;;;7464:10;;7435:165;;;7439:3;;7629:6;7624:3;7620:16;7613:23;;7089:557;-1:-1:-1;7662:3:350;;6423:1248;-1:-1:-1;;;;;;;;6423:1248:350:o;8193:128::-;8233:3;8264:1;8260:6;8257:1;8254:13;8251:39;;;8270:18;;:::i;:::-;-1:-1:-1;8306:9:350;;8193:128::o","linkReferences":{},"immutableReferences":{"61483":[{"start":340,"length":32}],"61497":[{"start":1165,"length":32}],"61499":[{"start":1218,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/TestERC20.sol\":\"TestERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"test/mocks/TestERC20.sol\":{\"keccak256\":\"0x7243668e5678a6983af0dd1f419e24a2793360dfa7b95a6bf39259347677671a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ded52707c70d3dacd50e8f491c8242261077449c85c9ac092c152aaf379f921\",\"dweb:/ipfs/QmYfGdMTNE5ZcZ5MDf8KKdndu6167VN3FhjDEnRc8M7TP5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/TestERC20.sol":"TestERC20"},"evmVersion":"london","libraries":{}},"sources":{"lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"test/mocks/TestERC20.sol":{"keccak256":"0x7243668e5678a6983af0dd1f419e24a2793360dfa7b95a6bf39259347677671a","urls":["bzz-raw://3ded52707c70d3dacd50e8f491c8242261077449c85c9ac092c152aaf379f921","dweb:/ipfs/QmYfGdMTNE5ZcZ5MDf8KKdndu6167VN3FhjDEnRc8M7TP5"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":61479,"contract":"test/mocks/TestERC20.sol:TestERC20","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":61481,"contract":"test/mocks/TestERC20.sol:TestERC20","label":"symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":61485,"contract":"test/mocks/TestERC20.sol:TestERC20","label":"totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":61489,"contract":"test/mocks/TestERC20.sol:TestERC20","label":"balanceOf","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":61495,"contract":"test/mocks/TestERC20.sol:TestERC20","label":"allowance","offset":0,"slot":"4","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":61503,"contract":"test/mocks/TestERC20.sol:TestERC20","label":"nonces","offset":0,"slot":"5","type":"t_mapping(t_address,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":317}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405180604001604052806004815260200163151154d560e21b815250604051806040016040528060038152602001621514d560ea1b81525081600090816200005c919062000119565b5060016200006b828262000119565b505050620001e5565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200009f57607f821691505b602082108103620000c057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011457600081815260208120601f850160051c81016020861015620000ef5750805b601f850160051c820191505b818110156200011057828155600101620000fb565b5050505b505050565b81516001600160401b0381111562000135576200013562000074565b6200014d816200014684546200008a565b84620000c6565b602080601f8311600181146200018557600084156200016c5750858301515b600019600386901b1c1916600185901b17855562000110565b600085815260208120601f198616915b82811015620001b65788860151825594840194600190910190840162000195565b5085821015620001d55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6111d080620001f56000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb46514610211578063b88d4fde14610224578063c87b56dd14610237578063e985e9c51461024b57600080fd5b80636352211e146101d557806370a08231146101e857806395d89b411461020957600080fd5b8063095ea7b3116100c8578063095ea7b31461018757806323b872dd1461019c57806340c10f19146101af57806342842e0e146101c257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610e75565b610279565b60405190151581526020015b60405180910390f35b61011f61035e565b60405161010e9190610e99565b61016261013a366004610f0c565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010e565b61019a610195366004610f49565b6103ec565b005b61019a6101aa366004610f73565b61053b565b61019a6101bd366004610f49565b610802565b61019a6101d0366004610f73565b610810565b6101626101e3366004610f0c565b610977565b6101fb6101f6366004610faf565b610a08565b60405190815260200161010e565b61011f610ab0565b61019a61021f366004610fca565b610abd565b61019a610232366004611006565b610b54565b61011f610245366004610f0c565b50606090565b6101026102593660046110a1565b600560209081526000928352604080842090915290825290205460ff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061030c57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061035857507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000805461036b906110d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610397906110d4565b80156103e45780601f106103b9576101008083540402835291602001916103e4565b820191906000526020600020905b8154815290600101906020018083116103c757829003601f168201915b505050505081565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff163381148061044f575073ffffffffffffffffffffffffffffffffffffffff8116600090815260056020908152604080832033845290915290205460ff165b6104ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b60008281526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116146105cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57524f4e475f46524f4d0000000000000000000000000000000000000000000060448201526064016104b1565b73ffffffffffffffffffffffffffffffffffffffff8216610648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016104b1565b3373ffffffffffffffffffffffffffffffffffffffff8416148061069c575073ffffffffffffffffffffffffffffffffffffffff8316600090815260056020908152604080832033845290915290205460ff165b806106ca575060008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b610730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016104b1565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055938616808352848320805460010190558583526002825284832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61080c8282610cab565b5050565b61081b83838361053b565b73ffffffffffffffffffffffffffffffffffffffff82163b15610972576040517f150b7a020000000000000000000000000000000000000000000000000000000080825233600483015273ffffffffffffffffffffffffffffffffffffffff858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af11580156108c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e99190611127565b7fffffffff000000000000000000000000000000000000000000000000000000001614610972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016104b1565b505050565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e5445440000000000000000000000000000000000000000000060448201526064016104b1565b919050565b600073ffffffffffffffffffffffffffffffffffffffff8216610a87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f41444452455353000000000000000000000000000000000000000060448201526064016104b1565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b6001805461036b906110d4565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610b5f85858561053b565b73ffffffffffffffffffffffffffffffffffffffff84163b15610ca4576040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063150b7a0290610bd89033908a90899089908990600401611144565b6020604051808303816000875af1158015610bf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1b9190611127565b7fffffffff000000000000000000000000000000000000000000000000000000001614610ca4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016104b1565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff8216610d28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016104b1565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610db4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f414c52454144595f4d494e54454400000000000000000000000000000000000060448201526064016104b1565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610e7257600080fd5b50565b600060208284031215610e8757600080fd5b8135610e9281610e44565b9392505050565b600060208083528351808285015260005b81811015610ec657858101830151858201604001528201610eaa565b81811115610ed8576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610f1e57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a0357600080fd5b60008060408385031215610f5c57600080fd5b610f6583610f25565b946020939093013593505050565b600080600060608486031215610f8857600080fd5b610f9184610f25565b9250610f9f60208501610f25565b9150604084013590509250925092565b600060208284031215610fc157600080fd5b610e9282610f25565b60008060408385031215610fdd57600080fd5b610fe683610f25565b915060208301358015158114610ffb57600080fd5b809150509250929050565b60008060008060006080868803121561101e57600080fd5b61102786610f25565b945061103560208701610f25565b935060408601359250606086013567ffffffffffffffff8082111561105957600080fd5b818801915088601f83011261106d57600080fd5b81358181111561107c57600080fd5b89602082850101111561108e57600080fd5b9699959850939650602001949392505050565b600080604083850312156110b457600080fd5b6110bd83610f25565b91506110cb60208401610f25565b90509250929050565b600181811c908216806110e857607f821691505b602082108103611121577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006020828403121561113957600080fd5b8151610e9281610e44565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168301019050969550505050505056fea164736f6c634300080f000a","sourceMap":"128:257:302:-:0;;;164:39;;;;;;;;;;2141:111:99;;;;;;;;;;;;;-1:-1:-1;;;2141:111:99;;;;;;;;;;;;;;;;-1:-1:-1;;;2141:111:99;;;2214:5;2207:4;:12;;;;;;:::i;:::-;-1:-1:-1;2229:6:99;:16;2238:7;2229:6;:16;:::i;:::-;;2141:111;;128:257:302;;14:127:334;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:334;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:334;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:334;;;2580:26;2531:89;-1:-1:-1;;1335:1:334;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:334;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:334;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:334;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:334:o;:::-;128:257:302;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb46514610211578063b88d4fde14610224578063c87b56dd14610237578063e985e9c51461024b57600080fd5b80636352211e146101d557806370a08231146101e857806395d89b411461020957600080fd5b8063095ea7b3116100c8578063095ea7b31461018757806323b872dd1461019c57806340c10f19146101af57806342842e0e146101c257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610e75565b610279565b60405190151581526020015b60405180910390f35b61011f61035e565b60405161010e9190610e99565b61016261013a366004610f0c565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010e565b61019a610195366004610f49565b6103ec565b005b61019a6101aa366004610f73565b61053b565b61019a6101bd366004610f49565b610802565b61019a6101d0366004610f73565b610810565b6101626101e3366004610f0c565b610977565b6101fb6101f6366004610faf565b610a08565b60405190815260200161010e565b61011f610ab0565b61019a61021f366004610fca565b610abd565b61019a610232366004611006565b610b54565b61011f610245366004610f0c565b50606090565b6101026102593660046110a1565b600560209081526000928352604080842090915290825290205460ff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061030c57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061035857507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000805461036b906110d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610397906110d4565b80156103e45780601f106103b9576101008083540402835291602001916103e4565b820191906000526020600020905b8154815290600101906020018083116103c757829003601f168201915b505050505081565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff163381148061044f575073ffffffffffffffffffffffffffffffffffffffff8116600090815260056020908152604080832033845290915290205460ff165b6104ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b60008281526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116146105cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57524f4e475f46524f4d0000000000000000000000000000000000000000000060448201526064016104b1565b73ffffffffffffffffffffffffffffffffffffffff8216610648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016104b1565b3373ffffffffffffffffffffffffffffffffffffffff8416148061069c575073ffffffffffffffffffffffffffffffffffffffff8316600090815260056020908152604080832033845290915290205460ff165b806106ca575060008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b610730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016104b1565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055938616808352848320805460010190558583526002825284832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61080c8282610cab565b5050565b61081b83838361053b565b73ffffffffffffffffffffffffffffffffffffffff82163b15610972576040517f150b7a020000000000000000000000000000000000000000000000000000000080825233600483015273ffffffffffffffffffffffffffffffffffffffff858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af11580156108c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e99190611127565b7fffffffff000000000000000000000000000000000000000000000000000000001614610972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016104b1565b505050565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e5445440000000000000000000000000000000000000000000060448201526064016104b1565b919050565b600073ffffffffffffffffffffffffffffffffffffffff8216610a87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f41444452455353000000000000000000000000000000000000000060448201526064016104b1565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b6001805461036b906110d4565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610b5f85858561053b565b73ffffffffffffffffffffffffffffffffffffffff84163b15610ca4576040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063150b7a0290610bd89033908a90899089908990600401611144565b6020604051808303816000875af1158015610bf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1b9190611127565b7fffffffff000000000000000000000000000000000000000000000000000000001614610ca4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016104b1565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff8216610d28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016104b1565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610db4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f414c52454144595f4d494e54454400000000000000000000000000000000000060448201526064016104b1565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610e7257600080fd5b50565b600060208284031215610e8757600080fd5b8135610e9281610e44565b9392505050565b600060208083528351808285015260005b81811015610ec657858101830151858201604001528201610eaa565b81811115610ed8576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610f1e57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a0357600080fd5b60008060408385031215610f5c57600080fd5b610f6583610f25565b946020939093013593505050565b600080600060608486031215610f8857600080fd5b610f9184610f25565b9250610f9f60208501610f25565b9150604084013590509250925092565b600060208284031215610fc157600080fd5b610e9282610f25565b60008060408385031215610fdd57600080fd5b610fe683610f25565b915060208301358015158114610ffb57600080fd5b809150509250929050565b60008060008060006080868803121561101e57600080fd5b61102786610f25565b945061103560208701610f25565b935060408601359250606086013567ffffffffffffffff8082111561105957600080fd5b818801915088601f83011261106d57600080fd5b81358181111561107c57600080fd5b89602082850101111561108e57600080fd5b9699959850939650602001949392505050565b600080604083850312156110b457600080fd5b6110bd83610f25565b91506110cb60208401610f25565b90509250929050565b600181811c908216806110e857607f821691505b602082108103611121577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006020828403121561113957600080fd5b8151610e9281610e44565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168301019050969550505050505056fea164736f6c634300080f000a","sourceMap":"128:257:302:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4729:335:99;;;;;;:::i;:::-;;:::i;:::-;;;611:14:334;;604:22;586:41;;574:2;559:18;4729:335:99;;;;;;;;886:18;;;:::i;:::-;;;;;;;:::i;1831:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1660:42:334;1648:55;;;1630:74;;1618:2;1603:18;1831:46:99;1484:226:334;2440:282:99;;;;;;:::i;:::-;;:::i;:::-;;2937:741;;;;;;:::i;:::-;;:::i;209:85:302:-;;;;;;:::i;:::-;;:::i;3684:410:99:-;;;;;;:::i;:::-;;:::i;1314:149::-;;;;;;:::i;:::-;;:::i;1469:168::-;;;;;;:::i;:::-;;:::i;:::-;;;2845:25:334;;;2833:2;2818:18;1469:168:99;2699:177:334;911:20:99;;;:::i;2728:203::-;;;;;;:::i;:::-;;:::i;4100:441::-;;;;;;:::i;:::-;;:::i;300:83:302:-;;;;;;:::i;:::-;-1:-1:-1;365:13:302;;300:83;1884:68:99;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4729:335;4805:4;4840:25;;;;;;:100;;-1:-1:-1;4915:25:99;;;;;4840:100;:175;;;-1:-1:-1;4990:25:99;;;;;4840:175;4821:194;4729:335;-1:-1:-1;;4729:335:99:o;886:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2440:282::-;2511:13;2527:12;;;:8;:12;;;;;;;;2558:10;:19;;;:58;;-1:-1:-1;2581:23:99;;;;;;;:16;:23;;;;;;;;2605:10;2581:35;;;;;;;;;;2558:58;2550:85;;;;;;;4955:2:334;2550:85:99;;;4937:21:334;4994:2;4974:18;;;4967:30;5033:16;5013:18;;;5006:44;5067:18;;2550:85:99;;;;;;;;;2646:15;;;;:11;:15;;;;;;:25;;;;;;;;;;;;;;2687:28;;2646:15;;2687:28;;;;;;;2501:221;2440:282;;:::o;2937:741::-;3068:12;;;;:8;:12;;;;;;;3060:20;;;3068:12;;3060:20;3052:43;;;;;;;5298:2:334;3052:43:99;;;5280:21:334;5337:2;5317:18;;;5310:30;5376:12;5356:18;;;5349:40;5406:18;;3052:43:99;5096:334:334;3052:43:99;3114:16;;;3106:46;;;;;;;5637:2:334;3106:46:99;;;5619:21:334;5676:2;5656:18;;;5649:30;5715:19;5695:18;;;5688:47;5752:18;;3106:46:99;5435:341:334;3106:46:99;3184:10;:18;;;;;:56;;-1:-1:-1;3206:22:99;;;;;;;:16;:22;;;;;;;;3229:10;3206:34;;;;;;;;;;3184:56;:89;;;-1:-1:-1;3258:15:99;;;;:11;:15;;;;;;;;3244:10;:29;3184:89;3163:150;;;;;;;4955:2:334;3163:150:99;;;4937:21:334;4994:2;4974:18;;;4967:30;5033:16;5013:18;;;5006:44;5067:18;;3163:150:99;4753:338:334;3163:150:99;3513:16;;;;;;;;:10;:16;;;;;;;;:18;;;;;;3546:14;;;;;;;;;:16;;3513:18;3546:16;;;3583:12;;;:8;:12;;;;;:17;;;;;;;;;;;3618:11;:15;;;;;;3611:22;;;;;;;;3649;;3592:2;;3546:14;3513:16;3649:22;;;2937:741;;;:::o;209:85:302:-;269:18;275:2;279:7;269:5;:18::i;:::-;209:85;;:::o;3684:410:99:-;3803:26;3816:4;3822:2;3826;3803:12;:26::i;:::-;3844:14;;;;:19;3840:247;;3902:66;;3992:45;3902:66;;;3943:10;3902:66;;;6109:34:334;3902:40:99;6179:15:334;;;6159:18;;;6152:43;6211:18;;;6204:34;;;6274:3;6254:18;;;6247:31;-1:-1:-1;6294:19:334;;;6287:30;3992:45:99;;3902:40;;;;3992:45;;6334:19:334;;3902:66:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:135;;;3877:210;;;;;;;6820:2:334;3877:210:99;;;6802:21:334;6859:2;6839:18;;;6832:30;6898:18;6878;;;6871:46;6934:18;;3877:210:99;6618:340:334;3877:210:99;3684:410;;;:::o;1314:149::-;1372:13;1414:12;;;:8;:12;;;;;;1405:36;1414:12;;1397:59;;;;;;;7165:2:334;1397:59:99;;;7147:21:334;7204:2;7184:18;;;7177:30;7243:12;7223:18;;;7216:40;7273:18;;1397:59:99;6963:334:334;1397:59:99;1314:149;;;:::o;1469:168::-;1532:7;1559:19;;;1551:44;;;;;;;7504:2:334;1551:44:99;;;7486:21:334;7543:2;7523:18;;;7516:30;7582:14;7562:18;;;7555:42;7614:18;;1551:44:99;7302:336:334;1551:44:99;-1:-1:-1;1613:17:99;;;;;;:10;:17;;;;;;;1469:168::o;911:20::-;;;;;;;:::i;2728:203::-;2830:10;2813:28;;;;:16;:28;;;;;;;;;:38;;;;;;;;;;;;:49;;;;;;;;;;;;;2878:46;;586:41:334;;;2813:38:99;;2830:10;2878:46;;559:18:334;2878:46:99;;;;;;;2728:203;;:::o;4100:441::-;4248:26;4261:4;4267:2;4271;4248:12;:26::i;:::-;4289:14;;;;:19;4285:249;;4347:68;;4439:45;4347:68;;;4439:45;4347:40;;;;4439:45;;4347:68;;4388:10;;4400:4;;4406:2;;4410:4;;;;4347:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:137;;;4322:212;;;;;;;6820:2:334;4322:212:99;;;6802:21:334;6859:2;6839:18;;;6832:30;6898:18;6878;;;6871:46;6934:18;;4322:212:99;6618:340:334;4322:212:99;4100:441;;;;;:::o;5258:371::-;5332:16;;;5324:46;;;;;;;5637:2:334;5324:46:99;;;5619:21:334;5676:2;5656:18;;;5649:30;5715:19;5695:18;;;5688:47;5752:18;;5324:46:99;5435:341:334;5324:46:99;5413:1;5389:12;;;:8;:12;;;;;;:26;:12;:26;5381:53;;;;;;;8594:2:334;5381:53:99;;;8576:21:334;8633:2;8613:18;;;8606:30;8672:16;8652:18;;;8645:44;8706:18;;5381:53:99;8392:338:334;5381:53:99;5524:14;;;;;;;:10;:14;;;;;;;;:16;;;;;;5561:12;;;:8;:12;;;;;;:17;;;;;;;;5594:28;5570:2;;5524:14;;5594:28;;5524:14;;5594:28;5258:371;;:::o;14:177:334:-;99:66;92:5;88:78;81:5;78:89;68:117;;181:1;178;171:12;68:117;14:177;:::o;196:245::-;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;362:9;349:23;381:30;405:5;381:30;:::i;:::-;430:5;196:245;-1:-1:-1;;;196:245:334:o;638:656::-;750:4;779:2;808;797:9;790:21;840:6;834:13;883:6;878:2;867:9;863:18;856:34;908:1;918:140;932:6;929:1;926:13;918:140;;;1027:14;;;1023:23;;1017:30;993:17;;;1012:2;989:26;982:66;947:10;;918:140;;;1076:6;1073:1;1070:13;1067:91;;;1146:1;1141:2;1132:6;1121:9;1117:22;1113:31;1106:42;1067:91;-1:-1:-1;1210:2:334;1198:15;1215:66;1194:88;1179:104;;;;1285:2;1175:113;;638:656;-1:-1:-1;;;638:656:334:o;1299:180::-;1358:6;1411:2;1399:9;1390:7;1386:23;1382:32;1379:52;;;1427:1;1424;1417:12;1379:52;-1:-1:-1;1450:23:334;;1299:180;-1:-1:-1;1299:180:334:o;1715:196::-;1783:20;;1843:42;1832:54;;1822:65;;1812:93;;1901:1;1898;1891:12;1916:254;1984:6;1992;2045:2;2033:9;2024:7;2020:23;2016:32;2013:52;;;2061:1;2058;2051:12;2013:52;2084:29;2103:9;2084:29;:::i;:::-;2074:39;2160:2;2145:18;;;;2132:32;;-1:-1:-1;;;1916:254:334:o;2175:328::-;2252:6;2260;2268;2321:2;2309:9;2300:7;2296:23;2292:32;2289:52;;;2337:1;2334;2327:12;2289:52;2360:29;2379:9;2360:29;:::i;:::-;2350:39;;2408:38;2442:2;2431:9;2427:18;2408:38;:::i;:::-;2398:48;;2493:2;2482:9;2478:18;2465:32;2455:42;;2175:328;;;;;:::o;2508:186::-;2567:6;2620:2;2608:9;2599:7;2595:23;2591:32;2588:52;;;2636:1;2633;2626:12;2588:52;2659:29;2678:9;2659:29;:::i;2881:347::-;2946:6;2954;3007:2;2995:9;2986:7;2982:23;2978:32;2975:52;;;3023:1;3020;3013:12;2975:52;3046:29;3065:9;3046:29;:::i;:::-;3036:39;;3125:2;3114:9;3110:18;3097:32;3172:5;3165:13;3158:21;3151:5;3148:32;3138:60;;3194:1;3191;3184:12;3138:60;3217:5;3207:15;;;2881:347;;;;;:::o;3233:808::-;3330:6;3338;3346;3354;3362;3415:3;3403:9;3394:7;3390:23;3386:33;3383:53;;;3432:1;3429;3422:12;3383:53;3455:29;3474:9;3455:29;:::i;:::-;3445:39;;3503:38;3537:2;3526:9;3522:18;3503:38;:::i;:::-;3493:48;;3588:2;3577:9;3573:18;3560:32;3550:42;;3643:2;3632:9;3628:18;3615:32;3666:18;3707:2;3699:6;3696:14;3693:34;;;3723:1;3720;3713:12;3693:34;3761:6;3750:9;3746:22;3736:32;;3806:7;3799:4;3795:2;3791:13;3787:27;3777:55;;3828:1;3825;3818:12;3777:55;3868:2;3855:16;3894:2;3886:6;3883:14;3880:34;;;3910:1;3907;3900:12;3880:34;3955:7;3950:2;3941:6;3937:2;3933:15;3929:24;3926:37;3923:57;;;3976:1;3973;3966:12;3923:57;3233:808;;;;-1:-1:-1;3233:808:334;;-1:-1:-1;4007:2:334;3999:11;;4029:6;3233:808;-1:-1:-1;;;3233:808:334:o;4046:260::-;4114:6;4122;4175:2;4163:9;4154:7;4150:23;4146:32;4143:52;;;4191:1;4188;4181:12;4143:52;4214:29;4233:9;4214:29;:::i;:::-;4204:39;;4262:38;4296:2;4285:9;4281:18;4262:38;:::i;:::-;4252:48;;4046:260;;;;;:::o;4311:437::-;4390:1;4386:12;;;;4433;;;4454:61;;4508:4;4500:6;4496:17;4486:27;;4454:61;4561:2;4553:6;4550:14;4530:18;4527:38;4524:218;;4598:77;4595:1;4588:88;4699:4;4696:1;4689:15;4727:4;4724:1;4717:15;4524:218;;4311:437;;;:::o;6364:249::-;6433:6;6486:2;6474:9;6465:7;6461:23;6457:32;6454:52;;;6502:1;6499;6492:12;6454:52;6534:9;6528:16;6553:30;6577:5;6553:30;:::i;7643:744::-;7847:4;7876:42;7957:2;7949:6;7945:15;7934:9;7927:34;8009:2;8001:6;7997:15;7992:2;7981:9;7977:18;7970:43;;8049:6;8044:2;8033:9;8029:18;8022:34;8092:3;8087:2;8076:9;8072:18;8065:31;8133:6;8127:3;8116:9;8112:19;8105:35;8191:6;8183;8177:3;8166:9;8162:19;8149:49;8248:1;8242:3;8233:6;8222:9;8218:22;8214:32;8207:43;8377:3;8307:66;8302:2;8294:6;8290:15;8286:88;8275:9;8271:104;8267:114;8259:122;;7643:744;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256)":"40c10f19","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/TestERC721.sol\":\"TestERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/tokens/ERC721.sol\":{\"keccak256\":\"0xdac91feb466e74905737338d80cac5303eb7aedcbe76eda11c45eaa728451075\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe01292f5b4d2182859cc30a773f5e9d1a91d02bd8b40fbb73a591cd67896408\",\"dweb:/ipfs/QmTUKUuFJ4QZRD8ge6eTorfni9RKhBtPo1wFVm3GFSgLW8\"]},\"test/mocks/TestERC721.sol\":{\"keccak256\":\"0x236ee8069909e5e9ace44c4ecac05152cfb5d022d43098463c9a253db5dbc4fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f1eaec3e6b5201ef43bb83dca9d92652e55069d20ea83b78f63c6bd5343b71a\",\"dweb:/ipfs/QmZa4Atac5131KqbMJMsN2RTKHTBfNgJtdJ23pQxf6uYia\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/TestERC721.sol":"TestERC721"},"evmVersion":"london","libraries":{}},"sources":{"lib/solmate/src/tokens/ERC721.sol":{"keccak256":"0xdac91feb466e74905737338d80cac5303eb7aedcbe76eda11c45eaa728451075","urls":["bzz-raw://fe01292f5b4d2182859cc30a773f5e9d1a91d02bd8b40fbb73a591cd67896408","dweb:/ipfs/QmTUKUuFJ4QZRD8ge6eTorfni9RKhBtPo1wFVm3GFSgLW8"],"license":"MIT"},"test/mocks/TestERC721.sol":{"keccak256":"0x236ee8069909e5e9ace44c4ecac05152cfb5d022d43098463c9a253db5dbc4fb","urls":["bzz-raw://7f1eaec3e6b5201ef43bb83dca9d92652e55069d20ea83b78f63c6bd5343b71a","dweb:/ipfs/QmZa4Atac5131KqbMJMsN2RTKHTBfNgJtdJ23pQxf6uYia"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":60550,"contract":"test/mocks/TestERC721.sol:TestERC721","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":60552,"contract":"test/mocks/TestERC721.sol:TestERC721","label":"symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":60563,"contract":"test/mocks/TestERC721.sol:TestERC721","label":"_ownerOf","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_address)"},{"astId":60567,"contract":"test/mocks/TestERC721.sol:TestERC721","label":"_balanceOf","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":60616,"contract":"test/mocks/TestERC721.sol:TestERC721","label":"getApproved","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_address)"},{"astId":60622,"contract":"test/mocks/TestERC721.sol:TestERC721","label":"isApprovedForAll","offset":0,"slot":"5","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"test/mocks/TestERC721.sol","id":173765,"exportedSymbols":{"ERC721":[61065],"TestERC721":[173764]},"nodeType":"SourceUnit","src":"32:354:302","nodes":[{"id":173729,"nodeType":"PragmaDirective","src":"32:23:302","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":173731,"nodeType":"ImportDirective","src":"57:69:302","nodes":[],"absolutePath":"lib/solmate/src/tokens/ERC721.sol","file":"@rari-capital/solmate/src/tokens/ERC721.sol","nameLocation":"-1:-1:-1","scope":173765,"sourceUnit":61086,"symbolAliases":[{"foreign":{"id":173730,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61065,"src":"66:6:302","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":173764,"nodeType":"ContractDefinition","src":"128:257:302","nodes":[{"id":173741,"nodeType":"FunctionDefinition","src":"164:39:302","nodes":[],"body":{"id":173740,"nodeType":"Block","src":"200:3:302","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"54455354","id":173736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"185:6:302","typeDescriptions":{"typeIdentifier":"t_stringliteral_852daa74cc3c31fe64542bb9b8764cfb91cc30f9acf9389071ffb44a9eefde46","typeString":"literal_string \"TEST\""},"value":"TEST"},{"hexValue":"545354","id":173737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"193:5:302","typeDescriptions":{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},"value":"TST"}],"id":173738,"kind":"baseConstructorSpecifier","modifierName":{"id":173735,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":61065,"src":"178:6:302"},"nodeType":"ModifierInvocation","src":"178:21:302"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":173734,"nodeType":"ParameterList","parameters":[],"src":"175:2:302"},"returnParameters":{"id":173739,"nodeType":"ParameterList","parameters":[],"src":"200:0:302"},"scope":173764,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":173754,"nodeType":"FunctionDefinition","src":"209:85:302","nodes":[],"body":{"id":173753,"nodeType":"Block","src":"259:35:302","nodes":[],"statements":[{"expression":{"arguments":[{"id":173749,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173743,"src":"275:2:302","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":173750,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173745,"src":"279:7:302","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":173748,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60935,"src":"269:5:302","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":173751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"269:18:302","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173752,"nodeType":"ExpressionStatement","src":"269:18:302"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"218:4:302","parameters":{"id":173746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173743,"mutability":"mutable","name":"to","nameLocation":"231:2:302","nodeType":"VariableDeclaration","scope":173754,"src":"223:10:302","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173742,"name":"address","nodeType":"ElementaryTypeName","src":"223:7:302","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":173745,"mutability":"mutable","name":"tokenId","nameLocation":"243:7:302","nodeType":"VariableDeclaration","scope":173754,"src":"235:15:302","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173744,"name":"uint256","nodeType":"ElementaryTypeName","src":"235:7:302","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"222:29:302"},"returnParameters":{"id":173747,"nodeType":"ParameterList","parameters":[],"src":"259:0:302"},"scope":173764,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":173763,"nodeType":"FunctionDefinition","src":"300:83:302","nodes":[],"body":{"id":173762,"nodeType":"Block","src":"380:3:302","nodes":[],"statements":[]},"baseFunctions":[60559],"functionSelector":"c87b56dd","implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"309:8:302","overrides":{"id":173758,"nodeType":"OverrideSpecifier","overrides":[],"src":"347:8:302"},"parameters":{"id":173757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173756,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":173763,"src":"318:7:302","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":173755,"name":"uint256","nodeType":"ElementaryTypeName","src":"318:7:302","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"317:9:302"},"returnParameters":{"id":173761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173760,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":173763,"src":"365:13:302","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":173759,"name":"string","nodeType":"ElementaryTypeName","src":"365:6:302","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"364:15:302"},"scope":173764,"stateMutability":"pure","virtual":true,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":173732,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":61065,"src":"151:6:302"},"id":173733,"nodeType":"InheritanceSpecifier","src":"151:6:302"}],"canonicalName":"TestERC721","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[173764,61065],"name":"TestERC721","nameLocation":"137:10:302","scope":173765,"usedErrors":[]}],"license":"MIT"},"id":302}
{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405180604001604052806004815260200163151154d560e21b815250604051806040016040528060038152602001621514d560ea1b81525081600090816200005c919062000119565b5060016200006b828262000119565b505050620001e5565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200009f57607f821691505b602082108103620000c057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011457600081815260208120601f850160051c81016020861015620000ef5750805b601f850160051c820191505b818110156200011057828155600101620000fb565b5050505b505050565b81516001600160401b0381111562000135576200013562000074565b6200014d816200014684546200008a565b84620000c6565b602080601f8311600181146200018557600084156200016c5750858301515b600019600386901b1c1916600185901b17855562000110565b600085815260208120601f198616915b82811015620001b65788860151825594840194600190910190840162000195565b5085821015620001d55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6111d080620001f56000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb46514610211578063b88d4fde14610224578063c87b56dd14610237578063e985e9c51461024b57600080fd5b80636352211e146101d557806370a08231146101e857806395d89b411461020957600080fd5b8063095ea7b3116100c8578063095ea7b31461018757806323b872dd1461019c57806340c10f19146101af57806342842e0e146101c257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610e75565b610279565b60405190151581526020015b60405180910390f35b61011f61035e565b60405161010e9190610e99565b61016261013a366004610f0c565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010e565b61019a610195366004610f49565b6103ec565b005b61019a6101aa366004610f73565b61053b565b61019a6101bd366004610f49565b610802565b61019a6101d0366004610f73565b610810565b6101626101e3366004610f0c565b610977565b6101fb6101f6366004610faf565b610a08565b60405190815260200161010e565b61011f610ab0565b61019a61021f366004610fca565b610abd565b61019a610232366004611006565b610b54565b61011f610245366004610f0c565b50606090565b6101026102593660046110a1565b600560209081526000928352604080842090915290825290205460ff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061030c57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061035857507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000805461036b906110d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610397906110d4565b80156103e45780601f106103b9576101008083540402835291602001916103e4565b820191906000526020600020905b8154815290600101906020018083116103c757829003601f168201915b505050505081565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff163381148061044f575073ffffffffffffffffffffffffffffffffffffffff8116600090815260056020908152604080832033845290915290205460ff165b6104ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b60008281526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116146105cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57524f4e475f46524f4d0000000000000000000000000000000000000000000060448201526064016104b1565b73ffffffffffffffffffffffffffffffffffffffff8216610648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016104b1565b3373ffffffffffffffffffffffffffffffffffffffff8416148061069c575073ffffffffffffffffffffffffffffffffffffffff8316600090815260056020908152604080832033845290915290205460ff165b806106ca575060008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b610730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016104b1565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055938616808352848320805460010190558583526002825284832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61080c8282610cab565b5050565b61081b83838361053b565b73ffffffffffffffffffffffffffffffffffffffff82163b15610972576040517f150b7a020000000000000000000000000000000000000000000000000000000080825233600483015273ffffffffffffffffffffffffffffffffffffffff858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af11580156108c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e99190611127565b7fffffffff000000000000000000000000000000000000000000000000000000001614610972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016104b1565b505050565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e5445440000000000000000000000000000000000000000000060448201526064016104b1565b919050565b600073ffffffffffffffffffffffffffffffffffffffff8216610a87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f41444452455353000000000000000000000000000000000000000060448201526064016104b1565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b6001805461036b906110d4565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610b5f85858561053b565b73ffffffffffffffffffffffffffffffffffffffff84163b15610ca4576040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063150b7a0290610bd89033908a90899089908990600401611144565b6020604051808303816000875af1158015610bf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1b9190611127565b7fffffffff000000000000000000000000000000000000000000000000000000001614610ca4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016104b1565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff8216610d28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016104b1565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610db4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f414c52454144595f4d494e54454400000000000000000000000000000000000060448201526064016104b1565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610e7257600080fd5b50565b600060208284031215610e8757600080fd5b8135610e9281610e44565b9392505050565b600060208083528351808285015260005b81811015610ec657858101830151858201604001528201610eaa565b81811115610ed8576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610f1e57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a0357600080fd5b60008060408385031215610f5c57600080fd5b610f6583610f25565b946020939093013593505050565b600080600060608486031215610f8857600080fd5b610f9184610f25565b9250610f9f60208501610f25565b9150604084013590509250925092565b600060208284031215610fc157600080fd5b610e9282610f25565b60008060408385031215610fdd57600080fd5b610fe683610f25565b915060208301358015158114610ffb57600080fd5b809150509250929050565b60008060008060006080868803121561101e57600080fd5b61102786610f25565b945061103560208701610f25565b935060408601359250606086013567ffffffffffffffff8082111561105957600080fd5b818801915088601f83011261106d57600080fd5b81358181111561107c57600080fd5b89602082850101111561108e57600080fd5b9699959850939650602001949392505050565b600080604083850312156110b457600080fd5b6110bd83610f25565b91506110cb60208401610f25565b90509250929050565b600181811c908216806110e857607f821691505b602082108103611121577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006020828403121561113957600080fd5b8151610e9281610e44565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168301019050969550505050505056fea164736f6c634300080f000a","sourceMap":"128:257:318:-:0;;;164:39;;;;;;;;;;2141:111:100;;;;;;;;;;;;;-1:-1:-1;;;2141:111:100;;;;;;;;;;;;;;;;-1:-1:-1;;;2141:111:100;;;2214:5;2207:4;:12;;;;;;:::i;:::-;-1:-1:-1;2229:6:100;:16;2238:7;2229:6;:16;:::i;:::-;;2141:111;;128:257:318;;14:127:350;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:350;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:350;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:350;;;2580:26;2531:89;-1:-1:-1;;1335:1:350;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:350;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:350;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:350;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:350:o;:::-;128:257:318;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb46514610211578063b88d4fde14610224578063c87b56dd14610237578063e985e9c51461024b57600080fd5b80636352211e146101d557806370a08231146101e857806395d89b411461020957600080fd5b8063095ea7b3116100c8578063095ea7b31461018757806323b872dd1461019c57806340c10f19146101af57806342842e0e146101c257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610e75565b610279565b60405190151581526020015b60405180910390f35b61011f61035e565b60405161010e9190610e99565b61016261013a366004610f0c565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010e565b61019a610195366004610f49565b6103ec565b005b61019a6101aa366004610f73565b61053b565b61019a6101bd366004610f49565b610802565b61019a6101d0366004610f73565b610810565b6101626101e3366004610f0c565b610977565b6101fb6101f6366004610faf565b610a08565b60405190815260200161010e565b61011f610ab0565b61019a61021f366004610fca565b610abd565b61019a610232366004611006565b610b54565b61011f610245366004610f0c565b50606090565b6101026102593660046110a1565b600560209081526000928352604080842090915290825290205460ff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061030c57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061035857507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000805461036b906110d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610397906110d4565b80156103e45780601f106103b9576101008083540402835291602001916103e4565b820191906000526020600020905b8154815290600101906020018083116103c757829003601f168201915b505050505081565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff163381148061044f575073ffffffffffffffffffffffffffffffffffffffff8116600090815260056020908152604080832033845290915290205460ff165b6104ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b60008281526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116146105cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57524f4e475f46524f4d0000000000000000000000000000000000000000000060448201526064016104b1565b73ffffffffffffffffffffffffffffffffffffffff8216610648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016104b1565b3373ffffffffffffffffffffffffffffffffffffffff8416148061069c575073ffffffffffffffffffffffffffffffffffffffff8316600090815260056020908152604080832033845290915290205460ff165b806106ca575060008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b610730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016104b1565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055938616808352848320805460010190558583526002825284832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61080c8282610cab565b5050565b61081b83838361053b565b73ffffffffffffffffffffffffffffffffffffffff82163b15610972576040517f150b7a020000000000000000000000000000000000000000000000000000000080825233600483015273ffffffffffffffffffffffffffffffffffffffff858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af11580156108c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e99190611127565b7fffffffff000000000000000000000000000000000000000000000000000000001614610972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016104b1565b505050565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e5445440000000000000000000000000000000000000000000060448201526064016104b1565b919050565b600073ffffffffffffffffffffffffffffffffffffffff8216610a87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f41444452455353000000000000000000000000000000000000000060448201526064016104b1565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b6001805461036b906110d4565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610b5f85858561053b565b73ffffffffffffffffffffffffffffffffffffffff84163b15610ca4576040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063150b7a0290610bd89033908a90899089908990600401611144565b6020604051808303816000875af1158015610bf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1b9190611127565b7fffffffff000000000000000000000000000000000000000000000000000000001614610ca4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016104b1565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff8216610d28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016104b1565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610db4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f414c52454144595f4d494e54454400000000000000000000000000000000000060448201526064016104b1565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610e7257600080fd5b50565b600060208284031215610e8757600080fd5b8135610e9281610e44565b9392505050565b600060208083528351808285015260005b81811015610ec657858101830151858201604001528201610eaa565b81811115610ed8576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610f1e57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a0357600080fd5b60008060408385031215610f5c57600080fd5b610f6583610f25565b946020939093013593505050565b600080600060608486031215610f8857600080fd5b610f9184610f25565b9250610f9f60208501610f25565b9150604084013590509250925092565b600060208284031215610fc157600080fd5b610e9282610f25565b60008060408385031215610fdd57600080fd5b610fe683610f25565b915060208301358015158114610ffb57600080fd5b809150509250929050565b60008060008060006080868803121561101e57600080fd5b61102786610f25565b945061103560208701610f25565b935060408601359250606086013567ffffffffffffffff8082111561105957600080fd5b818801915088601f83011261106d57600080fd5b81358181111561107c57600080fd5b89602082850101111561108e57600080fd5b9699959850939650602001949392505050565b600080604083850312156110b457600080fd5b6110bd83610f25565b91506110cb60208401610f25565b90509250929050565b600181811c908216806110e857607f821691505b602082108103611121577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006020828403121561113957600080fd5b8151610e9281610e44565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168301019050969550505050505056fea164736f6c634300080f000a","sourceMap":"128:257:318:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4729:335:100;;;;;;:::i;:::-;;:::i;:::-;;;611:14:350;;604:22;586:41;;574:2;559:18;4729:335:100;;;;;;;;886:18;;;:::i;:::-;;;;;;;:::i;1831:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1660:42:350;1648:55;;;1630:74;;1618:2;1603:18;1831:46:100;1484:226:350;2440:282:100;;;;;;:::i;:::-;;:::i;:::-;;2937:741;;;;;;:::i;:::-;;:::i;209:85:318:-;;;;;;:::i;:::-;;:::i;3684:410:100:-;;;;;;:::i;:::-;;:::i;1314:149::-;;;;;;:::i;:::-;;:::i;1469:168::-;;;;;;:::i;:::-;;:::i;:::-;;;2845:25:350;;;2833:2;2818:18;1469:168:100;2699:177:350;911:20:100;;;:::i;2728:203::-;;;;;;:::i;:::-;;:::i;4100:441::-;;;;;;:::i;:::-;;:::i;300:83:318:-;;;;;;:::i;:::-;-1:-1:-1;365:13:318;;300:83;1884:68:100;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4729:335;4805:4;4840:25;;;;;;:100;;-1:-1:-1;4915:25:100;;;;;4840:100;:175;;;-1:-1:-1;4990:25:100;;;;;4840:175;4821:194;4729:335;-1:-1:-1;;4729:335:100:o;886:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2440:282::-;2511:13;2527:12;;;:8;:12;;;;;;;;2558:10;:19;;;:58;;-1:-1:-1;2581:23:100;;;;;;;:16;:23;;;;;;;;2605:10;2581:35;;;;;;;;;;2558:58;2550:85;;;;;;;4955:2:350;2550:85:100;;;4937:21:350;4994:2;4974:18;;;4967:30;5033:16;5013:18;;;5006:44;5067:18;;2550:85:100;;;;;;;;;2646:15;;;;:11;:15;;;;;;:25;;;;;;;;;;;;;;2687:28;;2646:15;;2687:28;;;;;;;2501:221;2440:282;;:::o;2937:741::-;3068:12;;;;:8;:12;;;;;;;3060:20;;;3068:12;;3060:20;3052:43;;;;;;;5298:2:350;3052:43:100;;;5280:21:350;5337:2;5317:18;;;5310:30;5376:12;5356:18;;;5349:40;5406:18;;3052:43:100;5096:334:350;3052:43:100;3114:16;;;3106:46;;;;;;;5637:2:350;3106:46:100;;;5619:21:350;5676:2;5656:18;;;5649:30;5715:19;5695:18;;;5688:47;5752:18;;3106:46:100;5435:341:350;3106:46:100;3184:10;:18;;;;;:56;;-1:-1:-1;3206:22:100;;;;;;;:16;:22;;;;;;;;3229:10;3206:34;;;;;;;;;;3184:56;:89;;;-1:-1:-1;3258:15:100;;;;:11;:15;;;;;;;;3244:10;:29;3184:89;3163:150;;;;;;;4955:2:350;3163:150:100;;;4937:21:350;4994:2;4974:18;;;4967:30;5033:16;5013:18;;;5006:44;5067:18;;3163:150:100;4753:338:350;3163:150:100;3513:16;;;;;;;;:10;:16;;;;;;;;:18;;;;;;3546:14;;;;;;;;;:16;;3513:18;3546:16;;;3583:12;;;:8;:12;;;;;:17;;;;;;;;;;;3618:11;:15;;;;;;3611:22;;;;;;;;3649;;3592:2;;3546:14;3513:16;3649:22;;;2937:741;;;:::o;209:85:318:-;269:18;275:2;279:7;269:5;:18::i;:::-;209:85;;:::o;3684:410:100:-;3803:26;3816:4;3822:2;3826;3803:12;:26::i;:::-;3844:14;;;;:19;3840:247;;3902:66;;3992:45;3902:66;;;3943:10;3902:66;;;6109:34:350;3902:40:100;6179:15:350;;;6159:18;;;6152:43;6211:18;;;6204:34;;;6274:3;6254:18;;;6247:31;-1:-1:-1;6294:19:350;;;6287:30;3992:45:100;;3902:40;;;;3992:45;;6334:19:350;;3902:66:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:135;;;3877:210;;;;;;;6820:2:350;3877:210:100;;;6802:21:350;6859:2;6839:18;;;6832:30;6898:18;6878;;;6871:46;6934:18;;3877:210:100;6618:340:350;3877:210:100;3684:410;;;:::o;1314:149::-;1372:13;1414:12;;;:8;:12;;;;;;1405:36;1414:12;;1397:59;;;;;;;7165:2:350;1397:59:100;;;7147:21:350;7204:2;7184:18;;;7177:30;7243:12;7223:18;;;7216:40;7273:18;;1397:59:100;6963:334:350;1397:59:100;1314:149;;;:::o;1469:168::-;1532:7;1559:19;;;1551:44;;;;;;;7504:2:350;1551:44:100;;;7486:21:350;7543:2;7523:18;;;7516:30;7582:14;7562:18;;;7555:42;7614:18;;1551:44:100;7302:336:350;1551:44:100;-1:-1:-1;1613:17:100;;;;;;:10;:17;;;;;;;1469:168::o;911:20::-;;;;;;;:::i;2728:203::-;2830:10;2813:28;;;;:16;:28;;;;;;;;;:38;;;;;;;;;;;;:49;;;;;;;;;;;;;2878:46;;586:41:350;;;2813:38:100;;2830:10;2878:46;;559:18:350;2878:46:100;;;;;;;2728:203;;:::o;4100:441::-;4248:26;4261:4;4267:2;4271;4248:12;:26::i;:::-;4289:14;;;;:19;4285:249;;4347:68;;4439:45;4347:68;;;4439:45;4347:40;;;;4439:45;;4347:68;;4388:10;;4400:4;;4406:2;;4410:4;;;;4347:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:137;;;4322:212;;;;;;;6820:2:350;4322:212:100;;;6802:21:350;6859:2;6839:18;;;6832:30;6898:18;6878;;;6871:46;6934:18;;4322:212:100;6618:340:350;4322:212:100;4100:441;;;;;:::o;5258:371::-;5332:16;;;5324:46;;;;;;;5637:2:350;5324:46:100;;;5619:21:350;5676:2;5656:18;;;5649:30;5715:19;5695:18;;;5688:47;5752:18;;5324:46:100;5435:341:350;5324:46:100;5413:1;5389:12;;;:8;:12;;;;;;:26;:12;:26;5381:53;;;;;;;8594:2:350;5381:53:100;;;8576:21:350;8633:2;8613:18;;;8606:30;8672:16;8652:18;;;8645:44;8706:18;;5381:53:100;8392:338:350;5381:53:100;5524:14;;;;;;;:10;:14;;;;;;;;:16;;;;;;5561:12;;;:8;:12;;;;;;:17;;;;;;;;5594:28;5570:2;;5524:14;;5594:28;;5524:14;;5594:28;5258:371;;:::o;14:177:350:-;99:66;92:5;88:78;81:5;78:89;68:117;;181:1;178;171:12;68:117;14:177;:::o;196:245::-;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;362:9;349:23;381:30;405:5;381:30;:::i;:::-;430:5;196:245;-1:-1:-1;;;196:245:350:o;638:656::-;750:4;779:2;808;797:9;790:21;840:6;834:13;883:6;878:2;867:9;863:18;856:34;908:1;918:140;932:6;929:1;926:13;918:140;;;1027:14;;;1023:23;;1017:30;993:17;;;1012:2;989:26;982:66;947:10;;918:140;;;1076:6;1073:1;1070:13;1067:91;;;1146:1;1141:2;1132:6;1121:9;1117:22;1113:31;1106:42;1067:91;-1:-1:-1;1210:2:350;1198:15;1215:66;1194:88;1179:104;;;;1285:2;1175:113;;638:656;-1:-1:-1;;;638:656:350:o;1299:180::-;1358:6;1411:2;1399:9;1390:7;1386:23;1382:32;1379:52;;;1427:1;1424;1417:12;1379:52;-1:-1:-1;1450:23:350;;1299:180;-1:-1:-1;1299:180:350:o;1715:196::-;1783:20;;1843:42;1832:54;;1822:65;;1812:93;;1901:1;1898;1891:12;1916:254;1984:6;1992;2045:2;2033:9;2024:7;2020:23;2016:32;2013:52;;;2061:1;2058;2051:12;2013:52;2084:29;2103:9;2084:29;:::i;:::-;2074:39;2160:2;2145:18;;;;2132:32;;-1:-1:-1;;;1916:254:350:o;2175:328::-;2252:6;2260;2268;2321:2;2309:9;2300:7;2296:23;2292:32;2289:52;;;2337:1;2334;2327:12;2289:52;2360:29;2379:9;2360:29;:::i;:::-;2350:39;;2408:38;2442:2;2431:9;2427:18;2408:38;:::i;:::-;2398:48;;2493:2;2482:9;2478:18;2465:32;2455:42;;2175:328;;;;;:::o;2508:186::-;2567:6;2620:2;2608:9;2599:7;2595:23;2591:32;2588:52;;;2636:1;2633;2626:12;2588:52;2659:29;2678:9;2659:29;:::i;2881:347::-;2946:6;2954;3007:2;2995:9;2986:7;2982:23;2978:32;2975:52;;;3023:1;3020;3013:12;2975:52;3046:29;3065:9;3046:29;:::i;:::-;3036:39;;3125:2;3114:9;3110:18;3097:32;3172:5;3165:13;3158:21;3151:5;3148:32;3138:60;;3194:1;3191;3184:12;3138:60;3217:5;3207:15;;;2881:347;;;;;:::o;3233:808::-;3330:6;3338;3346;3354;3362;3415:3;3403:9;3394:7;3390:23;3386:33;3383:53;;;3432:1;3429;3422:12;3383:53;3455:29;3474:9;3455:29;:::i;:::-;3445:39;;3503:38;3537:2;3526:9;3522:18;3503:38;:::i;:::-;3493:48;;3588:2;3577:9;3573:18;3560:32;3550:42;;3643:2;3632:9;3628:18;3615:32;3666:18;3707:2;3699:6;3696:14;3693:34;;;3723:1;3720;3713:12;3693:34;3761:6;3750:9;3746:22;3736:32;;3806:7;3799:4;3795:2;3791:13;3787:27;3777:55;;3828:1;3825;3818:12;3777:55;3868:2;3855:16;3894:2;3886:6;3883:14;3880:34;;;3910:1;3907;3900:12;3880:34;3955:7;3950:2;3941:6;3937:2;3933:15;3929:24;3926:37;3923:57;;;3976:1;3973;3966:12;3923:57;3233:808;;;;-1:-1:-1;3233:808:350;;-1:-1:-1;4007:2:350;3999:11;;4029:6;3233:808;-1:-1:-1;;;3233:808:350:o;4046:260::-;4114:6;4122;4175:2;4163:9;4154:7;4150:23;4146:32;4143:52;;;4191:1;4188;4181:12;4143:52;4214:29;4233:9;4214:29;:::i;:::-;4204:39;;4262:38;4296:2;4285:9;4281:18;4262:38;:::i;:::-;4252:48;;4046:260;;;;;:::o;4311:437::-;4390:1;4386:12;;;;4433;;;4454:61;;4508:4;4500:6;4496:17;4486:27;;4454:61;4561:2;4553:6;4550:14;4530:18;4527:38;4524:218;;4598:77;4595:1;4588:88;4699:4;4696:1;4689:15;4727:4;4724:1;4717:15;4524:218;;4311:437;;;:::o;6364:249::-;6433:6;6486:2;6474:9;6465:7;6461:23;6457:32;6454:52;;;6502:1;6499;6492:12;6454:52;6534:9;6528:16;6553:30;6577:5;6553:30;:::i;7643:744::-;7847:4;7876:42;7957:2;7949:6;7945:15;7934:9;7927:34;8009:2;8001:6;7997:15;7992:2;7981:9;7977:18;7970:43;;8049:6;8044:2;8033:9;8029:18;8022:34;8092:3;8087:2;8076:9;8072:18;8065:31;8133:6;8127:3;8116:9;8112:19;8105:35;8191:6;8183;8177:3;8166:9;8162:19;8149:49;8248:1;8242:3;8233:6;8222:9;8218:22;8214:32;8207:43;8377:3;8307:66;8302:2;8294:6;8290:15;8286:88;8275:9;8271:104;8267:114;8259:122;;7643:744;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256)":"40c10f19","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/TestERC721.sol\":\"TestERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/tokens/ERC721.sol\":{\"keccak256\":\"0xdac91feb466e74905737338d80cac5303eb7aedcbe76eda11c45eaa728451075\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe01292f5b4d2182859cc30a773f5e9d1a91d02bd8b40fbb73a591cd67896408\",\"dweb:/ipfs/QmTUKUuFJ4QZRD8ge6eTorfni9RKhBtPo1wFVm3GFSgLW8\"]},\"test/mocks/TestERC721.sol\":{\"keccak256\":\"0x236ee8069909e5e9ace44c4ecac05152cfb5d022d43098463c9a253db5dbc4fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f1eaec3e6b5201ef43bb83dca9d92652e55069d20ea83b78f63c6bd5343b71a\",\"dweb:/ipfs/QmZa4Atac5131KqbMJMsN2RTKHTBfNgJtdJ23pQxf6uYia\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/TestERC721.sol":"TestERC721"},"evmVersion":"london","libraries":{}},"sources":{"lib/solmate/src/tokens/ERC721.sol":{"keccak256":"0xdac91feb466e74905737338d80cac5303eb7aedcbe76eda11c45eaa728451075","urls":["bzz-raw://fe01292f5b4d2182859cc30a773f5e9d1a91d02bd8b40fbb73a591cd67896408","dweb:/ipfs/QmTUKUuFJ4QZRD8ge6eTorfni9RKhBtPo1wFVm3GFSgLW8"],"license":"MIT"},"test/mocks/TestERC721.sol":{"keccak256":"0x236ee8069909e5e9ace44c4ecac05152cfb5d022d43098463c9a253db5dbc4fb","urls":["bzz-raw://7f1eaec3e6b5201ef43bb83dca9d92652e55069d20ea83b78f63c6bd5343b71a","dweb:/ipfs/QmZa4Atac5131KqbMJMsN2RTKHTBfNgJtdJ23pQxf6uYia"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":61875,"contract":"test/mocks/TestERC721.sol:TestERC721","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":61877,"contract":"test/mocks/TestERC721.sol:TestERC721","label":"symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":61888,"contract":"test/mocks/TestERC721.sol:TestERC721","label":"_ownerOf","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_address)"},{"astId":61892,"contract":"test/mocks/TestERC721.sol:TestERC721","label":"_balanceOf","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":61941,"contract":"test/mocks/TestERC721.sol:TestERC721","label":"getApproved","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_address)"},{"astId":61947,"contract":"test/mocks/TestERC721.sol:TestERC721","label":"isApprovedForAll","offset":0,"slot":"5","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":318}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"CALL","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success_","type":"bool","internalType":"bool"},{"name":"data_","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"DELEGATECALL","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"success_","type":"bool","internalType":"bool"},{"name":"data_","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setOwner","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnerUpdated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161071538038061071583398101604081905261002f9161007e565b600080546001600160a01b0319166001600160a01b03831690811782556040518392907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908290a350506100ae565b60006020828403121561009057600080fd5b81516001600160a01b03811681146100a757600080fd5b9392505050565b610658806100bd6000396000f3fe60806040526004361061003f5760003560e01c806313af4035146100445780636e2d44ae146100665780638da5cb5b14610090578063edee6239146100e2575b600080fd5b34801561005057600080fd5b5061006461005f366004610404565b6100f5565b005b610079610074366004610500565b6101eb565b604051610087929190610587565b60405180910390f35b34801561009c57600080fd5b506000546100bd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610087565b6100796100f03660046105e1565b6102e5565b60005473ffffffffffffffffffffffffffffffffffffffff16331461017b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b6000805460609073ffffffffffffffffffffffffffffffffffffffff163314610270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610172565b8473ffffffffffffffffffffffffffffffffffffffff168385604051610296919061062f565b60006040518083038185875af1925050503d80600081146102d3576040519150601f19603f3d011682016040523d82523d6000602084013e6102d8565b606091505b5090969095509350505050565b6000805460609073ffffffffffffffffffffffffffffffffffffffff16331461036a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610172565b8373ffffffffffffffffffffffffffffffffffffffff168360405161038f919061062f565b600060405180830381855af49150503d80600081146103ca576040519150601f19603f3d011682016040523d82523d6000602084013e6103cf565b606091505b50909590945092505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146103ff57600080fd5b919050565b60006020828403121561041657600080fd5b61041f826103db565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261046657600080fd5b813567ffffffffffffffff8082111561048157610481610426565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104c7576104c7610426565b816040528381528660208588010111156104e057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561051557600080fd5b61051e846103db565b9250602084013567ffffffffffffffff81111561053a57600080fd5b61054686828701610455565b925050604084013590509250925092565b60005b8381101561057257818101518382015260200161055a565b83811115610581576000848401525b50505050565b821515815260406020820152600082518060408401526105ae816060850160208701610557565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600080604083850312156105f457600080fd5b6105fd836103db565b9150602083013567ffffffffffffffff81111561061957600080fd5b61062585828601610455565b9150509250929050565b60008251610641818460208701610557565b919091019291505056fea164736f6c634300080f000a","sourceMap":"219:1282:192:-:0;;;300:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1034:5:97;:14;;-1:-1:-1;;;;;;1034:14:97;-1:-1:-1;;;;;1034:14:97;;;;;;;1064:32;;1034:14;;:5;1064:32;;1034:5;;1064:32;996:107;300:45:192;219:1282;;14:290:334;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:334;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:334:o;:::-;219:1282:192;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003f5760003560e01c806313af4035146100445780636e2d44ae146100665780638da5cb5b14610090578063edee6239146100e2575b600080fd5b34801561005057600080fd5b5061006461005f366004610404565b6100f5565b005b610079610074366004610500565b6101eb565b604051610087929190610587565b60405180910390f35b34801561009c57600080fd5b506000546100bd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610087565b6100796100f03660046105e1565b6102e5565b60005473ffffffffffffffffffffffffffffffffffffffff16331461017b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b6000805460609073ffffffffffffffffffffffffffffffffffffffff163314610270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610172565b8473ffffffffffffffffffffffffffffffffffffffff168385604051610296919061062f565b60006040518083038185875af1925050503d80600081146102d3576040519150601f19603f3d011682016040523d82523d6000602084013e6102d8565b606091505b5090969095509350505050565b6000805460609073ffffffffffffffffffffffffffffffffffffffff16331461036a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610172565b8373ffffffffffffffffffffffffffffffffffffffff168360405161038f919061062f565b600060405180830381855af49150503d80600081146103ca576040519150601f19603f3d011682016040523d82523d6000602084013e6103cf565b606091505b50909590945092505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146103ff57600080fd5b919050565b60006020828403121561041657600080fd5b61041f826103db565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261046657600080fd5b813567ffffffffffffffff8082111561048157610481610426565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104c7576104c7610426565b816040528381528660208588010111156104e057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561051557600080fd5b61051e846103db565b9250602084013567ffffffffffffffff81111561053a57600080fd5b61054686828701610455565b925050604084013590509250925092565b60005b8381101561057257818101518382015260200161055a565b83811115610581576000848401525b50505050565b821515815260406020820152600082518060408401526105ae816060850160208701610557565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600080604083850312156105f457600080fd5b6105fd836103db565b9150602083013567ffffffffffffffff81111561061957600080fd5b61062585828601610455565b9150509250929050565b60008251610641818460208701610557565b919091019291505056fea164736f6c634300080f000a","sourceMap":"219:1282:192:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1293:144:97;;;;;;;;;;-1:-1:-1;1293:144:97;;;;;:::i;:::-;;:::i;:::-;;651:277:192;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;679:20:97;;;;;;;;;;-1:-1:-1;679:20:97;;;;;;;;;;;2809:42:334;2797:55;;;2779:74;;2767:2;2752:18;679:20:97;2633:226:334;1186:313:192;;;;;;:::i;:::-;;:::i;1293:144:97:-;767:5;;;;753:10;:19;745:44;;;;;;;3465:2:334;745:44:97;;;3447:21:334;3504:2;3484:18;;;3477:30;3543:14;3523:18;;;3516:42;3575:18;;745:44:97;;;;;;;;;1364:5:::1;:16:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;1396:34:::1;::::0;1364:16;;1409:10:::1;::::0;1396:34:::1;::::0;1364:5;1396:34:::1;1293:144:::0;:::o;651:277:192:-;816:13;767:5:97;;831:18:192;;767:5:97;;753:10;:19;745:44;;;;;;;3465:2:334;745:44:97;;;3447:21:334;3504:2;3484:18;;;3477:30;3543:14;3523:18;;;3516:42;3575:18;;745:44:97;3263:336:334;745:44:97;885:7:192::1;:12;;906:6;915:5;885:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;865:56:192;;;;-1:-1:-1;651:277:192;-1:-1:-1;;;;651:277:192:o;1186:313::-;1335:13;767:5:97;;1350:18:192;;767:5:97;;753:10;:19;745:44;;;;;;;3465:2:334;745:44:97;;;3447:21:334;3504:2;3484:18;;;3477:30;3543:14;3523:18;;;3516:42;3575:18;;745:44:97;3263:336:334;745:44:97;1465:7:192::1;:20;;1486:5;1465:27;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;1445:47:192;;;;-1:-1:-1;1186:313:192;-1:-1:-1;;;1186:313:192:o;14:196:334:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:334:o;406:184::-;458:77;455:1;448:88;555:4;552:1;545:15;579:4;576:1;569:15;595:777;637:5;690:3;683:4;675:6;671:17;667:27;657:55;;708:1;705;698:12;657:55;744:6;731:20;770:18;807:2;803;800:10;797:36;;;813:18;;:::i;:::-;947:2;941:9;1009:4;1001:13;;852:66;997:22;;;1021:2;993:31;989:40;977:53;;;1045:18;;;1065:22;;;1042:46;1039:72;;;1091:18;;:::i;:::-;1131:10;1127:2;1120:22;1166:2;1158:6;1151:18;1212:3;1205:4;1200:2;1192:6;1188:15;1184:26;1181:35;1178:55;;;1229:1;1226;1219:12;1178:55;1293:2;1286:4;1278:6;1274:17;1267:4;1259:6;1255:17;1242:54;1340:1;1333:4;1328:2;1320:6;1316:15;1312:26;1305:37;1360:6;1351:15;;;;;;595:777;;;;:::o;1377:462::-;1463:6;1471;1479;1532:2;1520:9;1511:7;1507:23;1503:32;1500:52;;;1548:1;1545;1538:12;1500:52;1571:29;1590:9;1571:29;:::i;:::-;1561:39;;1651:2;1640:9;1636:18;1623:32;1678:18;1670:6;1667:30;1664:50;;;1710:1;1707;1700:12;1664:50;1733:49;1774:7;1765:6;1754:9;1750:22;1733:49;:::i;:::-;1723:59;;;1829:2;1818:9;1814:18;1801:32;1791:42;;1377:462;;;;;:::o;1844:258::-;1916:1;1926:113;1940:6;1937:1;1934:13;1926:113;;;2016:11;;;2010:18;1997:11;;;1990:39;1962:2;1955:10;1926:113;;;2057:6;2054:1;2051:13;2048:48;;;2092:1;2083:6;2078:3;2074:16;2067:27;2048:48;;1844:258;;;:::o;2107:521::-;2290:6;2283:14;2276:22;2265:9;2258:41;2335:2;2330;2319:9;2315:18;2308:30;2239:4;2367:6;2361:13;2410:6;2405:2;2394:9;2390:18;2383:34;2426:66;2485:6;2480:2;2469:9;2465:18;2460:2;2452:6;2448:15;2426:66;:::i;:::-;2544:2;2532:15;2549:66;2528:88;2513:104;;;;2619:2;2509:113;;2107:521;-1:-1:-1;;;2107:521:334:o;2864:394::-;2941:6;2949;3002:2;2990:9;2981:7;2977:23;2973:32;2970:52;;;3018:1;3015;3008:12;2970:52;3041:29;3060:9;3041:29;:::i;:::-;3031:39;;3121:2;3110:9;3106:18;3093:32;3148:18;3140:6;3137:30;3134:50;;;3180:1;3177;3170:12;3134:50;3203:49;3244:7;3235:6;3224:9;3220:22;3203:49;:::i;:::-;3193:59;;;2864:394;;;;;:::o;3604:274::-;3733:3;3771:6;3765:13;3787:53;3833:6;3828:3;3821:4;3813:6;3809:17;3787:53;:::i;:::-;3856:16;;;;;3604:274;-1:-1:-1;;3604:274:334:o","linkReferences":{}},"methodIdentifiers":{"CALL(address,bytes,uint256)":"6e2d44ae","DELEGATECALL(address,bytes)":"edee6239","owner()":"8da5cb5b","setOwner(address)":"13af4035"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"CALL\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success_\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"DELEGATECALL\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success_\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"CALL(address,bytes,uint256)\":{\"params\":{\"_data\":\"Data to send with the call.\",\"_target\":\"Address to call.\",\"_value\":\"ETH value to send with the call.\"},\"returns\":{\"data_\":\"Bytes data returned by the call.\",\"success_\":\"Boolean success value.\"}},\"DELEGATECALL(address,bytes)\":{\"params\":{\"_data\":\"Data to send with the call.\",\"_target\":\"Address to call.\"},\"returns\":{\"data_\":\"Bytes data returned by the call.\",\"success_\":\"Boolean success value.\"}},\"constructor\":{\"params\":{\"_owner\":\"Initial contract owner.\"}}},\"title\":\"Transactor\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"CALL(address,bytes,uint256)\":{\"notice\":\"Sends a CALL to a target address.\"},\"DELEGATECALL(address,bytes)\":{\"notice\":\"Sends a DELEGATECALL to a target address.\"}},\"notice\":\"Transactor is a minimal contract that can send transactions.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/Transactor.sol\":\"Transactor\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/auth/Owned.sol\":{\"keccak256\":\"0x7e91c80b0dd1a14a19cb9e661b99924043adab6d9d893bbfcf3a6a3dc23a6743\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://515890d9fc87d6762dae2354a3a0714a26c652f0ea5bb631122be1968ef8c0e9\",\"dweb:/ipfs/QmTRpQ7uoAR1vCACKJm14Ba3oKVLqcA9reTwbHAPxawVpM\"]},\"src/periphery/Transactor.sol\":{\"keccak256\":\"0x66d538c0c0ae7297a1f261777c50b06e841efb5e8a3b09cdde6cdde32dfa3b63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cab02028604b71a9acd1b6282cc867aec09b4e91fc64570c69d3484a0a7c12fe\",\"dweb:/ipfs/QmcxJ64nQde5XQY9b714NB6z6RnziNUhod12DgXDqNPcWe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnerUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"payable","type":"function","name":"CALL","outputs":[{"internalType":"bool","name":"success_","type":"bool"},{"internalType":"bytes","name":"data_","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"DELEGATECALL","outputs":[{"internalType":"bool","name":"success_","type":"bool"},{"internalType":"bytes","name":"data_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOwner"}],"devdoc":{"kind":"dev","methods":{"CALL(address,bytes,uint256)":{"params":{"_data":"Data to send with the call.","_target":"Address to call.","_value":"ETH value to send with the call."},"returns":{"data_":"Bytes data returned by the call.","success_":"Boolean success value."}},"DELEGATECALL(address,bytes)":{"params":{"_data":"Data to send with the call.","_target":"Address to call."},"returns":{"data_":"Bytes data returned by the call.","success_":"Boolean success value."}},"constructor":{"params":{"_owner":"Initial contract owner."}}},"version":1},"userdoc":{"kind":"user","methods":{"CALL(address,bytes,uint256)":{"notice":"Sends a CALL to a target address."},"DELEGATECALL(address,bytes)":{"notice":"Sends a DELEGATECALL to a target address."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/Transactor.sol":"Transactor"},"evmVersion":"london","libraries":{}},"sources":{"lib/solmate/src/auth/Owned.sol":{"keccak256":"0x7e91c80b0dd1a14a19cb9e661b99924043adab6d9d893bbfcf3a6a3dc23a6743","urls":["bzz-raw://515890d9fc87d6762dae2354a3a0714a26c652f0ea5bb631122be1968ef8c0e9","dweb:/ipfs/QmTRpQ7uoAR1vCACKJm14Ba3oKVLqcA9reTwbHAPxawVpM"],"license":"AGPL-3.0-only"},"src/periphery/Transactor.sol":{"keccak256":"0x66d538c0c0ae7297a1f261777c50b06e841efb5e8a3b09cdde6cdde32dfa3b63","urls":["bzz-raw://cab02028604b71a9acd1b6282cc867aec09b4e91fc64570c69d3484a0a7c12fe","dweb:/ipfs/QmcxJ64nQde5XQY9b714NB6z6RnziNUhod12DgXDqNPcWe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":60084,"contract":"src/periphery/Transactor.sol:Transactor","label":"owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","methods":{"CALL(address,bytes,uint256)":{"notice":"Sends a CALL to a target address."},"DELEGATECALL(address,bytes)":{"notice":"Sends a DELEGATECALL to a target address."}},"notice":"Transactor is a minimal contract that can send transactions."},"devdoc":{"version":1,"kind":"dev","methods":{"CALL(address,bytes,uint256)":{"params":{"_data":"Data to send with the call.","_target":"Address to call.","_value":"ETH value to send with the call."},"returns":{"data_":"Bytes data returned by the call.","success_":"Boolean success value."}},"DELEGATECALL(address,bytes)":{"params":{"_data":"Data to send with the call.","_target":"Address to call."},"returns":{"data_":"Bytes data returned by the call.","success_":"Boolean success value."}},"constructor":{"params":{"_owner":"Initial contract owner."}}},"title":"Transactor"},"ast":{"absolutePath":"src/periphery/Transactor.sol","id":96047,"exportedSymbols":{"Owned":[60133],"Transactor":[96046]},"nodeType":"SourceUnit","src":"32:1470:192","nodes":[{"id":95978,"nodeType":"PragmaDirective","src":"32:23:192","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":95980,"nodeType":"ImportDirective","src":"57:65:192","nodes":[],"absolutePath":"lib/solmate/src/auth/Owned.sol","file":"@rari-capital/solmate/src/auth/Owned.sol","nameLocation":"-1:-1:-1","scope":96047,"sourceUnit":60134,"symbolAliases":[{"foreign":{"id":95979,"name":"Owned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60133,"src":"66:5:192","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":96046,"nodeType":"ContractDefinition","src":"219:1282:192","nodes":[{"id":95993,"nodeType":"FunctionDefinition","src":"300:45:192","nodes":[],"body":{"id":95992,"nodeType":"Block","src":"342:3:192","nodes":[],"statements":[]},"documentation":{"id":95984,"nodeType":"StructuredDocumentation","src":"254:41:192","text":"@param _owner Initial contract owner."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":95989,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95986,"src":"334:6:192","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":95990,"kind":"baseConstructorSpecifier","modifierName":{"id":95988,"name":"Owned","nodeType":"IdentifierPath","referencedDeclaration":60133,"src":"328:5:192"},"nodeType":"ModifierInvocation","src":"328:13:192"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":95987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95986,"mutability":"mutable","name":"_owner","nameLocation":"320:6:192","nodeType":"VariableDeclaration","scope":95993,"src":"312:14:192","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":95985,"name":"address","nodeType":"ElementaryTypeName","src":"312:7:192","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"311:16:192"},"returnParameters":{"id":95991,"nodeType":"ParameterList","parameters":[],"src":"342:0:192"},"scope":96046,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":96021,"nodeType":"FunctionDefinition","src":"651:277:192","nodes":[],"body":{"id":96020,"nodeType":"Block","src":"855:73:192","nodes":[],"statements":[{"expression":{"id":96018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":96009,"name":"success_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96005,"src":"866:8:192","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":96010,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96007,"src":"876:5:192","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":96011,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"865:17:192","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":96016,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95998,"src":"915:5:192","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":96012,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95996,"src":"885:7:192","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":96013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"885:12:192","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":96015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":96014,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96000,"src":"906:6:192","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"885:29:192","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":96017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"885:36:192","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"865:56:192","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":96019,"nodeType":"ExpressionStatement","src":"865:56:192"}]},"documentation":{"id":95994,"nodeType":"StructuredDocumentation","src":"351:295:192","text":"@notice Sends a CALL to a target address.\n @param _target Address to call.\n @param _data Data to send with the call.\n @param _value ETH value to send with the call.\n @return success_ Boolean success value.\n @return data_ Bytes data returned by the call."},"functionSelector":"6e2d44ae","implemented":true,"kind":"function","modifiers":[{"id":96003,"kind":"modifierInvocation","modifierName":{"id":96002,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":60096,"src":"789:9:192"},"nodeType":"ModifierInvocation","src":"789:9:192"}],"name":"CALL","nameLocation":"660:4:192","parameters":{"id":96001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95996,"mutability":"mutable","name":"_target","nameLocation":"682:7:192","nodeType":"VariableDeclaration","scope":96021,"src":"674:15:192","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":95995,"name":"address","nodeType":"ElementaryTypeName","src":"674:7:192","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":95998,"mutability":"mutable","name":"_data","nameLocation":"712:5:192","nodeType":"VariableDeclaration","scope":96021,"src":"699:18:192","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":95997,"name":"bytes","nodeType":"ElementaryTypeName","src":"699:5:192","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":96000,"mutability":"mutable","name":"_value","nameLocation":"735:6:192","nodeType":"VariableDeclaration","scope":96021,"src":"727:14:192","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":95999,"name":"uint256","nodeType":"ElementaryTypeName","src":"727:7:192","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"664:83:192"},"returnParameters":{"id":96008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96005,"mutability":"mutable","name":"success_","nameLocation":"821:8:192","nodeType":"VariableDeclaration","scope":96021,"src":"816:13:192","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":96004,"name":"bool","nodeType":"ElementaryTypeName","src":"816:4:192","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":96007,"mutability":"mutable","name":"data_","nameLocation":"844:5:192","nodeType":"VariableDeclaration","scope":96021,"src":"831:18:192","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":96006,"name":"bytes","nodeType":"ElementaryTypeName","src":"831:5:192","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"815:35:192"},"scope":96046,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":96045,"nodeType":"FunctionDefinition","src":"1186:313:192","nodes":[],"body":{"id":96044,"nodeType":"Block","src":"1374:125:192","nodes":[],"statements":[{"expression":{"id":96042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":96035,"name":"success_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96031,"src":"1446:8:192","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":96036,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96033,"src":"1456:5:192","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":96037,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1445:17:192","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":96040,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96026,"src":"1486:5:192","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":96038,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96024,"src":"1465:7:192","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":96039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"1465:20:192","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":96041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1465:27:192","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"1445:47:192","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":96043,"nodeType":"ExpressionStatement","src":"1445:47:192"}]},"documentation":{"id":96022,"nodeType":"StructuredDocumentation","src":"934:247:192","text":"@notice Sends a DELEGATECALL to a target address.\n @param _target Address to call.\n @param _data Data to send with the call.\n @return success_ Boolean success value.\n @return data_ Bytes data returned by the call."},"functionSelector":"edee6239","implemented":true,"kind":"function","modifiers":[{"id":96029,"kind":"modifierInvocation","modifierName":{"id":96028,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":60096,"src":"1308:9:192"},"nodeType":"ModifierInvocation","src":"1308:9:192"}],"name":"DELEGATECALL","nameLocation":"1195:12:192","parameters":{"id":96027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96024,"mutability":"mutable","name":"_target","nameLocation":"1225:7:192","nodeType":"VariableDeclaration","scope":96045,"src":"1217:15:192","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96023,"name":"address","nodeType":"ElementaryTypeName","src":"1217:7:192","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":96026,"mutability":"mutable","name":"_data","nameLocation":"1255:5:192","nodeType":"VariableDeclaration","scope":96045,"src":"1242:18:192","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":96025,"name":"bytes","nodeType":"ElementaryTypeName","src":"1242:5:192","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1207:59:192"},"returnParameters":{"id":96034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96031,"mutability":"mutable","name":"success_","nameLocation":"1340:8:192","nodeType":"VariableDeclaration","scope":96045,"src":"1335:13:192","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":96030,"name":"bool","nodeType":"ElementaryTypeName","src":"1335:4:192","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":96033,"mutability":"mutable","name":"data_","nameLocation":"1363:5:192","nodeType":"VariableDeclaration","scope":96045,"src":"1350:18:192","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":96032,"name":"bytes","nodeType":"ElementaryTypeName","src":"1350:5:192","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1334:35:192"},"scope":96046,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":95982,"name":"Owned","nodeType":"IdentifierPath","referencedDeclaration":60133,"src":"242:5:192"},"id":95983,"nodeType":"InheritanceSpecifier","src":"242:5:192"}],"canonicalName":"Transactor","contractDependencies":[],"contractKind":"contract","documentation":{"id":95981,"nodeType":"StructuredDocumentation","src":"124:95:192","text":"@title Transactor\n @notice Transactor is a minimal contract that can send transactions."},"fullyImplemented":true,"linearizedBaseContracts":[96046,60133],"name":"Transactor","nameLocation":"228:10:192","scope":96047,"usedErrors":[]}],"license":"MIT"},"id":192}
{"abi":[{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"CALL","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success_","type":"bool","internalType":"bool"},{"name":"data_","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"DELEGATECALL","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"success_","type":"bool","internalType":"bool"},{"name":"data_","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setOwner","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnerUpdated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161071538038061071583398101604081905261002f9161007e565b600080546001600160a01b0319166001600160a01b03831690811782556040518392907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908290a350506100ae565b60006020828403121561009057600080fd5b81516001600160a01b03811681146100a757600080fd5b9392505050565b610658806100bd6000396000f3fe60806040526004361061003f5760003560e01c806313af4035146100445780636e2d44ae146100665780638da5cb5b14610090578063edee6239146100e2575b600080fd5b34801561005057600080fd5b5061006461005f366004610404565b6100f5565b005b610079610074366004610500565b6101eb565b604051610087929190610587565b60405180910390f35b34801561009c57600080fd5b506000546100bd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610087565b6100796100f03660046105e1565b6102e5565b60005473ffffffffffffffffffffffffffffffffffffffff16331461017b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b6000805460609073ffffffffffffffffffffffffffffffffffffffff163314610270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610172565b8473ffffffffffffffffffffffffffffffffffffffff168385604051610296919061062f565b60006040518083038185875af1925050503d80600081146102d3576040519150601f19603f3d011682016040523d82523d6000602084013e6102d8565b606091505b5090969095509350505050565b6000805460609073ffffffffffffffffffffffffffffffffffffffff16331461036a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610172565b8373ffffffffffffffffffffffffffffffffffffffff168360405161038f919061062f565b600060405180830381855af49150503d80600081146103ca576040519150601f19603f3d011682016040523d82523d6000602084013e6103cf565b606091505b50909590945092505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146103ff57600080fd5b919050565b60006020828403121561041657600080fd5b61041f826103db565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261046657600080fd5b813567ffffffffffffffff8082111561048157610481610426565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104c7576104c7610426565b816040528381528660208588010111156104e057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561051557600080fd5b61051e846103db565b9250602084013567ffffffffffffffff81111561053a57600080fd5b61054686828701610455565b925050604084013590509250925092565b60005b8381101561057257818101518382015260200161055a565b83811115610581576000848401525b50505050565b821515815260406020820152600082518060408401526105ae816060850160208701610557565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600080604083850312156105f457600080fd5b6105fd836103db565b9150602083013567ffffffffffffffff81111561061957600080fd5b61062585828601610455565b9150509250929050565b60008251610641818460208701610557565b919091019291505056fea164736f6c634300080f000a","sourceMap":"219:1282:203:-:0;;;300:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1034:5:98;:14;;-1:-1:-1;;;;;;1034:14:98;-1:-1:-1;;;;;1034:14:98;;;;;;;1064:32;;1034:14;;:5;1064:32;;1034:5;;1064:32;996:107;300:45:203;219:1282;;14:290:350;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:350;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:350:o;:::-;219:1282:203;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003f5760003560e01c806313af4035146100445780636e2d44ae146100665780638da5cb5b14610090578063edee6239146100e2575b600080fd5b34801561005057600080fd5b5061006461005f366004610404565b6100f5565b005b610079610074366004610500565b6101eb565b604051610087929190610587565b60405180910390f35b34801561009c57600080fd5b506000546100bd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610087565b6100796100f03660046105e1565b6102e5565b60005473ffffffffffffffffffffffffffffffffffffffff16331461017b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b6000805460609073ffffffffffffffffffffffffffffffffffffffff163314610270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610172565b8473ffffffffffffffffffffffffffffffffffffffff168385604051610296919061062f565b60006040518083038185875af1925050503d80600081146102d3576040519150601f19603f3d011682016040523d82523d6000602084013e6102d8565b606091505b5090969095509350505050565b6000805460609073ffffffffffffffffffffffffffffffffffffffff16331461036a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610172565b8373ffffffffffffffffffffffffffffffffffffffff168360405161038f919061062f565b600060405180830381855af49150503d80600081146103ca576040519150601f19603f3d011682016040523d82523d6000602084013e6103cf565b606091505b50909590945092505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146103ff57600080fd5b919050565b60006020828403121561041657600080fd5b61041f826103db565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261046657600080fd5b813567ffffffffffffffff8082111561048157610481610426565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104c7576104c7610426565b816040528381528660208588010111156104e057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561051557600080fd5b61051e846103db565b9250602084013567ffffffffffffffff81111561053a57600080fd5b61054686828701610455565b925050604084013590509250925092565b60005b8381101561057257818101518382015260200161055a565b83811115610581576000848401525b50505050565b821515815260406020820152600082518060408401526105ae816060850160208701610557565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600080604083850312156105f457600080fd5b6105fd836103db565b9150602083013567ffffffffffffffff81111561061957600080fd5b61062585828601610455565b9150509250929050565b60008251610641818460208701610557565b919091019291505056fea164736f6c634300080f000a","sourceMap":"219:1282:203:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1293:144:98;;;;;;;;;;-1:-1:-1;1293:144:98;;;;;:::i;:::-;;:::i;:::-;;651:277:203;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;679:20:98;;;;;;;;;;-1:-1:-1;679:20:98;;;;;;;;;;;2809:42:350;2797:55;;;2779:74;;2767:2;2752:18;679:20:98;2633:226:350;1186:313:203;;;;;;:::i;:::-;;:::i;1293:144:98:-;767:5;;;;753:10;:19;745:44;;;;;;;3465:2:350;745:44:98;;;3447:21:350;3504:2;3484:18;;;3477:30;3543:14;3523:18;;;3516:42;3575:18;;745:44:98;;;;;;;;;1364:5:::1;:16:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;1396:34:::1;::::0;1364:16;;1409:10:::1;::::0;1396:34:::1;::::0;1364:5;1396:34:::1;1293:144:::0;:::o;651:277:203:-;816:13;767:5:98;;831:18:203;;767:5:98;;753:10;:19;745:44;;;;;;;3465:2:350;745:44:98;;;3447:21:350;3504:2;3484:18;;;3477:30;3543:14;3523:18;;;3516:42;3575:18;;745:44:98;3263:336:350;745:44:98;885:7:203::1;:12;;906:6;915:5;885:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;865:56:203;;;;-1:-1:-1;651:277:203;-1:-1:-1;;;;651:277:203:o;1186:313::-;1335:13;767:5:98;;1350:18:203;;767:5:98;;753:10;:19;745:44;;;;;;;3465:2:350;745:44:98;;;3447:21:350;3504:2;3484:18;;;3477:30;3543:14;3523:18;;;3516:42;3575:18;;745:44:98;3263:336:350;745:44:98;1465:7:203::1;:20;;1486:5;1465:27;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;1445:47:203;;;;-1:-1:-1;1186:313:203;-1:-1:-1;;;1186:313:203:o;14:196:350:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:350:o;406:184::-;458:77;455:1;448:88;555:4;552:1;545:15;579:4;576:1;569:15;595:777;637:5;690:3;683:4;675:6;671:17;667:27;657:55;;708:1;705;698:12;657:55;744:6;731:20;770:18;807:2;803;800:10;797:36;;;813:18;;:::i;:::-;947:2;941:9;1009:4;1001:13;;852:66;997:22;;;1021:2;993:31;989:40;977:53;;;1045:18;;;1065:22;;;1042:46;1039:72;;;1091:18;;:::i;:::-;1131:10;1127:2;1120:22;1166:2;1158:6;1151:18;1212:3;1205:4;1200:2;1192:6;1188:15;1184:26;1181:35;1178:55;;;1229:1;1226;1219:12;1178:55;1293:2;1286:4;1278:6;1274:17;1267:4;1259:6;1255:17;1242:54;1340:1;1333:4;1328:2;1320:6;1316:15;1312:26;1305:37;1360:6;1351:15;;;;;;595:777;;;;:::o;1377:462::-;1463:6;1471;1479;1532:2;1520:9;1511:7;1507:23;1503:32;1500:52;;;1548:1;1545;1538:12;1500:52;1571:29;1590:9;1571:29;:::i;:::-;1561:39;;1651:2;1640:9;1636:18;1623:32;1678:18;1670:6;1667:30;1664:50;;;1710:1;1707;1700:12;1664:50;1733:49;1774:7;1765:6;1754:9;1750:22;1733:49;:::i;:::-;1723:59;;;1829:2;1818:9;1814:18;1801:32;1791:42;;1377:462;;;;;:::o;1844:258::-;1916:1;1926:113;1940:6;1937:1;1934:13;1926:113;;;2016:11;;;2010:18;1997:11;;;1990:39;1962:2;1955:10;1926:113;;;2057:6;2054:1;2051:13;2048:48;;;2092:1;2083:6;2078:3;2074:16;2067:27;2048:48;;1844:258;;;:::o;2107:521::-;2290:6;2283:14;2276:22;2265:9;2258:41;2335:2;2330;2319:9;2315:18;2308:30;2239:4;2367:6;2361:13;2410:6;2405:2;2394:9;2390:18;2383:34;2426:66;2485:6;2480:2;2469:9;2465:18;2460:2;2452:6;2448:15;2426:66;:::i;:::-;2544:2;2532:15;2549:66;2528:88;2513:104;;;;2619:2;2509:113;;2107:521;-1:-1:-1;;;2107:521:350:o;2864:394::-;2941:6;2949;3002:2;2990:9;2981:7;2977:23;2973:32;2970:52;;;3018:1;3015;3008:12;2970:52;3041:29;3060:9;3041:29;:::i;:::-;3031:39;;3121:2;3110:9;3106:18;3093:32;3148:18;3140:6;3137:30;3134:50;;;3180:1;3177;3170:12;3134:50;3203:49;3244:7;3235:6;3224:9;3220:22;3203:49;:::i;:::-;3193:59;;;2864:394;;;;;:::o;3604:274::-;3733:3;3771:6;3765:13;3787:53;3833:6;3828:3;3821:4;3813:6;3809:17;3787:53;:::i;:::-;3856:16;;;;;3604:274;-1:-1:-1;;3604:274:350:o","linkReferences":{}},"methodIdentifiers":{"CALL(address,bytes,uint256)":"6e2d44ae","DELEGATECALL(address,bytes)":"edee6239","owner()":"8da5cb5b","setOwner(address)":"13af4035"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"CALL\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success_\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"DELEGATECALL\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success_\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"CALL(address,bytes,uint256)\":{\"params\":{\"_data\":\"Data to send with the call.\",\"_target\":\"Address to call.\",\"_value\":\"ETH value to send with the call.\"},\"returns\":{\"data_\":\"Bytes data returned by the call.\",\"success_\":\"Boolean success value.\"}},\"DELEGATECALL(address,bytes)\":{\"params\":{\"_data\":\"Data to send with the call.\",\"_target\":\"Address to call.\"},\"returns\":{\"data_\":\"Bytes data returned by the call.\",\"success_\":\"Boolean success value.\"}},\"constructor\":{\"params\":{\"_owner\":\"Initial contract owner.\"}}},\"title\":\"Transactor\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"CALL(address,bytes,uint256)\":{\"notice\":\"Sends a CALL to a target address.\"},\"DELEGATECALL(address,bytes)\":{\"notice\":\"Sends a DELEGATECALL to a target address.\"}},\"notice\":\"Transactor is a minimal contract that can send transactions.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/Transactor.sol\":\"Transactor\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/auth/Owned.sol\":{\"keccak256\":\"0x7e91c80b0dd1a14a19cb9e661b99924043adab6d9d893bbfcf3a6a3dc23a6743\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://515890d9fc87d6762dae2354a3a0714a26c652f0ea5bb631122be1968ef8c0e9\",\"dweb:/ipfs/QmTRpQ7uoAR1vCACKJm14Ba3oKVLqcA9reTwbHAPxawVpM\"]},\"src/periphery/Transactor.sol\":{\"keccak256\":\"0x66d538c0c0ae7297a1f261777c50b06e841efb5e8a3b09cdde6cdde32dfa3b63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cab02028604b71a9acd1b6282cc867aec09b4e91fc64570c69d3484a0a7c12fe\",\"dweb:/ipfs/QmcxJ64nQde5XQY9b714NB6z6RnziNUhod12DgXDqNPcWe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnerUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"payable","type":"function","name":"CALL","outputs":[{"internalType":"bool","name":"success_","type":"bool"},{"internalType":"bytes","name":"data_","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"DELEGATECALL","outputs":[{"internalType":"bool","name":"success_","type":"bool"},{"internalType":"bytes","name":"data_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOwner"}],"devdoc":{"kind":"dev","methods":{"CALL(address,bytes,uint256)":{"params":{"_data":"Data to send with the call.","_target":"Address to call.","_value":"ETH value to send with the call."},"returns":{"data_":"Bytes data returned by the call.","success_":"Boolean success value."}},"DELEGATECALL(address,bytes)":{"params":{"_data":"Data to send with the call.","_target":"Address to call."},"returns":{"data_":"Bytes data returned by the call.","success_":"Boolean success value."}},"constructor":{"params":{"_owner":"Initial contract owner."}}},"version":1},"userdoc":{"kind":"user","methods":{"CALL(address,bytes,uint256)":{"notice":"Sends a CALL to a target address."},"DELEGATECALL(address,bytes)":{"notice":"Sends a DELEGATECALL to a target address."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/Transactor.sol":"Transactor"},"evmVersion":"london","libraries":{}},"sources":{"lib/solmate/src/auth/Owned.sol":{"keccak256":"0x7e91c80b0dd1a14a19cb9e661b99924043adab6d9d893bbfcf3a6a3dc23a6743","urls":["bzz-raw://515890d9fc87d6762dae2354a3a0714a26c652f0ea5bb631122be1968ef8c0e9","dweb:/ipfs/QmTRpQ7uoAR1vCACKJm14Ba3oKVLqcA9reTwbHAPxawVpM"],"license":"AGPL-3.0-only"},"src/periphery/Transactor.sol":{"keccak256":"0x66d538c0c0ae7297a1f261777c50b06e841efb5e8a3b09cdde6cdde32dfa3b63","urls":["bzz-raw://cab02028604b71a9acd1b6282cc867aec09b4e91fc64570c69d3484a0a7c12fe","dweb:/ipfs/QmcxJ64nQde5XQY9b714NB6z6RnziNUhod12DgXDqNPcWe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":61409,"contract":"src/periphery/Transactor.sol:Transactor","label":"owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","methods":{"CALL(address,bytes,uint256)":{"notice":"Sends a CALL to a target address."},"DELEGATECALL(address,bytes)":{"notice":"Sends a DELEGATECALL to a target address."}},"notice":"Transactor is a minimal contract that can send transactions."},"devdoc":{"version":1,"kind":"dev","methods":{"CALL(address,bytes,uint256)":{"params":{"_data":"Data to send with the call.","_target":"Address to call.","_value":"ETH value to send with the call."},"returns":{"data_":"Bytes data returned by the call.","success_":"Boolean success value."}},"DELEGATECALL(address,bytes)":{"params":{"_data":"Data to send with the call.","_target":"Address to call."},"returns":{"data_":"Bytes data returned by the call.","success_":"Boolean success value."}},"constructor":{"params":{"_owner":"Initial contract owner."}}},"title":"Transactor"},"id":203}

@@ -1,1 +0,1 @@

{"abi":[{"type":"constructor","inputs":[{"name":"_token","type":"address","internalType":"contract ERC20"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_shell","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"SENDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ERC20"}],"stateMutability":"view"},{"type":"function","name":"peel","inputs":[{"name":"_layers","type":"tuple[]","internalType":"struct TransferOnion.Layer[]","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"shell","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"shell","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x60c060405234801561001057600080fd5b50604051610a31380380610a3183398101604081905261002f91610069565b600160008190556001600160a01b039384166080529190921660a052556100ac565b6001600160a01b038116811461006657600080fd5b50565b60008060006060848603121561007e57600080fd5b835161008981610051565b602085015190935061009a81610051565b80925050604084015190509250925092565b60805160a0516109546100dd60003960008181606b01526102d601526000818160bc01526102b301526109546000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806343913491146100515780636050f2f81461006657806382bfefc8146100b7578063f11d2ff4146100de575b600080fd5b61006461005f366004610766565b6100f5565b005b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b6100e760015481565b6040519081526020016100ae565b600260005403610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155600154825190915b818110156103045760008482815181106101915761019161085d565b60200260200101519050838160000151826020015183604001516040516020016101e69392919073ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6040516020818303038152906040528051906020012014610289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e60448201527f6720696e206d79207377616d703f000000000000000000000000000000000000606482015260840161015d565b6040810151815160208301519195506102fb9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016917f000000000000000000000000000000000000000000000000000000000000000091610311565b50600101610175565b5050600190815560005550565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103a69085906103ac565b50505050565b600061040e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104bd9092919063ffffffff16565b8051909150156104b8578080602001905181019061042c919061088c565b6104b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161015d565b505050565b60606104cc84846000856104d6565b90505b9392505050565b606082471015610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161015d565b73ffffffffffffffffffffffffffffffffffffffff85163b6105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015d565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161060f91906108da565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b509150915061066182828661066c565b979650505050505050565b6060831561067b5750816104cf565b82511561068b5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d91906108f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610711576107116106bf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561075e5761075e6106bf565b604052919050565b6000602080838503121561077957600080fd5b823567ffffffffffffffff8082111561079157600080fd5b818501915085601f8301126107a557600080fd5b8135818111156107b7576107b76106bf565b6107c5848260051b01610717565b818152848101925060609182028401850191888311156107e457600080fd5b938501935b828510156108515780858a0312156108015760008081fd5b6108096106ee565b853573ffffffffffffffffffffffffffffffffffffffff8116811461082e5760008081fd5b8152858701358782015260408087013590820152845293840193928501926107e9565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561089e57600080fd5b815180151581146104cf57600080fd5b60005b838110156108c95781810151838201526020016108b1565b838111156103a65750506000910152565b600082516108ec8184602087016108ae565b9190910192915050565b60208152600082518060208401526109158160408501602087016108ae565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea164736f6c634300080f000a","sourceMap":"633:1870:193:-:0;;;1348:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1701:1:42;1806:7;:22;;;-1:-1:-1;;;;;1417:14:193;;;;;1441:16;;;;;;1467:14;633:1870;;14:138:334;-1:-1:-1;;;;;96:31:334;;86:42;;76:70;;142:1;139;132:12;76:70;14:138;:::o;157:475::-;260:6;268;276;329:2;317:9;308:7;304:23;300:32;297:52;;;345:1;342;335:12;297:52;377:9;371:16;396:38;428:5;396:38;:::i;:::-;503:2;488:18;;482:25;453:5;;-1:-1:-1;516:40:334;482:25;516:40;:::i;:::-;575:7;565:17;;;622:2;611:9;607:18;601:25;591:35;;157:475;;;;;:::o;:::-;633:1870:193;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806343913491146100515780636050f2f81461006657806382bfefc8146100b7578063f11d2ff4146100de575b600080fd5b61006461005f366004610766565b6100f5565b005b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b6100e760015481565b6040519081526020016100ae565b600260005403610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155600154825190915b818110156103045760008482815181106101915761019161085d565b60200260200101519050838160000151826020015183604001516040516020016101e69392919073ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6040516020818303038152906040528051906020012014610289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e60448201527f6720696e206d79207377616d703f000000000000000000000000000000000000606482015260840161015d565b6040810151815160208301519195506102fb9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016917f000000000000000000000000000000000000000000000000000000000000000091610311565b50600101610175565b5050600190815560005550565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103a69085906103ac565b50505050565b600061040e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104bd9092919063ffffffff16565b8051909150156104b8578080602001905181019061042c919061088c565b6104b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161015d565b505050565b60606104cc84846000856104d6565b90505b9392505050565b606082471015610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161015d565b73ffffffffffffffffffffffffffffffffffffffff85163b6105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015d565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161060f91906108da565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b509150915061066182828661066c565b979650505050505050565b6060831561067b5750816104cf565b82511561068b5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d91906108f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610711576107116106bf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561075e5761075e6106bf565b604052919050565b6000602080838503121561077957600080fd5b823567ffffffffffffffff8082111561079157600080fd5b818501915085601f8301126107a557600080fd5b8135818111156107b7576107b76106bf565b6107c5848260051b01610717565b818152848101925060609182028401850191888311156107e457600080fd5b938501935b828510156108515780858a0312156108015760008081fd5b6108096106ee565b853573ffffffffffffffffffffffffffffffffffffffff8116811461082e5760008081fd5b8152858701358782015260408087013590820152845293840193928501926107e9565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561089e57600080fd5b815180151581146104cf57600080fd5b60005b838110156108c95781810151838201526020016108b1565b838111156103a65750506000910152565b600082516108ec8184602087016108ae565b9190910192915050565b60208152600082518060208401526109158160408501602087016108ae565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea164736f6c634300080f000a","sourceMap":"633:1870:193:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1616:885;;;;;;:::i;:::-;;:::i;:::-;;1024:31;;;;;;;;2538:42:334;2526:55;;;2508:74;;2496:2;2481:18;1024:31:193;;;;;;;;923:28;;;;;1098:20;;;;;;;;;2985:25:334;;;2973:2;2958:18;1098:20:193;2839:177:334;1616:885:193;1744:1:42;2325:7;;:19;2317:63;;;;;;;3223:2:334;2317:63:42;;;3205:21:334;3262:2;3242:18;;;3235:30;3301:33;3281:18;;;3274:61;3352:18;;2317:63:42;;;;;;;;;1744:1;2455:7;:18;;;1704:5:193::1;::::0;1736:14;;1704:5;;1760:707:::1;1784:6;1780:1;:10;1760:707;;;1807:18;1828:7;1836:1;1828:10;;;;;;;;:::i;:::-;;;;;;;1807:31;;2003:9;1955:5;:15;;;1972:5;:12;;;1986:5;:11;;;1944:54;;;;;;;;;3802:42:334::0;3790:55;;;;3772:74;;3877:2;3862:18;;3855:34;;;;3920:2;3905:18;;3898:34;3760:2;3745:18;;3570:368;1944:54:193::1;;;;;;;;;;;;;1934:65;;;;;;:78;1909:183;;;::::0;::::1;::::0;;4145:2:334;1909:183:193::1;::::0;::::1;4127:21:334::0;4184:2;4164:18;;;4157:30;4223:34;4203:18;;;4196:62;4294:16;4274:18;;;4267:44;4328:19;;1909:183:193::1;3943:410:334::0;1909:183:193::1;2158:11;::::0;::::1;::::0;2313:15;;2330:12:::1;::::0;::::1;::::0;2158:11;;-1:-1:-1;2282:61:193::1;::::0;:22:::1;:5;:22;::::0;2305:6:::1;::::0;2282:22:::1;:61::i;:::-;-1:-1:-1::0;2439:3:193::1;;1760:707;;;-1:-1:-1::0;;2477:5:193::1;:17:::0;;;2628:7:42;:22;-1:-1:-1;1616:885:193:o;974:241:50:-;1139:68;;;4570:42:334;4639:15;;;1139:68:50;;;4621:34:334;4691:15;;4671:18;;;4664:43;4723:18;;;;4716:34;;;1139:68:50;;;;;;;;;;4533:18:334;;;;1139:68:50;;;;;;;;;;1162:27;1139:68;;;1112:96;;1132:5;;1112:19;:96::i;:::-;974:241;;;;:::o;3747:706::-;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;4192:27;;;;:69;;;;;:::i;:::-;4275:17;;4166:95;;-1:-1:-1;4275:21:50;4271:176;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;;;;5245:2:334;4351:85:50;;;5227:21:334;5284:2;5264:18;;;5257:30;5323:34;5303:18;;;5296:62;5394:12;5374:18;;;5367:40;5424:19;;4351:85:50;5043:406:334;4351:85:50;3817:636;3747:706;;:::o;3861:223:57:-;3994:12;4025:52;4047:6;4055:4;4061:1;4064:12;4025:21;:52::i;:::-;4018:59;;3861:223;;;;;;:::o;4948:499::-;5113:12;5170:5;5145:21;:30;;5137:81;;;;;;;5656:2:334;5137:81:57;;;5638:21:334;5695:2;5675:18;;;5668:30;5734:34;5714:18;;;5707:62;5805:8;5785:18;;;5778:36;5831:19;;5137:81:57;5454:402:334;5137:81:57;1465:19;;;;5228:60;;;;;;;6063:2:334;5228:60:57;;;6045:21:334;6102:2;6082:18;;;6075:30;6141:31;6121:18;;;6114:59;6190:18;;5228:60:57;5861:353:334;5228:60:57;5300:12;5314:23;5341:6;:11;;5360:5;5367:4;5341:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:73;;;;5389:51;5406:7;5415:10;5427:12;5389:16;:51::i;:::-;5382:58;4948:499;-1:-1:-1;;;;;;;4948:499:57:o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:57;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;7872:415;8259:12;8252:20;;;;;;;;;;;:::i;14:184:334:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:253;275:2;269:9;317:4;305:17;;352:18;337:34;;373:22;;;334:62;331:88;;;399:18;;:::i;:::-;435:2;428:22;203:253;:::o;461:334::-;532:2;526:9;588:2;578:13;;593:66;574:86;562:99;;691:18;676:34;;712:22;;;673:62;670:88;;;738:18;;:::i;:::-;774:2;767:22;461:334;;-1:-1:-1;461:334:334:o;800:1557::-;908:6;939:2;982;970:9;961:7;957:23;953:32;950:52;;;998:1;995;988:12;950:52;1038:9;1025:23;1067:18;1108:2;1100:6;1097:14;1094:34;;;1124:1;1121;1114:12;1094:34;1162:6;1151:9;1147:22;1137:32;;1207:7;1200:4;1196:2;1192:13;1188:27;1178:55;;1229:1;1226;1219:12;1178:55;1265:2;1252:16;1287:2;1283;1280:10;1277:36;;;1293:18;;:::i;:::-;1333:36;1365:2;1360;1357:1;1353:10;1349:19;1333:36;:::i;:::-;1403:15;;;1434:12;;;;-1:-1:-1;1465:4:334;1504:11;;;1496:20;;1492:29;;;1533:19;;;1530:39;;;1565:1;1562;1555:12;1530:39;1589:11;;;;1609:718;1625:6;1620:3;1617:15;1609:718;;;1705:2;1699:3;1690:7;1686:17;1682:26;1679:116;;;1749:1;1778:2;1774;1767:14;1679:116;1821:22;;:::i;:::-;1884:3;1871:17;1936:42;1927:7;1923:56;1914:7;1911:69;1901:167;;2022:1;2051:2;2047;2040:14;1901:167;2081:22;;2152:12;;;2139:26;2123:14;;;2116:50;2189:2;2240:12;;;2227:26;2211:14;;;2204:50;2267:18;;1642:12;;;;2305;;;;1609:718;;;-1:-1:-1;2346:5:334;800:1557;-1:-1:-1;;;;;;;800:1557:334:o;3381:184::-;3433:77;3430:1;3423:88;3530:4;3527:1;3520:15;3554:4;3551:1;3544:15;4761:277;4828:6;4881:2;4869:9;4860:7;4856:23;4852:32;4849:52;;;4897:1;4894;4887:12;4849:52;4929:9;4923:16;4982:5;4975:13;4968:21;4961:5;4958:32;4948:60;;5004:1;5001;4994:12;6219:258;6291:1;6301:113;6315:6;6312:1;6309:13;6301:113;;;6391:11;;;6385:18;6372:11;;;6365:39;6337:2;6330:10;6301:113;;;6432:6;6429:1;6426:13;6423:48;;;-1:-1:-1;;6467:1:334;6449:16;;6442:27;6219:258::o;6482:274::-;6611:3;6649:6;6643:13;6665:53;6711:6;6706:3;6699:4;6691:6;6687:17;6665:53;:::i;:::-;6734:16;;;;;6482:274;-1:-1:-1;;6482:274:334:o;6761:442::-;6910:2;6899:9;6892:21;6873:4;6942:6;6936:13;6985:6;6980:2;6969:9;6965:18;6958:34;7001:66;7060:6;7055:2;7044:9;7040:18;7035:2;7027:6;7023:15;7001:66;:::i;:::-;7119:2;7107:15;7124:66;7103:88;7088:104;;;;7194:2;7084:113;;6761:442;-1:-1:-1;;6761:442:334:o","linkReferences":{},"immutableReferences":{"96072":[{"start":188,"length":32},{"start":691,"length":32}],"96075":[{"start":107,"length":32},{"start":726,"length":32}]}},"methodIdentifiers":{"SENDER()":"6050f2f8","TOKEN()":"82bfefc8","peel((address,uint256,bytes32)[])":"43913491","shell()":"f11d2ff4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_shell\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"SENDER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN\",\"outputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"shell\",\"type\":\"bytes32\"}],\"internalType\":\"struct TransferOnion.Layer[]\",\"name\":\"_layers\",\"type\":\"tuple[]\"}],\"name\":\"peel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"shell\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_sender\":\"Address of the sender to distribute from.\",\"_shell\":\"Initial shell of the onion.\",\"_token\":\"Address of the token to distribute.\"}},\"peel((address,uint256,bytes32)[])\":{\"params\":{\"_layers\":\"Array of onion layers to peel.\"}}},\"title\":\"TransferOnion\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"SENDER()\":{\"notice\":\"Address of the account to distribute tokens from.\"},\"TOKEN()\":{\"notice\":\"Address of the token to distribute.\"},\"constructor\":{\"notice\":\"Constructs a new TransferOnion.\"},\"peel((address,uint256,bytes32)[])\":{\"notice\":\"Peels layers from the onion and distributes tokens.\"},\"shell()\":{\"notice\":\"Current shell hash.\"}},\"notice\":\"TransferOnion is a hash onion for distributing tokens. The shell commits to an ordered list of the token transfers and can be permissionlessly unwrapped in order. The SENDER must `approve` this contract as `transferFrom` is used to move the token balances.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/TransferOnion.sol\":\"TransferOnion\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/periphery/TransferOnion.sol\":{\"keccak256\":\"0xc2b952a3a18fb7aa2aeda16050415e098bd7978a94107958a8758cd9b7067325\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752c0fc4c4d66984d695510717050b9954b16e3a184fd5d0048ad71abb8b633\",\"dweb:/ipfs/QmYLv41EtHtg3cWGGTGzpdVAvW4fxEaR4jGQE7Uj3tC3Sj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ERC20","name":"_token","type":"address"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes32","name":"_shell","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"SENDER","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}]},{"inputs":[{"internalType":"struct TransferOnion.Layer[]","name":"_layers","type":"tuple[]","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"shell","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"peel"},{"inputs":[],"stateMutability":"view","type":"function","name":"shell","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_sender":"Address of the sender to distribute from.","_shell":"Initial shell of the onion.","_token":"Address of the token to distribute."}},"peel((address,uint256,bytes32)[])":{"params":{"_layers":"Array of onion layers to peel."}}},"version":1},"userdoc":{"kind":"user","methods":{"SENDER()":{"notice":"Address of the account to distribute tokens from."},"TOKEN()":{"notice":"Address of the token to distribute."},"constructor":{"notice":"Constructs a new TransferOnion."},"peel((address,uint256,bytes32)[])":{"notice":"Peels layers from the onion and distributes tokens."},"shell()":{"notice":"Current shell hash."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/TransferOnion.sol":"TransferOnion"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935","urls":["bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2","dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/periphery/TransferOnion.sol":{"keccak256":"0xc2b952a3a18fb7aa2aeda16050415e098bd7978a94107958a8758cd9b7067325","urls":["bzz-raw://4752c0fc4c4d66984d695510717050b9954b16e3a184fd5d0048ad71abb8b633","dweb:/ipfs/QmYLv41EtHtg3cWGGTGzpdVAvW4fxEaR4jGQE7Uj3tC3Sj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":48032,"contract":"src/periphery/TransferOnion.sol:TransferOnion","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":96078,"contract":"src/periphery/TransferOnion.sol:TransferOnion","label":"shell","offset":0,"slot":"1","type":"t_bytes32"}],"types":{"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"SENDER()":{"notice":"Address of the account to distribute tokens from."},"TOKEN()":{"notice":"Address of the token to distribute."},"constructor":{"notice":"Constructs a new TransferOnion."},"peel((address,uint256,bytes32)[])":{"notice":"Peels layers from the onion and distributes tokens."},"shell()":{"notice":"Current shell hash."}},"notice":"TransferOnion is a hash onion for distributing tokens. The shell commits to an ordered list of the token transfers and can be permissionlessly unwrapped in order. The SENDER must `approve` this contract as `transferFrom` is used to move the token balances."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_sender":"Address of the sender to distribute from.","_shell":"Initial shell of the onion.","_token":"Address of the token to distribute."}},"peel((address,uint256,bytes32)[])":{"params":{"_layers":"Array of onion layers to peel."}}},"title":"TransferOnion"},"ast":{"absolutePath":"src/periphery/TransferOnion.sol","id":96180,"exportedSymbols":{"ERC20":[48647],"ReentrancyGuard":[48061],"SafeERC20":[49920],"TransferOnion":[96179]},"nodeType":"SourceUnit","src":"32:2472:193","nodes":[{"id":96048,"nodeType":"PragmaDirective","src":"32:23:193","nodes":[],"literals":["solidity","0.8",".15"]},{"id":96050,"nodeType":"ImportDirective","src":"57:87:193","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":96180,"sourceUnit":48062,"symbolAliases":[{"foreign":{"id":96049,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48061,"src":"66:15:193","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":96052,"nodeType":"ImportDirective","src":"145:70:193","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":96180,"sourceUnit":48648,"symbolAliases":[{"foreign":{"id":96051,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48647,"src":"154:5:193","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":96054,"nodeType":"ImportDirective","src":"216:84:193","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":96180,"sourceUnit":49921,"symbolAliases":[{"foreign":{"id":96053,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49920,"src":"225:9:193","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":96179,"nodeType":"ContractDefinition","src":"633:1870:193","nodes":[{"id":96061,"nodeType":"UsingForDirective","src":"681:26:193","nodes":[],"global":false,"libraryName":{"id":96058,"name":"SafeERC20","nodeType":"IdentifierPath","referencedDeclaration":49920,"src":"687:9:193"},"typeName":{"id":96060,"nodeType":"UserDefinedTypeName","pathNode":{"id":96059,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":48647,"src":"701:5:193"},"referencedDeclaration":48647,"src":"701:5:193","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48647","typeString":"contract ERC20"}}},{"id":96068,"nodeType":"StructDefinition","src":"771:94:193","nodes":[],"canonicalName":"TransferOnion.Layer","members":[{"constant":false,"id":96063,"mutability":"mutable","name":"recipient","nameLocation":"802:9:193","nodeType":"VariableDeclaration","scope":96068,"src":"794:17:193","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96062,"name":"address","nodeType":"ElementaryTypeName","src":"794:7:193","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":96065,"mutability":"mutable","name":"amount","nameLocation":"829:6:193","nodeType":"VariableDeclaration","scope":96068,"src":"821:14:193","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96064,"name":"uint256","nodeType":"ElementaryTypeName","src":"821:7:193","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":96067,"mutability":"mutable","name":"shell","nameLocation":"853:5:193","nodeType":"VariableDeclaration","scope":96068,"src":"845:13:193","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":96066,"name":"bytes32","nodeType":"ElementaryTypeName","src":"845:7:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Layer","nameLocation":"778:5:193","scope":96179,"visibility":"public"},{"id":96072,"nodeType":"VariableDeclaration","src":"923:28:193","nodes":[],"constant":false,"documentation":{"id":96069,"nodeType":"StructuredDocumentation","src":"871:47:193","text":"@notice Address of the token to distribute."},"functionSelector":"82bfefc8","mutability":"immutable","name":"TOKEN","nameLocation":"946:5:193","scope":96179,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48647","typeString":"contract ERC20"},"typeName":{"id":96071,"nodeType":"UserDefinedTypeName","pathNode":{"id":96070,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":48647,"src":"923:5:193"},"referencedDeclaration":48647,"src":"923:5:193","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48647","typeString":"contract ERC20"}},"visibility":"public"},{"id":96075,"nodeType":"VariableDeclaration","src":"1024:31:193","nodes":[],"constant":false,"documentation":{"id":96073,"nodeType":"StructuredDocumentation","src":"958:61:193","text":"@notice Address of the account to distribute tokens from."},"functionSelector":"6050f2f8","mutability":"immutable","name":"SENDER","nameLocation":"1049:6:193","scope":96179,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96074,"name":"address","nodeType":"ElementaryTypeName","src":"1024:7:193","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":96078,"nodeType":"VariableDeclaration","src":"1098:20:193","nodes":[],"constant":false,"documentation":{"id":96076,"nodeType":"StructuredDocumentation","src":"1062:31:193","text":"@notice Current shell hash."},"functionSelector":"f11d2ff4","mutability":"mutable","name":"shell","nameLocation":"1113:5:193","scope":96179,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":96077,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1098:7:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":96102,"nodeType":"FunctionDefinition","src":"1348:140:193","nodes":[],"body":{"id":96101,"nodeType":"Block","src":"1407:81:193","nodes":[],"statements":[{"expression":{"id":96091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":96089,"name":"TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96072,"src":"1417:5:193","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48647","typeString":"contract ERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":96090,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96082,"src":"1425:6:193","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48647","typeString":"contract ERC20"}},"src":"1417:14:193","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48647","typeString":"contract ERC20"}},"id":96092,"nodeType":"ExpressionStatement","src":"1417:14:193"},{"expression":{"id":96095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":96093,"name":"SENDER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96075,"src":"1441:6:193","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":96094,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96084,"src":"1450:7:193","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1441:16:193","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":96096,"nodeType":"ExpressionStatement","src":"1441:16:193"},{"expression":{"id":96099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":96097,"name":"shell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96078,"src":"1467:5:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":96098,"name":"_shell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96086,"src":"1475:6:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1467:14:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":96100,"nodeType":"ExpressionStatement","src":"1467:14:193"}]},"documentation":{"id":96079,"nodeType":"StructuredDocumentation","src":"1125:218:193","text":"@notice Constructs a new TransferOnion.\n @param _token Address of the token to distribute.\n @param _sender Address of the sender to distribute from.\n @param _shell Initial shell of the onion."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":96087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96082,"mutability":"mutable","name":"_token","nameLocation":"1366:6:193","nodeType":"VariableDeclaration","scope":96102,"src":"1360:12:193","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48647","typeString":"contract ERC20"},"typeName":{"id":96081,"nodeType":"UserDefinedTypeName","pathNode":{"id":96080,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":48647,"src":"1360:5:193"},"referencedDeclaration":48647,"src":"1360:5:193","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48647","typeString":"contract ERC20"}},"visibility":"internal"},{"constant":false,"id":96084,"mutability":"mutable","name":"_sender","nameLocation":"1382:7:193","nodeType":"VariableDeclaration","scope":96102,"src":"1374:15:193","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96083,"name":"address","nodeType":"ElementaryTypeName","src":"1374:7:193","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":96086,"mutability":"mutable","name":"_shell","nameLocation":"1399:6:193","nodeType":"VariableDeclaration","scope":96102,"src":"1391:14:193","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":96085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1391:7:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1359:47:193"},"returnParameters":{"id":96088,"nodeType":"ParameterList","parameters":[],"src":"1407:0:193"},"scope":96179,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":96178,"nodeType":"FunctionDefinition","src":"1616:885:193","nodes":[],"body":{"id":96177,"nodeType":"Block","src":"1674:827:193","nodes":[],"statements":[{"assignments":[96113],"declarations":[{"constant":false,"id":96113,"mutability":"mutable","name":"tempShell","nameLocation":"1692:9:193","nodeType":"VariableDeclaration","scope":96177,"src":"1684:17:193","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":96112,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1684:7:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":96115,"initialValue":{"id":96114,"name":"shell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96078,"src":"1704:5:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1684:25:193"},{"assignments":[96117],"declarations":[{"constant":false,"id":96117,"mutability":"mutable","name":"length","nameLocation":"1727:6:193","nodeType":"VariableDeclaration","scope":96177,"src":"1719:14:193","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96116,"name":"uint256","nodeType":"ElementaryTypeName","src":"1719:7:193","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":96120,"initialValue":{"expression":{"id":96118,"name":"_layers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96107,"src":"1736:7:193","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Layer_$96068_memory_ptr_$dyn_memory_ptr","typeString":"struct TransferOnion.Layer memory[] memory"}},"id":96119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1736:14:193","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1719:31:193"},{"body":{"id":96171,"nodeType":"Block","src":"1793:674:193","statements":[{"assignments":[96130],"declarations":[{"constant":false,"id":96130,"mutability":"mutable","name":"layer","nameLocation":"1820:5:193","nodeType":"VariableDeclaration","scope":96171,"src":"1807:18:193","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$96068_memory_ptr","typeString":"struct TransferOnion.Layer"},"typeName":{"id":96129,"nodeType":"UserDefinedTypeName","pathNode":{"id":96128,"name":"Layer","nodeType":"IdentifierPath","referencedDeclaration":96068,"src":"1807:5:193"},"referencedDeclaration":96068,"src":"1807:5:193","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$96068_storage_ptr","typeString":"struct TransferOnion.Layer"}},"visibility":"internal"}],"id":96134,"initialValue":{"baseExpression":{"id":96131,"name":"_layers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96107,"src":"1828:7:193","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Layer_$96068_memory_ptr_$dyn_memory_ptr","typeString":"struct TransferOnion.Layer memory[] memory"}},"id":96133,"indexExpression":{"id":96132,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96122,"src":"1836:1:193","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1828:10:193","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$96068_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"nodeType":"VariableDeclarationStatement","src":"1807:31:193"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":96148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"expression":{"id":96139,"name":"layer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96130,"src":"1955:5:193","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$96068_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"id":96140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"recipient","nodeType":"MemberAccess","referencedDeclaration":96063,"src":"1955:15:193","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":96141,"name":"layer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96130,"src":"1972:5:193","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$96068_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"id":96142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":96065,"src":"1972:12:193","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":96143,"name":"layer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96130,"src":"1986:5:193","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$96068_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"id":96144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"shell","nodeType":"MemberAccess","referencedDeclaration":96067,"src":"1986:11:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":96137,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1944:3:193","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":96138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1944:10:193","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":96145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1944:54:193","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":96136,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1934:9:193","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":96146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1934:65:193","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":96147,"name":"tempShell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96113,"src":"2003:9:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1934:78:193","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e6720696e206d79207377616d703f","id":96149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2030:48:193","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc770c4319fc2b524adbcd4dd26d8e72c58657124c679b05539d773ad29dd0bc","typeString":"literal_string \"TransferOnion: what are you doing in my swamp?\""},"value":"TransferOnion: what are you doing in my swamp?"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc770c4319fc2b524adbcd4dd26d8e72c58657124c679b05539d773ad29dd0bc","typeString":"literal_string \"TransferOnion: what are you doing in my swamp?\""}],"id":96135,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1909:7:193","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":96150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1909:183:193","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":96151,"nodeType":"ExpressionStatement","src":"1909:183:193"},{"expression":{"id":96155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":96152,"name":"tempShell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96113,"src":"2146:9:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":96153,"name":"layer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96130,"src":"2158:5:193","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$96068_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"id":96154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"shell","nodeType":"MemberAccess","referencedDeclaration":96067,"src":"2158:11:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2146:23:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":96156,"nodeType":"ExpressionStatement","src":"2146:23:193"},{"expression":{"arguments":[{"id":96160,"name":"SENDER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96075,"src":"2305:6:193","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":96161,"name":"layer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96130,"src":"2313:5:193","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$96068_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"id":96162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"recipient","nodeType":"MemberAccess","referencedDeclaration":96063,"src":"2313:15:193","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":96163,"name":"layer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96130,"src":"2330:5:193","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$96068_memory_ptr","typeString":"struct TransferOnion.Layer memory"}},"id":96164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":96065,"src":"2330:12:193","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":96157,"name":"TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96072,"src":"2282:5:193","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48647","typeString":"contract ERC20"}},"id":96159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":49697,"src":"2282:22:193","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$48725_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$48725_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":96165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2282:61:193","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":96166,"nodeType":"ExpressionStatement","src":"2282:61:193"},{"id":96170,"nodeType":"UncheckedBlock","src":"2411:46:193","statements":[{"expression":{"id":96168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2439:3:193","subExpression":{"id":96167,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96122,"src":"2441:1:193","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":96169,"nodeType":"ExpressionStatement","src":"2439:3:193"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":96127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":96125,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96122,"src":"1780:1:193","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":96126,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96117,"src":"1784:6:193","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1780:10:193","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":96172,"initializationExpression":{"assignments":[96122],"declarations":[{"constant":false,"id":96122,"mutability":"mutable","name":"i","nameLocation":"1773:1:193","nodeType":"VariableDeclaration","scope":96172,"src":"1765:9:193","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96121,"name":"uint256","nodeType":"ElementaryTypeName","src":"1765:7:193","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":96124,"initialValue":{"hexValue":"30","id":96123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1777:1:193","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1765:13:193"},"nodeType":"ForStatement","src":"1760:707:193"},{"expression":{"id":96175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":96173,"name":"shell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96078,"src":"2477:5:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":96174,"name":"tempShell","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96113,"src":"2485:9:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2477:17:193","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":96176,"nodeType":"ExpressionStatement","src":"2477:17:193"}]},"documentation":{"id":96103,"nodeType":"StructuredDocumentation","src":"1494:117:193","text":"@notice Peels layers from the onion and distributes tokens.\n @param _layers Array of onion layers to peel."},"functionSelector":"43913491","implemented":true,"kind":"function","modifiers":[{"id":96110,"kind":"modifierInvocation","modifierName":{"id":96109,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":48060,"src":"1661:12:193"},"nodeType":"ModifierInvocation","src":"1661:12:193"}],"name":"peel","nameLocation":"1625:4:193","parameters":{"id":96108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96107,"mutability":"mutable","name":"_layers","nameLocation":"1645:7:193","nodeType":"VariableDeclaration","scope":96178,"src":"1630:22:193","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Layer_$96068_memory_ptr_$dyn_memory_ptr","typeString":"struct TransferOnion.Layer[]"},"typeName":{"baseType":{"id":96105,"nodeType":"UserDefinedTypeName","pathNode":{"id":96104,"name":"Layer","nodeType":"IdentifierPath","referencedDeclaration":96068,"src":"1630:5:193"},"referencedDeclaration":96068,"src":"1630:5:193","typeDescriptions":{"typeIdentifier":"t_struct$_Layer_$96068_storage_ptr","typeString":"struct TransferOnion.Layer"}},"id":96106,"nodeType":"ArrayTypeName","src":"1630:7:193","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Layer_$96068_storage_$dyn_storage_ptr","typeString":"struct TransferOnion.Layer[]"}},"visibility":"internal"}],"src":"1629:24:193"},"returnParameters":{"id":96111,"nodeType":"ParameterList","parameters":[],"src":"1674:0:193"},"scope":96179,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":96056,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":48061,"src":"659:15:193"},"id":96057,"nodeType":"InheritanceSpecifier","src":"659:15:193"}],"canonicalName":"TransferOnion","contractDependencies":[],"contractKind":"contract","documentation":{"id":96055,"nodeType":"StructuredDocumentation","src":"302:331:193","text":"@title TransferOnion\n @notice TransferOnion is a hash onion for distributing tokens. The shell commits\n to an ordered list of the token transfers and can be permissionlessly\n unwrapped in order. The SENDER must `approve` this contract as\n `transferFrom` is used to move the token balances."},"fullyImplemented":true,"linearizedBaseContracts":[96179,48061],"name":"TransferOnion","nameLocation":"642:13:193","scope":96180,"usedErrors":[]}],"license":"MIT"},"id":193}
{"abi":[{"type":"constructor","inputs":[{"name":"_token","type":"address","internalType":"contract ERC20"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_shell","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"SENDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ERC20"}],"stateMutability":"view"},{"type":"function","name":"peel","inputs":[{"name":"_layers","type":"tuple[]","internalType":"struct TransferOnion.Layer[]","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"shell","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"shell","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x60c060405234801561001057600080fd5b50604051610a31380380610a3183398101604081905261002f91610069565b600160008190556001600160a01b039384166080529190921660a052556100ac565b6001600160a01b038116811461006657600080fd5b50565b60008060006060848603121561007e57600080fd5b835161008981610051565b602085015190935061009a81610051565b80925050604084015190509250925092565b60805160a0516109546100dd60003960008181606b01526102d601526000818160bc01526102b301526109546000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806343913491146100515780636050f2f81461006657806382bfefc8146100b7578063f11d2ff4146100de575b600080fd5b61006461005f366004610766565b6100f5565b005b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b6100e760015481565b6040519081526020016100ae565b600260005403610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155600154825190915b818110156103045760008482815181106101915761019161085d565b60200260200101519050838160000151826020015183604001516040516020016101e69392919073ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6040516020818303038152906040528051906020012014610289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e60448201527f6720696e206d79207377616d703f000000000000000000000000000000000000606482015260840161015d565b6040810151815160208301519195506102fb9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016917f000000000000000000000000000000000000000000000000000000000000000091610311565b50600101610175565b5050600190815560005550565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103a69085906103ac565b50505050565b600061040e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104bd9092919063ffffffff16565b8051909150156104b8578080602001905181019061042c919061088c565b6104b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161015d565b505050565b60606104cc84846000856104d6565b90505b9392505050565b606082471015610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161015d565b73ffffffffffffffffffffffffffffffffffffffff85163b6105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015d565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161060f91906108da565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b509150915061066182828661066c565b979650505050505050565b6060831561067b5750816104cf565b82511561068b5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d91906108f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610711576107116106bf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561075e5761075e6106bf565b604052919050565b6000602080838503121561077957600080fd5b823567ffffffffffffffff8082111561079157600080fd5b818501915085601f8301126107a557600080fd5b8135818111156107b7576107b76106bf565b6107c5848260051b01610717565b818152848101925060609182028401850191888311156107e457600080fd5b938501935b828510156108515780858a0312156108015760008081fd5b6108096106ee565b853573ffffffffffffffffffffffffffffffffffffffff8116811461082e5760008081fd5b8152858701358782015260408087013590820152845293840193928501926107e9565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561089e57600080fd5b815180151581146104cf57600080fd5b60005b838110156108c95781810151838201526020016108b1565b838111156103a65750506000910152565b600082516108ec8184602087016108ae565b9190910192915050565b60208152600082518060208401526109158160408501602087016108ae565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea164736f6c634300080f000a","sourceMap":"633:1870:204:-:0;;;1348:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1701:1:42;1806:7;:22;;;-1:-1:-1;;;;;1417:14:204;;;;;1441:16;;;;;;1467:14;633:1870;;14:138:350;-1:-1:-1;;;;;96:31:350;;86:42;;76:70;;142:1;139;132:12;76:70;14:138;:::o;157:475::-;260:6;268;276;329:2;317:9;308:7;304:23;300:32;297:52;;;345:1;342;335:12;297:52;377:9;371:16;396:38;428:5;396:38;:::i;:::-;503:2;488:18;;482:25;453:5;;-1:-1:-1;516:40:350;482:25;516:40;:::i;:::-;575:7;565:17;;;622:2;611:9;607:18;601:25;591:35;;157:475;;;;;:::o;:::-;633:1870:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806343913491146100515780636050f2f81461006657806382bfefc8146100b7578063f11d2ff4146100de575b600080fd5b61006461005f366004610766565b6100f5565b005b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008d7f000000000000000000000000000000000000000000000000000000000000000081565b6100e760015481565b6040519081526020016100ae565b600260005403610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155600154825190915b818110156103045760008482815181106101915761019161085d565b60200260200101519050838160000151826020015183604001516040516020016101e69392919073ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6040516020818303038152906040528051906020012014610289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5472616e736665724f6e696f6e3a20776861742061726520796f7520646f696e60448201527f6720696e206d79207377616d703f000000000000000000000000000000000000606482015260840161015d565b6040810151815160208301519195506102fb9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016917f000000000000000000000000000000000000000000000000000000000000000091610311565b50600101610175565b5050600190815560005550565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103a69085906103ac565b50505050565b600061040e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104bd9092919063ffffffff16565b8051909150156104b8578080602001905181019061042c919061088c565b6104b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161015d565b505050565b60606104cc84846000856104d6565b90505b9392505050565b606082471015610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161015d565b73ffffffffffffffffffffffffffffffffffffffff85163b6105e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015d565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161060f91906108da565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b509150915061066182828661066c565b979650505050505050565b6060831561067b5750816104cf565b82511561068b5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015d91906108f6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610711576107116106bf565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561075e5761075e6106bf565b604052919050565b6000602080838503121561077957600080fd5b823567ffffffffffffffff8082111561079157600080fd5b818501915085601f8301126107a557600080fd5b8135818111156107b7576107b76106bf565b6107c5848260051b01610717565b818152848101925060609182028401850191888311156107e457600080fd5b938501935b828510156108515780858a0312156108015760008081fd5b6108096106ee565b853573ffffffffffffffffffffffffffffffffffffffff8116811461082e5760008081fd5b8152858701358782015260408087013590820152845293840193928501926107e9565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561089e57600080fd5b815180151581146104cf57600080fd5b60005b838110156108c95781810151838201526020016108b1565b838111156103a65750506000910152565b600082516108ec8184602087016108ae565b9190910192915050565b60208152600082518060208401526109158160408501602087016108ae565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea164736f6c634300080f000a","sourceMap":"633:1870:204:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1616:885;;;;;;:::i;:::-;;:::i;:::-;;1024:31;;;;;;;;2539:42:350;2527:55;;;2509:74;;2497:2;2482:18;1024:31:204;;;;;;;;923:28;;;;;1098:20;;;;;;;;;2986:25:350;;;2974:2;2959:18;1098:20:204;2840:177:350;1616:885:204;1744:1:42;2325:7;;:19;2317:63;;;;;;;3224:2:350;2317:63:42;;;3206:21:350;3263:2;3243:18;;;3236:30;3302:33;3282:18;;;3275:61;3353:18;;2317:63:42;;;;;;;;;1744:1;2455:7;:18;;;1704:5:204::1;::::0;1736:14;;1704:5;;1760:707:::1;1784:6;1780:1;:10;1760:707;;;1807:18;1828:7;1836:1;1828:10;;;;;;;;:::i;:::-;;;;;;;1807:31;;2003:9;1955:5;:15;;;1972:5;:12;;;1986:5;:11;;;1944:54;;;;;;;;;3803:42:350::0;3791:55;;;;3773:74;;3878:2;3863:18;;3856:34;;;;3921:2;3906:18;;3899:34;3761:2;3746:18;;3571:368;1944:54:204::1;;;;;;;;;;;;;1934:65;;;;;;:78;1909:183;;;::::0;::::1;::::0;;4146:2:350;1909:183:204::1;::::0;::::1;4128:21:350::0;4185:2;4165:18;;;4158:30;4224:34;4204:18;;;4197:62;4295:16;4275:18;;;4268:44;4329:19;;1909:183:204::1;3944:410:350::0;1909:183:204::1;2158:11;::::0;::::1;::::0;2313:15;;2330:12:::1;::::0;::::1;::::0;2158:11;;-1:-1:-1;2282:61:204::1;::::0;:22:::1;:5;:22;::::0;2305:6:::1;::::0;2282:22:::1;:61::i;:::-;-1:-1:-1::0;2439:3:204::1;;1760:707;;;-1:-1:-1::0;;2477:5:204::1;:17:::0;;;2628:7:42;:22;-1:-1:-1;1616:885:204:o;974:241:50:-;1139:68;;;4571:42:350;4640:15;;;1139:68:50;;;4622:34:350;4692:15;;4672:18;;;4665:43;4724:18;;;;4717:34;;;1139:68:50;;;;;;;;;;4534:18:350;;;;1139:68:50;;;;;;;;;;1162:27;1139:68;;;1112:96;;1132:5;;1112:19;:96::i;:::-;974:241;;;;:::o;3747:706::-;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;4192:27;;;;:69;;;;;:::i;:::-;4275:17;;4166:95;;-1:-1:-1;4275:21:50;4271:176;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;;;;5246:2:350;4351:85:50;;;5228:21:350;5285:2;5265:18;;;5258:30;5324:34;5304:18;;;5297:62;5395:12;5375:18;;;5368:40;5425:19;;4351:85:50;5044:406:350;4351:85:50;3817:636;3747:706;;:::o;3861:223:57:-;3994:12;4025:52;4047:6;4055:4;4061:1;4064:12;4025:21;:52::i;:::-;4018:59;;3861:223;;;;;;:::o;4948:499::-;5113:12;5170:5;5145:21;:30;;5137:81;;;;;;;5657:2:350;5137:81:57;;;5639:21:350;5696:2;5676:18;;;5669:30;5735:34;5715:18;;;5708:62;5806:8;5786:18;;;5779:36;5832:19;;5137:81:57;5455:402:350;5137:81:57;1465:19;;;;5228:60;;;;;;;6064:2:350;5228:60:57;;;6046:21:350;6103:2;6083:18;;;6076:30;6142:31;6122:18;;;6115:59;6191:18;;5228:60:57;5862:353:350;5228:60:57;5300:12;5314:23;5341:6;:11;;5360:5;5367:4;5341:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:73;;;;5389:51;5406:7;5415:10;5427:12;5389:16;:51::i;:::-;5382:58;4948:499;-1:-1:-1;;;;;;;4948:499:57:o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:57;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;7872:415;8259:12;8252:20;;;;;;;;;;;:::i;14:184:350:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:253;275:2;269:9;317:4;305:17;;352:18;337:34;;373:22;;;334:62;331:88;;;399:18;;:::i;:::-;435:2;428:22;203:253;:::o;461:334::-;532:2;526:9;588:2;578:13;;593:66;574:86;562:99;;691:18;676:34;;712:22;;;673:62;670:88;;;738:18;;:::i;:::-;774:2;767:22;461:334;;-1:-1:-1;461:334:350:o;800:1558::-;909:6;940:2;983;971:9;962:7;958:23;954:32;951:52;;;999:1;996;989:12;951:52;1039:9;1026:23;1068:18;1109:2;1101:6;1098:14;1095:34;;;1125:1;1122;1115:12;1095:34;1163:6;1152:9;1148:22;1138:32;;1208:7;1201:4;1197:2;1193:13;1189:27;1179:55;;1230:1;1227;1220:12;1179:55;1266:2;1253:16;1288:2;1284;1281:10;1278:36;;;1294:18;;:::i;:::-;1334:36;1366:2;1361;1358:1;1354:10;1350:19;1334:36;:::i;:::-;1404:15;;;1435:12;;;;-1:-1:-1;1466:4:350;1505:11;;;1497:20;;1493:29;;;1534:19;;;1531:39;;;1566:1;1563;1556:12;1531:39;1590:11;;;;1610:718;1626:6;1621:3;1618:15;1610:718;;;1706:2;1700:3;1691:7;1687:17;1683:26;1680:116;;;1750:1;1779:2;1775;1768:14;1680:116;1822:22;;:::i;:::-;1885:3;1872:17;1937:42;1928:7;1924:56;1915:7;1912:69;1902:167;;2023:1;2052:2;2048;2041:14;1902:167;2082:22;;2153:12;;;2140:26;2124:14;;;2117:50;2190:2;2241:12;;;2228:26;2212:14;;;2205:50;2268:18;;1643:12;;;;2306;;;;1610:718;;;-1:-1:-1;2347:5:350;800:1558;-1:-1:-1;;;;;;;800:1558:350:o;3382:184::-;3434:77;3431:1;3424:88;3531:4;3528:1;3521:15;3555:4;3552:1;3545:15;4762:277;4829:6;4882:2;4870:9;4861:7;4857:23;4853:32;4850:52;;;4898:1;4895;4888:12;4850:52;4930:9;4924:16;4983:5;4976:13;4969:21;4962:5;4959:32;4949:60;;5005:1;5002;4995:12;6220:258;6292:1;6302:113;6316:6;6313:1;6310:13;6302:113;;;6392:11;;;6386:18;6373:11;;;6366:39;6338:2;6331:10;6302:113;;;6433:6;6430:1;6427:13;6424:48;;;-1:-1:-1;;6468:1:350;6450:16;;6443:27;6220:258::o;6483:274::-;6612:3;6650:6;6644:13;6666:53;6712:6;6707:3;6700:4;6692:6;6688:17;6666:53;:::i;:::-;6735:16;;;;;6483:274;-1:-1:-1;;6483:274:350:o;6762:442::-;6911:2;6900:9;6893:21;6874:4;6943:6;6937:13;6986:6;6981:2;6970:9;6966:18;6959:34;7002:66;7061:6;7056:2;7045:9;7041:18;7036:2;7028:6;7024:15;7002:66;:::i;:::-;7120:2;7108:15;7125:66;7104:88;7089:104;;;;7195:2;7085:113;;6762:442;-1:-1:-1;;6762:442:350:o","linkReferences":{},"immutableReferences":{"102950":[{"start":188,"length":32},{"start":691,"length":32}],"102953":[{"start":107,"length":32},{"start":726,"length":32}]}},"methodIdentifiers":{"SENDER()":"6050f2f8","TOKEN()":"82bfefc8","peel((address,uint256,bytes32)[])":"43913491","shell()":"f11d2ff4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_shell\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"SENDER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN\",\"outputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"shell\",\"type\":\"bytes32\"}],\"internalType\":\"struct TransferOnion.Layer[]\",\"name\":\"_layers\",\"type\":\"tuple[]\"}],\"name\":\"peel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"shell\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_sender\":\"Address of the sender to distribute from.\",\"_shell\":\"Initial shell of the onion.\",\"_token\":\"Address of the token to distribute.\"}},\"peel((address,uint256,bytes32)[])\":{\"params\":{\"_layers\":\"Array of onion layers to peel.\"}}},\"title\":\"TransferOnion\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"SENDER()\":{\"notice\":\"Address of the account to distribute tokens from.\"},\"TOKEN()\":{\"notice\":\"Address of the token to distribute.\"},\"constructor\":{\"notice\":\"Constructs a new TransferOnion.\"},\"peel((address,uint256,bytes32)[])\":{\"notice\":\"Peels layers from the onion and distributes tokens.\"},\"shell()\":{\"notice\":\"Current shell hash.\"}},\"notice\":\"TransferOnion is a hash onion for distributing tokens. The shell commits to an ordered list of the token transfers and can be permissionlessly unwrapped in order. The SENDER must `approve` this contract as `transferFrom` is used to move the token balances.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/TransferOnion.sol\":\"TransferOnion\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2\",\"dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/periphery/TransferOnion.sol\":{\"keccak256\":\"0xc2b952a3a18fb7aa2aeda16050415e098bd7978a94107958a8758cd9b7067325\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752c0fc4c4d66984d695510717050b9954b16e3a184fd5d0048ad71abb8b633\",\"dweb:/ipfs/QmYLv41EtHtg3cWGGTGzpdVAvW4fxEaR4jGQE7Uj3tC3Sj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ERC20","name":"_token","type":"address"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes32","name":"_shell","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"SENDER","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}]},{"inputs":[{"internalType":"struct TransferOnion.Layer[]","name":"_layers","type":"tuple[]","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"shell","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"peel"},{"inputs":[],"stateMutability":"view","type":"function","name":"shell","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_sender":"Address of the sender to distribute from.","_shell":"Initial shell of the onion.","_token":"Address of the token to distribute."}},"peel((address,uint256,bytes32)[])":{"params":{"_layers":"Array of onion layers to peel."}}},"version":1},"userdoc":{"kind":"user","methods":{"SENDER()":{"notice":"Address of the account to distribute tokens from."},"TOKEN()":{"notice":"Address of the token to distribute."},"constructor":{"notice":"Constructs a new TransferOnion."},"peel((address,uint256,bytes32)[])":{"notice":"Peels layers from the onion and distributes tokens."},"shell()":{"notice":"Current shell hash."}},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/TransferOnion.sol":"TransferOnion"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0x0e9621f60b2faabe65549f7ed0f24e8853a45c1b7990d47e8160e523683f3935","urls":["bzz-raw://287a2f8d5814dd0f05f22b740f18ca8321acc21c9bd03a6cb2203ea626e2f3f2","dweb:/ipfs/QmZRQv9iuwU817VuqkA2WweiaibKii69x9QxYBBEfbNEud"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/periphery/TransferOnion.sol":{"keccak256":"0xc2b952a3a18fb7aa2aeda16050415e098bd7978a94107958a8758cd9b7067325","urls":["bzz-raw://4752c0fc4c4d66984d695510717050b9954b16e3a184fd5d0048ad71abb8b633","dweb:/ipfs/QmYLv41EtHtg3cWGGTGzpdVAvW4fxEaR4jGQE7Uj3tC3Sj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":48032,"contract":"src/periphery/TransferOnion.sol:TransferOnion","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":102956,"contract":"src/periphery/TransferOnion.sol:TransferOnion","label":"shell","offset":0,"slot":"1","type":"t_bytes32"}],"types":{"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"SENDER()":{"notice":"Address of the account to distribute tokens from."},"TOKEN()":{"notice":"Address of the token to distribute."},"constructor":{"notice":"Constructs a new TransferOnion."},"peel((address,uint256,bytes32)[])":{"notice":"Peels layers from the onion and distributes tokens."},"shell()":{"notice":"Current shell hash."}},"notice":"TransferOnion is a hash onion for distributing tokens. The shell commits to an ordered list of the token transfers and can be permissionlessly unwrapped in order. The SENDER must `approve` this contract as `transferFrom` is used to move the token balances."},"devdoc":{"version":1,"kind":"dev","methods":{"constructor":{"params":{"_sender":"Address of the sender to distribute from.","_shell":"Initial shell of the onion.","_token":"Address of the token to distribute."}},"peel((address,uint256,bytes32)[])":{"params":{"_layers":"Array of onion layers to peel."}}},"title":"TransferOnion"},"id":204}

@@ -1,1 +0,1 @@

{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"57:517:114:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;57:517:114;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"57:517:114:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/Types.sol\":\"Types\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"scripts/Types.sol\":{\"keccak256\":\"0x95143e4cec5b05683a7554c67bb066ea0bd6e7f2f3f14056a86e8c7ee4ce7b24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea1addf2986a3268b2651cf19c4e4876e866aac68b584041afc33d929dbff75b\",\"dweb:/ipfs/QmV2zvSDpNNgoAqHvdtfXVoLytnPujRdxB7AxsNubZr815\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/Types.sol":"Types"},"evmVersion":"london","libraries":{}},"sources":{"scripts/Types.sol":{"keccak256":"0x95143e4cec5b05683a7554c67bb066ea0bd6e7f2f3f14056a86e8c7ee4ce7b24","urls":["bzz-raw://ea1addf2986a3268b2651cf19c4e4876e866aac68b584041afc33d929dbff75b","dweb:/ipfs/QmV2zvSDpNNgoAqHvdtfXVoLytnPujRdxB7AxsNubZr815"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"scripts/Types.sol","id":75088,"exportedSymbols":{"Types":[75087]},"nodeType":"SourceUnit","src":"32:543:114","nodes":[{"id":75063,"nodeType":"PragmaDirective","src":"32:23:114","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":75087,"nodeType":"ContractDefinition","src":"57:517:114","nodes":[{"id":75086,"nodeType":"StructDefinition","src":"163:409:114","nodes":[],"canonicalName":"Types.ContractSet","members":[{"constant":false,"id":75065,"mutability":"mutable","name":"L1CrossDomainMessenger","nameLocation":"200:22:114","nodeType":"VariableDeclaration","scope":75086,"src":"192:30:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75064,"name":"address","nodeType":"ElementaryTypeName","src":"192:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75067,"mutability":"mutable","name":"L1StandardBridge","nameLocation":"240:16:114","nodeType":"VariableDeclaration","scope":75086,"src":"232:24:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75066,"name":"address","nodeType":"ElementaryTypeName","src":"232:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75069,"mutability":"mutable","name":"L2OutputOracle","nameLocation":"274:14:114","nodeType":"VariableDeclaration","scope":75086,"src":"266:22:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75068,"name":"address","nodeType":"ElementaryTypeName","src":"266:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75071,"mutability":"mutable","name":"DisputeGameFactory","nameLocation":"306:18:114","nodeType":"VariableDeclaration","scope":75086,"src":"298:26:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75070,"name":"address","nodeType":"ElementaryTypeName","src":"298:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75073,"mutability":"mutable","name":"OptimismMintableERC20Factory","nameLocation":"342:28:114","nodeType":"VariableDeclaration","scope":75086,"src":"334:36:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75072,"name":"address","nodeType":"ElementaryTypeName","src":"334:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75075,"mutability":"mutable","name":"OptimismPortal","nameLocation":"388:14:114","nodeType":"VariableDeclaration","scope":75086,"src":"380:22:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75074,"name":"address","nodeType":"ElementaryTypeName","src":"380:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75077,"mutability":"mutable","name":"OptimismPortal2","nameLocation":"420:15:114","nodeType":"VariableDeclaration","scope":75086,"src":"412:23:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75076,"name":"address","nodeType":"ElementaryTypeName","src":"412:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75079,"mutability":"mutable","name":"SystemConfig","nameLocation":"453:12:114","nodeType":"VariableDeclaration","scope":75086,"src":"445:20:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75078,"name":"address","nodeType":"ElementaryTypeName","src":"445:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75081,"mutability":"mutable","name":"L1ERC721Bridge","nameLocation":"483:14:114","nodeType":"VariableDeclaration","scope":75086,"src":"475:22:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75080,"name":"address","nodeType":"ElementaryTypeName","src":"475:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75083,"mutability":"mutable","name":"ProtocolVersions","nameLocation":"515:16:114","nodeType":"VariableDeclaration","scope":75086,"src":"507:24:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75082,"name":"address","nodeType":"ElementaryTypeName","src":"507:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75085,"mutability":"mutable","name":"SuperchainConfig","nameLocation":"549:16:114","nodeType":"VariableDeclaration","scope":75086,"src":"541:24:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75084,"name":"address","nodeType":"ElementaryTypeName","src":"541:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"ContractSet","nameLocation":"170:11:114","scope":75087,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Types","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[75087],"name":"Types","nameLocation":"65:5:114","scope":75088,"usedErrors":[]}],"license":"MIT"},"id":114}
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"57:583:118:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;57:583:118;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"57:583:118:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/Types.sol\":\"Types\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"scripts/Types.sol\":{\"keccak256\":\"0x6327c7743304c715a86373da5a50f0570cbc81e8f55b282540ccdd19d8703773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11d7312c0ab7ab7aae8191a839cab65bff494a98b76fe7dd32762c4f3a4081a4\",\"dweb:/ipfs/QmTeH5ds1CU8HBq8zDPjZZJUMv53cyTkfib4WKCaXK9UcD\"]}},\"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":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"scripts/Types.sol":"Types"},"evmVersion":"london","libraries":{}},"sources":{"scripts/Types.sol":{"keccak256":"0x6327c7743304c715a86373da5a50f0570cbc81e8f55b282540ccdd19d8703773","urls":["bzz-raw://11d7312c0ab7ab7aae8191a839cab65bff494a98b76fe7dd32762c4f3a4081a4","dweb:/ipfs/QmTeH5ds1CU8HBq8zDPjZZJUMv53cyTkfib4WKCaXK9UcD"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"id":118}

@@ -1,1 +0,1 @@

{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":"Initializable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\"MyToken\", \"MTK\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\"MyToken\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","id":45458,"exportedSymbols":{"AddressUpgradeable":[46803],"Initializable":[45457]},"nodeType":"SourceUnit","src":"113:5557:25","nodes":[{"id":45308,"nodeType":"PragmaDirective","src":"113:23:25","nodes":[],"literals":["solidity","^","0.8",".2"]},{"id":45309,"nodeType":"ImportDirective","src":"138:44:25","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","nameLocation":"-1:-1:-1","scope":45458,"sourceUnit":46804,"symbolAliases":[],"unitAlias":""},{"id":45457,"nodeType":"ContractDefinition","src":"2383:3286:25","nodes":[{"id":45313,"nodeType":"VariableDeclaration","src":"2535:26:25","nodes":[],"constant":false,"documentation":{"id":45311,"nodeType":"StructuredDocumentation","src":"2421:109:25","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"mutability":"mutable","name":"_initialized","nameLocation":"2549:12:25","scope":45457,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":45312,"name":"uint8","nodeType":"ElementaryTypeName","src":"2535:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"id":45316,"nodeType":"VariableDeclaration","src":"2664:26:25","nodes":[],"constant":false,"documentation":{"id":45314,"nodeType":"StructuredDocumentation","src":"2568:91:25","text":" @dev Indicates that the contract is in the process of being initialized."},"mutability":"mutable","name":"_initializing","nameLocation":"2677:13:25","scope":45457,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45315,"name":"bool","nodeType":"ElementaryTypeName","src":"2664:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":45321,"nodeType":"EventDefinition","src":"2792:33:25","nodes":[],"anonymous":false,"documentation":{"id":45317,"nodeType":"StructuredDocumentation","src":"2697:90:25","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498","name":"Initialized","nameLocation":"2798:11:25","parameters":{"id":45320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45319,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2816:7:25","nodeType":"VariableDeclaration","scope":45321,"src":"2810:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":45318,"name":"uint8","nodeType":"ElementaryTypeName","src":"2810:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2809:15:25"}},{"id":45377,"nodeType":"ModifierDefinition","src":"3078:506:25","nodes":[],"body":{"id":45376,"nodeType":"Block","src":"3101:483:25","nodes":[],"statements":[{"assignments":[45325],"declarations":[{"constant":false,"id":45325,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3116:14:25","nodeType":"VariableDeclaration","scope":45376,"src":"3111:19:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45324,"name":"bool","nodeType":"ElementaryTypeName","src":"3111:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45328,"initialValue":{"id":45327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3133:14:25","subExpression":{"id":45326,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45316,"src":"3134:13:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3111:36:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":45349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":45334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45330,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45325,"src":"3179:14:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":45333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45331,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45313,"src":"3197:12:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":45332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3212:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3197:16:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3179:34:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":45335,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3178:36:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":45347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3219:45:25","subExpression":{"arguments":[{"arguments":[{"id":45340,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3258:4:25","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$45457","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$45457","typeString":"contract Initializable"}],"id":45339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3250:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45338,"name":"address","nodeType":"ElementaryTypeName","src":"3250:7:25","typeDescriptions":{}}},"id":45341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3250:13:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":45336,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46803,"src":"3220:18:25","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$46803_$","typeString":"type(library AddressUpgradeable)"}},"id":45337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":46578,"src":"3220:29:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3220:44:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":45346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45344,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45313,"src":"3268:12:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":45345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3284:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3268:17:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3219:66:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":45348,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3218:68:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3178:108:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":45350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3300:48:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":45329,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3157:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":45351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3157:201:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45352,"nodeType":"ExpressionStatement","src":"3157:201:25"},{"expression":{"id":45355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45353,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45313,"src":"3368:12:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":45354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3383:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3368:16:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":45356,"nodeType":"ExpressionStatement","src":"3368:16:25"},{"condition":{"id":45357,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45325,"src":"3398:14:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45363,"nodeType":"IfStatement","src":"3394:65:25","trueBody":{"id":45362,"nodeType":"Block","src":"3414:45:25","statements":[{"expression":{"id":45360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45358,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45316,"src":"3428:13:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3444:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3428:20:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45361,"nodeType":"ExpressionStatement","src":"3428:20:25"}]}},{"id":45364,"nodeType":"PlaceholderStatement","src":"3468:1:25"},{"condition":{"id":45365,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45325,"src":"3483:14:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45375,"nodeType":"IfStatement","src":"3479:99:25","trueBody":{"id":45374,"nodeType":"Block","src":"3499:79:25","statements":[{"expression":{"id":45368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45366,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45316,"src":"3513:13:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":45367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3529:5:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3513:21:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45369,"nodeType":"ExpressionStatement","src":"3513:21:25"},{"eventCall":{"arguments":[{"hexValue":"31","id":45371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3565:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":45370,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45321,"src":"3553:11:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":45372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3553:14:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45373,"nodeType":"EmitStatement","src":"3548:19:25"}]}}]},"documentation":{"id":45322,"nodeType":"StructuredDocumentation","src":"2831:242:25","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts. Equivalent to `reinitializer(1)`."},"name":"initializer","nameLocation":"3087:11:25","parameters":{"id":45323,"nodeType":"ParameterList","parameters":[],"src":"3098:2:25"},"virtual":false,"visibility":"internal"},{"id":45410,"nodeType":"ModifierDefinition","src":"4361:293:25","nodes":[],"body":{"id":45409,"nodeType":"Block","src":"4399:255:25","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":45388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4417:14:25","subExpression":{"id":45383,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45316,"src":"4418:13:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":45387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45385,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45313,"src":"4435:12:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45386,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45380,"src":"4450:7:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4435:22:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4417:40:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":45389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4459:48:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":45382,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4409:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":45390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4409:99:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45391,"nodeType":"ExpressionStatement","src":"4409:99:25"},{"expression":{"id":45394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45392,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45313,"src":"4518:12:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45393,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45380,"src":"4533:7:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4518:22:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":45395,"nodeType":"ExpressionStatement","src":"4518:22:25"},{"expression":{"id":45398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45396,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45316,"src":"4550:13:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4566:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4550:20:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45399,"nodeType":"ExpressionStatement","src":"4550:20:25"},{"id":45400,"nodeType":"PlaceholderStatement","src":"4580:1:25"},{"expression":{"id":45403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45401,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45316,"src":"4591:13:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":45402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4607:5:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"4591:21:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45404,"nodeType":"ExpressionStatement","src":"4591:21:25"},{"eventCall":{"arguments":[{"id":45406,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45380,"src":"4639:7:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":45405,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45321,"src":"4627:11:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":45407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4627:20:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45408,"nodeType":"EmitStatement","src":"4622:25:25"}]},"documentation":{"id":45378,"nodeType":"StructuredDocumentation","src":"3590:766:25","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n `initializer` is equivalent to `reinitializer(1)`, so a reinitializer may be used after the original\n initialization step. This is essential to configure modules that are added through upgrades and that require\n initialization.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator."},"name":"reinitializer","nameLocation":"4370:13:25","parameters":{"id":45381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45380,"mutability":"mutable","name":"version","nameLocation":"4390:7:25","nodeType":"VariableDeclaration","scope":45410,"src":"4384:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":45379,"name":"uint8","nodeType":"ElementaryTypeName","src":"4384:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4383:15:25"},"virtual":false,"visibility":"internal"},{"id":45420,"nodeType":"ModifierDefinition","src":"4864:125:25","nodes":[],"body":{"id":45419,"nodeType":"Block","src":"4892:97:25","nodes":[],"statements":[{"expression":{"arguments":[{"id":45414,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45316,"src":"4910:13:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":45415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4925:45:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""},"value":"Initializable: contract is not initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""}],"id":45413,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4902:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":45416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4902:69:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45417,"nodeType":"ExpressionStatement","src":"4902:69:25"},{"id":45418,"nodeType":"PlaceholderStatement","src":"4981:1:25"}]},"documentation":{"id":45411,"nodeType":"StructuredDocumentation","src":"4660:199:25","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"name":"onlyInitializing","nameLocation":"4873:16:25","parameters":{"id":45412,"nodeType":"ParameterList","parameters":[],"src":"4889:2:25"},"virtual":false,"visibility":"internal"},{"id":45456,"nodeType":"FunctionDefinition","src":"5388:279:25","nodes":[],"body":{"id":45455,"nodeType":"Block","src":"5437:230:25","nodes":[],"statements":[{"expression":{"arguments":[{"id":45426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5455:14:25","subExpression":{"id":45425,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45316,"src":"5456:13:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":45427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5471:41:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""},"value":"Initializable: contract is initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""}],"id":45424,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5447:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":45428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5447:66:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45429,"nodeType":"ExpressionStatement","src":"5447:66:25"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":45436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45430,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45313,"src":"5527:12:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"id":45433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5547:5:25","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":45432,"name":"uint8","nodeType":"ElementaryTypeName","src":"5547:5:25","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":45431,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5542:4:25","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":45434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5542:11:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":45435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5542:15:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5527:30:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45454,"nodeType":"IfStatement","src":"5523:138:25","trueBody":{"id":45453,"nodeType":"Block","src":"5559:102:25","statements":[{"expression":{"id":45443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45437,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45313,"src":"5573:12:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":45440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5593:5:25","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":45439,"name":"uint8","nodeType":"ElementaryTypeName","src":"5593:5:25","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":45438,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5588:4:25","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":45441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5588:11:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":45442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5588:15:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5573:30:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":45444,"nodeType":"ExpressionStatement","src":"5573:30:25"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":45448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5639:5:25","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":45447,"name":"uint8","nodeType":"ElementaryTypeName","src":"5639:5:25","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":45446,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5634:4:25","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":45449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5634:11:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":45450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5634:15:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":45445,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45321,"src":"5622:11:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":45451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5622:28:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45452,"nodeType":"EmitStatement","src":"5617:33:25"}]}}]},"documentation":{"id":45421,"nodeType":"StructuredDocumentation","src":"4995:388:25","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies."},"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5397:20:25","parameters":{"id":45422,"nodeType":"ParameterList","parameters":[],"src":"5417:2:25"},"returnParameters":{"id":45423,"nodeType":"ParameterList","parameters":[],"src":"5437:0:25"},"scope":45457,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":45310,"nodeType":"StructuredDocumentation","src":"184:2198:25","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"linearizedBaseContracts":[45457],"name":"Initializable","nameLocation":"2401:13:25","scope":45458,"usedErrors":[]}],"license":"MIT"},"id":25}
{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/lib-keccak/lib/solady/src/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@cwia/=lib/clones-with-immutable-args/src/","@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/lib-keccak/lib/solady/src/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/src/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":"Initializable"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45313,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":45316,"contract":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:Initializable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\"MyToken\", \"MTK\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\"MyToken\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}}},"id":25}
{
"name": "@eth-optimism/contracts-bedrock",
"version": "0.17.1",
"version": "0.17.2",
"description": "Contracts for Optimism Specs",

@@ -14,3 +14,3 @@ "license": "MIT",

"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^6.19.1",
"@typescript-eslint/parser": "^6.21.0",
"tsx": "^4.7.0",

@@ -24,11 +24,11 @@ "typescript": "^5.3.3"

"bindings:go": "pnpm clean && pnpm build && pnpm bindings:go:no-build",
"prebuild": "./scripts/verify-foundry-install.sh",
"prebuild": "./scripts/checks/check-foundry-install.sh",
"build": "forge build",
"build:go-ffi": "(cd scripts/go-ffi && go build)",
"autogen:invariant-docs": "npx tsx scripts/invariant-doc-gen.ts",
"autogen:invariant-docs": "npx tsx scripts/autogen/generate-invariant-docs.ts",
"test": "pnpm build:go-ffi && forge test",
"test:kontrol": "./test/kontrol/scripts/run-kontrol.sh",
"test:kontrol": "./test/kontrol/scripts/run-kontrol.sh script",
"genesis": "./scripts/generate-l2-genesis.sh",
"coverage": "pnpm build:go-ffi && forge coverage",
"coverage:lcov": "pnpm build:go-ffi && forge coverage --report lcov",
"coverage": "pnpm build:go-ffi && (forge coverage || (bash -c \"forge coverage 2>&1 | grep -q 'Stack too deep' && echo -e '\\033[1;33mWARNING\\033[0m: Coverage failed with stack too deep, so overriding and exiting successfully' && exit 0 || exit 1\"))",
"coverage:lcov": "pnpm build:go-ffi && (forge coverage --report lcov || (bash -c \"forge coverage --report lcov 2>&1 | grep -q 'Stack too deep' && echo -e '\\033[1;33mWARNING\\033[0m: Coverage failed with stack too deep, so overriding and exiting successfully' && exit 0 || exit 1\"))",
"deploy": "./scripts/deploy.sh",

@@ -38,13 +38,9 @@ "gas-snapshot:no-build": "forge snapshot --match-contract GasBenchMark",

"gas-snapshot": "pnpm build:go-ffi && pnpm gas-snapshot:no-build",
"snapshots": "npx tsx scripts/generate-snapshots.ts && ./test/kontrol/scripts/make-summary-deployment.sh",
"snapshots:check": "./scripts/check-snapshots.sh",
"slither": "./scripts/slither.sh",
"slither:check": "pnpm slither && git diff --exit-code",
"slither:triage": "TRIAGE_MODE=1 ./scripts/slither.sh",
"snapshots": "forge build --ast && npx tsx scripts/autogen/generate-snapshots.ts && ./test/kontrol/scripts/make-summary-deployment.sh",
"snapshots:check": "./scripts/checks/check-snapshots.sh",
"semver-lock": "forge script scripts/SemverLock.s.sol",
"validate-deploy-configs": "./scripts/check-deploy-configs.sh",
"validate-spacers:no-build": "npx tsx scripts/validate-spacers.ts",
"validate-deploy-configs": "./scripts/checks/check-deploy-configs.sh",
"validate-spacers:no-build": "npx tsx scripts/checks/check-spacers.ts",
"validate-spacers": "pnpm build && pnpm validate-spacers:no-build",
"clean": "rm -rf ./artifacts ./forge-artifacts ./cache ./tsconfig.tsbuildinfo ./tsconfig.build.tsbuildinfo ./scripts/go-ffi/go-ffi ./.testdata ./deployments/hardhat/*",
"preinstall": "npx only-allow pnpm",
"pre-pr:no-build": "pnpm gas-snapshot:no-build && pnpm snapshots && pnpm semver-lock && pnpm autogen:invariant-docs && pnpm lint && pnpm bindings:go:no-build",

@@ -54,3 +50,3 @@ "pre-pr": "pnpm clean && pnpm build:go-ffi && pnpm build && pnpm pre-pr:no-build",

"lint:ts:check": "eslint . --max-warnings=0",
"lint:forge-tests:check": "npx tsx scripts/forge-test-names.ts",
"lint:forge-tests:check": "npx tsx scripts/checks/check-test-names.ts",
"lint:contracts:check": "pnpm lint:fix && git diff --exit-code",

@@ -57,0 +53,0 @@ "lint:check": "pnpm lint:contracts:check && pnpm lint:ts:check",

@@ -1,57 +0,267 @@

# Optimism Smart Contracts (Bedrock)
# OP Stack Smart Contracts
[![codecov](https://codecov.io/gh/ethereum-optimism/optimism/branch/develop/graph/badge.svg?token=0VTG7PG7YR&flag=contracts-bedrock-tests)](https://codecov.io/gh/ethereum-optimism/optimism)
This package contains the L1 and L2 smart contracts for the OP Stack.
Detailed specifications for the contracts contained within this package can be found at [specs.optimism.io](https://specs.optimism.io).
High-level information about these contracts can be found within this README and within the [Optimism Developer Docs](https://docs.optimism.io).
This package contains the smart contracts that compose the on-chain component of Optimism's upcoming Bedrock upgrade.
We've tried to maintain 100% backwards compatibility with the existing system while also introducing new useful features.
You can find detailed specifications for the contracts contained within this package [here](../../specs).
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
## Table of Contents
A style guide we follow for writing contracts can be found [here](./STYLE_GUIDE.md).
- [Architecture Overview](#architecture-overview)
- [Core L1 Smart Contracts](#core-l1-smart-contracts)
- [Notes for Core L1 Smart Contracts](#notes-for-core-l1-smart-contracts)
- [Core L2 Smart Contracts](#core-l2-smart-contracts)
- [Notes for Core L2 Smart Contracts](#notes-for-core-l2-smart-contracts)
- [Smart Contract Proxies](#smart-contract-proxies)
- [External Usage](#external-usage)
- [Using OP Stack Contracts in Solidity](#using-op-stack-contracts-in-solidity)
- [Using OP Stack Contracts in JavaScript](#using-op-stack-contracts-in-javascript)
- [Deployed Addresses](#deployed-addresses)
- [Contributing](#contributing)
- [Contributing Guide](#contributing-guide)
- [Style Guide](#style-guide)
- [Deployment](#deployment)
- [Configuration](#configuration)
- [Execution](#execution)
- [Deploying a single contract](#deploying-a-single-contract)
- [Testing](#testing)
- [Test Setup](#test-setup)
- [Static Analysis](#static-analysis)
## Contracts Overview
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
### Contracts deployed to L1
## Architecture Overview
| Name | Proxy Type | Description |
| ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [`L1CrossDomainMessenger`](../../specs/messengers.md) | [`ResolvedDelegateProxy`](./contracts/legacy/ResolvedDelegateProxy.sol) | High-level interface for sending messages to and receiving messages from Optimism |
| [`L1StandardBridge`](../../specs/bridges.md) | [`L1ChugSplashProxy`](./contracts/legacy/L1ChugSplashProxy.sol) | Standardized system for transferring ERC20 tokens to/from Optimism |
| [`L2OutputOracle`](../../specs/proposals.md#l2-output-oracle-smart-contract) | [`Proxy`](./contracts/universal/Proxy.sol) | Stores commitments to the state of Optimism which can be used by contracts on L1 to access L2 state |
| [`OptimismPortal`](../../specs/deposits.md#deposit-contract) | [`Proxy`](./contracts/universal/Proxy.sol) | Low-level message passing interface |
| [`OptimismMintableERC20Factory`](../../specs/predeploys.md#optimismmintableerc20factory) | [`Proxy`](./contracts/universal/Proxy.sol) | Deploys standard `OptimismMintableERC20` tokens that are compatible with either `StandardBridge` |
| [`ProxyAdmin`](../../specs/TODO) | - | Contract that can upgrade L1 contracts |
> **NOTE**: Smart contract names in the architecture diagrams below are links to source code. Click them!
### Contracts deployed to L2
### Core L1 Smart Contracts
| Name | Proxy Type | Description |
| ---------------------------------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------ |
| [`GasPriceOracle`](../../specs/predeploys.md#ovm_gaspriceoracle) | [`Proxy`](./contracts/universal/Proxy.sol) | Stores L2 gas price configuration values |
| [`L1Block`](../../specs/predeploys.md#l1block) | [`Proxy`](./contracts/universal/Proxy.sol) | Stores L1 block context information (e.g., latest known L1 block hash) |
| [`L2CrossDomainMessenger`](../../specs/predeploys.md#l2crossdomainmessenger) | [`Proxy`](./contracts/universal/Proxy.sol) | High-level interface for sending messages to and receiving messages from L1 |
| [`L2StandardBridge`](../../specs/predeploys.md#l2standardbridge) | [`Proxy`](./contracts/universal/Proxy.sol) | Standardized system for transferring ERC20 tokens to/from L1 |
| [`L2ToL1MessagePasser`](../../specs/predeploys.md#ovm_l2tol1messagepasser) | [`Proxy`](./contracts/universal/Proxy.sol) | Low-level message passing interface |
| [`SequencerFeeVault`](../../specs/predeploys.md#sequencerfeevault) | [`Proxy`](./contracts/universal/Proxy.sol) | Vault for L2 transaction fees |
| [`OptimismMintableERC20Factory`](../../specs/predeploys.md#optimismmintableerc20factory) | [`Proxy`](./contracts/universal/Proxy.sol) | Deploys standard `OptimismMintableERC20` tokens that are compatible with either `StandardBridge` |
| [`L2ProxyAdmin`](../../specs/TODO) | - | Contract that can upgrade L2 contracts when sent a transaction from L1 |
Below you'll find an architecture diagram describing the core L1 smart contracts for the OP Stack.
Smart contracts that are considered "peripheral" and not core to the operation of the OP Stack system are described separately.
### Legacy and deprecated contracts
```mermaid
graph LR
subgraph "External Contracts"
ExternalERC20(External ERC20 Contracts)
ExternalERC721(External ERC721 Contracts)
end
| Name | Location | Proxy Type | Description |
| --------------------------------------------------------------- | -------- | ------------------------------------------ | ------------------------------------------------------------------------------------- |
| [`AddressManager`](./contracts/legacy/AddressManager.sol) | L1 | - | Legacy upgrade mechanism (unused in Bedrock) |
| [`DeployerWhitelist`](./contracts/legacy/DeployerWhitelist.sol) | L2 | [`Proxy`](./contracts/universal/Proxy.sol) | Legacy contract for managing allowed deployers (unused since EVM Equivalence upgrade) |
| [`L1BlockNumber`](./contracts/legacy/L1BlockNumber.sol) | L2 | [`Proxy`](./contracts/universal/Proxy.sol) | Legacy contract for accessing latest known L1 block number, replaced by `L1Block` |
subgraph "L1 Smart Contracts"
BatchDataEOA(<a href="https://etherscan.io/address/0xff00000000000000000000000000000000000010">Batch Inbox Address</a>)
L1StandardBridge(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L1/L1StandardBridge.sol">L1StandardBridge</a>)
L1ERC721Bridge(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L1/L1ERC721Bridge.sol">L1ERC721Bridge</a>)
L1CrossDomainMessenger(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L1/L1CrossDomainMessenger.sol">L1CrossDomainMessenger</a>)
L2OutputOracle(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L1/L2OutputOracle.sol">L2OutputOracle</a>)
OptimismPortal(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol">OptimismPortal</a>)
SuperchainConfig(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L1/SuperchainConfig.sol">SuperchainConfig</a>)
SystemConfig(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L1/SystemConfig.sol">SystemConfig</a>)
end
## Installation
subgraph "User Interactions"
Users(Users)
end
We export contract ABIs, contract source code, and contract deployment information for this package via `npm`:
subgraph "System Interactions"
Batcher(Batcher)
Proposer(Proposer)
Guardian(Guardian)
end
```shell
npm install @eth-optimism/contracts-bedrock
subgraph "Layer 2 Interactions"
L2Nodes(Layer 2 Nodes)
end
Batcher -->|publish transaction batches| BatchDataEOA
Proposer -->|propose state outputs| L2OutputOracle
Guardian -->|remove invalid state outputs| L2OutputOracle
ExternalERC20 <-->|mint/burn/transfer| L1StandardBridge
ExternalERC721 <-->|mint/burn/transfer| L1ERC721Bridge
L1StandardBridge <-->|send/receive message| L1CrossDomainMessenger
L1ERC721Bridge <-->|send/receive message| L1CrossDomainMessenger
L1CrossDomainMessenger <-->|package/send/receive message| OptimismPortal
L1StandardBridge -.->|query pause state| SuperchainConfig
L1ERC721Bridge -.->|query pause state| SuperchainConfig
L1CrossDomainMessenger -.->|query pause state| SuperchainConfig
OptimismPortal -.->|query pause state| SuperchainConfig
OptimismPortal -.->|query config| SystemConfig
OptimismPortal -.->|query proposed states| L2OutputOracle
Users <-->|deposit/withdraw ETH/ERC20| L1StandardBridge
Users <-->|deposit/withdraw ERC721| L1ERC721Bridge
Users -->|prove/execute withdrawal transactions| OptimismPortal
L2Nodes -.->|fetch transaction batches| BatchDataEOA
L2Nodes -.->|verify output roots| L2OutputOracle
L2Nodes -.->|fetch deposit events| OptimismPortal
classDef extContracts stroke:#ff9,stroke-width:2px;
classDef l1Contracts stroke:#bbf,stroke-width:2px;
classDef l1EOA stroke:#bbb,stroke-width:2px;
classDef userInt stroke:#f9a,stroke-width:2px;
classDef systemUser stroke:#f9a,stroke-width:2px;
classDef l2Nodes stroke:#333,stroke-width:2px
class ExternalERC20,ExternalERC721 extContracts;
class L1StandardBridge,L1ERC721Bridge,L1CrossDomainMessenger,L2OutputOracle,OptimismPortal,SuperchainConfig,SystemConfig l1Contracts;
class BatchDataEOA l1EOA;
class Users userInt;
class Batcher,Proposer,Guardian systemUser;
class L2Nodes l2Nodes;
```
#### Notes for Core L1 Smart Contracts
- The `Batch Data Address` described above (**highlighted in GREY**) is *not* a smart contract and is instead simply an arbitrarily chosen account that is assumed to have no known private key. This account is typically chosen as the account `0xFF0000....<L2 chain ID>` where `<L2 chain ID>` is chain ID of the Layer 2 network for which the data is being posted. For instance, for OP Mainnet, this account is chosen as `0xFF00000000000000000000000000000000000010`. However, this is not a strict requirement and some OP Stack chains may not follow this convention.
- Smart contracts that sit behind `Proxy` contracts are **highlighted in BLUE**. Refer to the [Smart Contract Proxies](#smart-contract-proxies) section below to understand how these proxies are designed.
- The `L1CrossDomainMessenger` contract sits behind the [`ResolvedDelegateProxy`](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/legacy/ResolvedDelegateProxy.sol) contract, a legacy proxy contract type used within older versions of the OP Stack. This proxy type is used exclusively for the `L1CrossDomainMessenger` to maintain backwards compatibility.
- The `L1StandardBridge` contract sits behind the [`L1ChugSplashProxy`](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/legacy/L1ChugSplashProxy.sol) contract, a legacy proxy contract type used within older versions of the OP Stack. This proxy type is used exclusively for the `L1StandardBridge` contract to maintain backwards compatibility.
### Core L2 Smart Contracts
Here you'll find an architecture diagram describing the core OP Stack smart contracts that exist natively on the L2 chain itself.
```mermaid
graph LR
subgraph "Layer 1 (Ethereum)"
L1SmartContracts(L1 Smart Contracts)
end
subgraph "L2 Client"
L2Node(L2 Node)
end
subgraph "L2 System Contracts"
L1Block(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L2/L1Block.sol">L1Block</a>)
GasPriceOracle(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L2/GasPriceOracle.sol">GasPriceOracle</a>)
L1FeeVault(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L2/L1FeeVault.sol">L1FeeVault</a>)
BaseFeeVault(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L2/BaseFeeVault.sol">BaseFeeVault</a>)
SequencerFeeVault(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L2/SequencerFeeVault.sol">SequencerFeeVault</a>)
end
subgraph "L2 Bridge Contracts"
L2CrossDomainMessenger(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L2/L2CrossDomainMessenger.sol">L2CrossDomainMessenger</a>)
L2ToL1MessagePasser(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L2/L2ToL1MessagePasser.sol">L2ToL1MessagePasser</a>)
L2StandardBridge(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L2/L2StandardBridge.sol">L2StandardBridge</a>)
L2ERC721Bridge(<a href="https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/src/L2/L2ERC721Bridge.sol">L2ERC721Bridge</a>)
end
subgraph "Transactions"
DepositTransaction(Deposit Transaction)
UserTransaction(User Transaction)
end
subgraph "External Contracts"
ExternalERC20(External ERC20 Contracts)
ExternalERC721(External ERC721 Contracts)
end
subgraph "Remaining L2 Universe"
OtherContracts(Any Contracts and Addresses)
end
L2Node -.->|derives chain from| L1SmartContracts
L2Node -->|updates| L1Block
L2Node -->|distributes fees to| L1FeeVault
L2Node -->|distributes fees to| BaseFeeVault
L2Node -->|distributes fees to| SequencerFeeVault
L2Node -->|derives from deposits| DepositTransaction
L2Node -->|derives from chain data| UserTransaction
UserTransaction -->|can trigger| OtherContracts
DepositTransaction -->|maybe triggers| L2CrossDomainMessenger
DepositTransaction -->|can trigger| OtherContracts
ExternalERC20 <-->|mint/burn/transfer| L2StandardBridge
ExternalERC721 <-->|mint/burn/transfer| L2ERC721Bridge
L2StandardBridge <-->|sends/receives messages| L2CrossDomainMessenger
L2ERC721Bridge <-->|sends/receives messages| L2CrossDomainMessenger
GasPriceOracle -.->|queries| L1Block
L2CrossDomainMessenger -->|sends messages| L2ToL1MessagePasser
classDef extContracts stroke:#ff9,stroke-width:2px;
classDef l2Contracts stroke:#bbf,stroke-width:2px;
classDef transactions stroke:#fba,stroke-width:2px;
classDef l2Node stroke:#f9a,stroke-width:2px;
class ExternalERC20,ExternalERC721 extContracts;
class L2CrossDomainMessenger,L2ToL1MessagePasser,L2StandardBridge,L2ERC721Bridge l2Contracts;
class L1Block,L1FeeVault,BaseFeeVault,SequencerFeeVault,GasPriceOracle l2Contracts;
class UserTransaction,DepositTransaction transactions;
class L2Node l2Node;
```
#### Notes for Core L2 Smart Contracts
- Contracts highlighted as "L2 System Contracts" are updated or mutated automatically as part of the chain derivation process. Users typically do not mutate these contracts directly, except in the case of the `FeeVault` contracts where any user may trigger a withdrawal of collected fees to the pre-determined withdrawal address.
- Smart contracts that sit behind `Proxy` contracts are **highlighted in BLUE**. Refer to the [Smart Contract Proxies](#smart-contract-proxies) section below to understand how these proxies are designed.
- User interactions for the "L2 Bridge Contracts" have been omitted from this diagram but largely follow the same user interactions described in the architecture diagram for the [Core L1 Smart Contracts](#core-l1-smart-contracts).
### Smart Contract Proxies
Most L1 and L2 smart contracts for OP Stack chains today sit behind `Proxy` contracts that themselves are managed by a `ProxyAdmin` contract.
The `ProxyAdmin` contract is controlled by some `owner` address that can be any EOA or smart contract.
Below you'll find a diagram that explains the behavior of the typical proxy contract.
```mermaid
graph LR
ProxyAdminOwner(Proxy Admin Owner)
ProxyAdmin(<a href="https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/universal/ProxyAdmin.sol">ProxyAdmin</a>)
subgraph "Logical Smart Contract"
Proxy(<a href="https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/universal/Proxy.sol">Proxy</a>)
Implementation(Implementation)
end
ProxyAdminOwner -->|manages| ProxyAdmin
ProxyAdmin -->|upgrades| Proxy
Proxy -->|delegatecall| Implementation
classDef l1Contracts stroke:#bbf,stroke-width:2px;
classDef systemUser stroke:#f9a,stroke-width:2px;
class Proxy l1Contracts;
class ProxyAdminOwner systemUser;
```
## External Usage
### Using OP Stack Contracts in Solidity
OP Stack smart contracts are published to NPM and can be installed via:
```sh
npm install @eth-optimism/contracts-bedrock.
```
Refer to the [Optimism Developer Docs](https://docs.optimism.io/builders/dapp-developers/contracts/system-contracts#using-system-contracts-in-solidity) for additional information about how to use this package.
### Using OP Stack Contracts in JavaScript
Contract ABIs and addresses are published to NPM in a separate package and can be installed via:
```sh
npm install @eth-optimism/contracts-ts
```
Refer to the [Optimism Developer Docs](https://docs.optimism.io/builders/dapp-developers/contracts/system-contracts#using-system-contracts-in-javascript) for additional information about how to use this package.
### Deployed Addresses
See the [Optimism Developer Docs](https://docs.optimism.io/chain/addresses) for the deployed addresses of these smart contracts for OP Mainnet and OP Sepolia.
## Contributing
For all information about working on and contributing to Optimism's smart contracts, please see [CONTRIBUTING.md](./CONTRIBUTING.md)
### Contributing Guide
Contributions to the OP Stack are always welcome.
Please refer to the [CONTRIBUTING.md](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/CONTRIBUTING.md) for more information about how to contribute to the OP Stack smart contracts.
### Style Guide
OP Stack smart contracts should be written according to the [STYLE_GUIDE.md](./STYLE_GUIDE.md) found within this repository.
Maintaining a consistent code style makes code easier to review and maintain, ultimately making the development process safer.
## Deployment

@@ -88,2 +298,4 @@

## Testing
### Test Setup

@@ -101,13 +313,15 @@

`contracts-bedrock` uses [slither](https://github.com/crytic/slither) as its primary static analysis tool. When opening a pr that includes changes to `contracts-bedrock`, you should
verify that slither did not detect any new issues by running `pnpm slither:check`.
`contracts-bedrock` uses [slither](https://github.com/crytic/slither) as its primary static analysis tool.
Slither will be run against PRs as part of CI, and new findings will be reported as a comment on the PR.
CI will fail if there are any new findings of medium or higher severity, as configured in the repo's Settings > Code Security and Analysis > Code Scanning > Protection rules setting.
If there are new issues, you should triage them.
Run `pnpm slither:triage` to step through findings.
You should _carefully_ walk through these findings, specifying which to triage/ignore (default is to keep all, outputting them into `slither-report.json`).
Findings can be triaged into `slither.db.json` or kept in the `slither-report.json`.
You should triage issues with extreme _care_ and security sign-off.
There are two corresponding jobs in CI: one calls "Slither Analysis" and one called "Code scanning results / Slither".
The former will always pass if Slither runs successfully, and the latter will fail if there are any new findings of medium or higher severity.
After issues are triaged, or an updated slither report is generated, make sure to check in your changes to git.
Once checked in, the changes can be verified by running `pnpm slither:check`.
This will fail if there are issues missing from the `slither-report.json` that are _not_ triaged into `slither.db.json`.
Existing findings can be found in the repo's Security tab > [Code Scanning](https://github.com/ethereum-optimism/optimism/security/code-scanning) section.
You can view findings for a specific PR using the `pr:{number}` filter, such [`pr:9405`](https://github.com/ethereum-optimism/optimism/security/code-scanning?query=is:open+pr:9405).
For each finding, either fix it locally and push a new commit, or dismiss it through the PR comment's UI.
Note that you can run slither locally by running `slither .`, but because it does not contain the triaged results from GitHub, it will be noisy.
Instead, you should run `slither ./path/to/contract.sol` to run it against a specific file.

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc