@tokamak-network/thanos-contracts
Version:
1 lines • 59.8 kB
JSON
{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PERMIT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"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":"nonces","inputs":[{"name":"owner","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":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","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":{"DOMAIN_SEPARATOR()":"3644e515","PERMIT_TYPEHASH()":"30adf81f","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","nonces(address)":"7ecebe00","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"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\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"returns\":{\"_0\":\"The bytes32 EIP712 domain separator.\"}},\"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`.\"},\"nonces(address)\":{\"params\":{\"owner\":\"Token owner's address (Authorizer)\"},\"returns\":{\"_0\":\"Next nonce\"}},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` 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.\"}},\"title\":\"EIP-2612\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"notice\":\"Get the EIP712 Domain Separator.\"},\"nonces(address)\":{\"notice\":\"Nonces for permit\"}},\"notice\":\"Provide internal implementation for gas-abstracted approvals\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP2612.sol\":\"EIP2612\"},\"evmVersion\":\"istanbul\",\"libraries\":{\"SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/interface/IERC1271.sol\":{\"keccak256\":\"0xbdb06a96b03ebe4b178df317415a307dda773d888999228ec9136829a39483a5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a379bef8e91e746c8a5ee2e2546032acba745021d241563954dab4ea8d3de130\",\"dweb:/ipfs/Qmf7A8XiHrR6FM7nMN1xbvGoQ7i9hUb2bgFofNYBjpWMqa\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/ECRecover.sol\":{\"keccak256\":\"0x95fb7106fe5954d4f5be2d9fd731524a4cba5a27ae9ecc61b210e10216b4d770\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fd0b791ba1d3e454844566cc2f8ebabfa8038f81e2180643995d3fc0172b87d4\",\"dweb:/ipfs/QmaN7jhTATcAgGe6NbPqDxN7AAqzDKdv6Db64pt9BVdwM3\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/MessageHashUtils.sol\":{\"keccak256\":\"0x30c544cf024e8f04071ca0e5e75ec26890acefe62f5b8c9baeeaa0653aa9c2b1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://dc4d849bf3e24c378fb381cbb0dceb316df9584bad1c83b0871e9a4cb76aadf6\",\"dweb:/ipfs/QmXSq5T7wV9DyyCgbJJyMif9Yor4tcSMyPXaTUCwwrRnkL\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/SignatureChecker.sol\":{\"keccak256\":\"0x34a9ea7304dd9892e95ec34de00b7e447e76af8a6834d02664fc1b88726468e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://700af14b4acc005d31c9bff851544c5aabc6ab89be4484488e724dfdb9d5e5d2\",\"dweb:/ipfs/QmT4SpKgBHbA9S7m8ZKQFb87nCKknue3XjYtwHJm4EfHrF\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/AbstractFiatTokenV1.sol\":{\"keccak256\":\"0x8c8304c7f254e274e51f5b886d91f91c731432885aa352d25ed881c1682a9700\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3470e35dd7dc304944f2d9718b6164976b7e5f1d6c8efcdd511d73bb3b5bf273\",\"dweb:/ipfs/QmaZwLkCDpDdJuHKvsCQHpVars5Xrp2xfM8budLENUSmW6\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/AbstractFiatTokenV2.sol\":{\"keccak256\":\"0x0cf455818990842275c1daa8e0c7b3f9a036597c044e3b6d362d5eddda1ef073\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5331cfcdb2e5c13c5fdc2b0f9675076fd59a6fb218601b8c93ddc0ec4a689bea\",\"dweb:/ipfs/QmcBtpDdvULSc8GzHoTK5jVZhHHp1Enh5iWgBLgVjUk44h\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP2612.sol\":{\"keccak256\":\"0xe86116e56b1c94303d70b5f80a74b81f94efe01c53b5ae827cd2ca529ce27e17\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://36cf6fd0e0690a16fa5feee16be167ec724aa63bb0c154b29c1947fc0ddc5553\",\"dweb:/ipfs/QmQdUUDcsHMysjs1wg7DdTRD9MSd4kuDTCDdd4d8VcY1XC\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP712Domain.sol\":{\"keccak256\":\"0x982d6a56247dfd6429392b56b27baa2888ebe4861473d77b8d3e8e2e361e8854\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a39671c171176dcb617d275b610a2ab83d5745483781d2fcd41c15a7b5c55b0b\",\"dweb:/ipfs/QmVpHjbEyUA9h7a4C9UMKMLwbyovDd6HM2jYNwobBaWA4x\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"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":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"returns":{"_0":"The bytes32 EIP712 domain separator."}},"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`."},"nonces(address)":{"params":{"owner":"Token owner's address (Authorizer)"},"returns":{"_0":"Next nonce"}},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `sender` to `recipient` 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":{"DOMAIN_SEPARATOR()":{"notice":"Get the EIP712 Domain Separator."},"nonces(address)":{"notice":"Nonces for permit"}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP2612.sol":"EIP2612"},"evmVersion":"istanbul","libraries":{"SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385","urls":["bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017","dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5"],"license":"MIT"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/interface/IERC1271.sol":{"keccak256":"0xbdb06a96b03ebe4b178df317415a307dda773d888999228ec9136829a39483a5","urls":["bzz-raw://a379bef8e91e746c8a5ee2e2546032acba745021d241563954dab4ea8d3de130","dweb:/ipfs/Qmf7A8XiHrR6FM7nMN1xbvGoQ7i9hUb2bgFofNYBjpWMqa"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/ECRecover.sol":{"keccak256":"0x95fb7106fe5954d4f5be2d9fd731524a4cba5a27ae9ecc61b210e10216b4d770","urls":["bzz-raw://fd0b791ba1d3e454844566cc2f8ebabfa8038f81e2180643995d3fc0172b87d4","dweb:/ipfs/QmaN7jhTATcAgGe6NbPqDxN7AAqzDKdv6Db64pt9BVdwM3"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/MessageHashUtils.sol":{"keccak256":"0x30c544cf024e8f04071ca0e5e75ec26890acefe62f5b8c9baeeaa0653aa9c2b1","urls":["bzz-raw://dc4d849bf3e24c378fb381cbb0dceb316df9584bad1c83b0871e9a4cb76aadf6","dweb:/ipfs/QmXSq5T7wV9DyyCgbJJyMif9Yor4tcSMyPXaTUCwwrRnkL"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/SignatureChecker.sol":{"keccak256":"0x34a9ea7304dd9892e95ec34de00b7e447e76af8a6834d02664fc1b88726468e4","urls":["bzz-raw://700af14b4acc005d31c9bff851544c5aabc6ab89be4484488e724dfdb9d5e5d2","dweb:/ipfs/QmT4SpKgBHbA9S7m8ZKQFb87nCKknue3XjYtwHJm4EfHrF"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/AbstractFiatTokenV1.sol":{"keccak256":"0x8c8304c7f254e274e51f5b886d91f91c731432885aa352d25ed881c1682a9700","urls":["bzz-raw://3470e35dd7dc304944f2d9718b6164976b7e5f1d6c8efcdd511d73bb3b5bf273","dweb:/ipfs/QmaZwLkCDpDdJuHKvsCQHpVars5Xrp2xfM8budLENUSmW6"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/AbstractFiatTokenV2.sol":{"keccak256":"0x0cf455818990842275c1daa8e0c7b3f9a036597c044e3b6d362d5eddda1ef073","urls":["bzz-raw://5331cfcdb2e5c13c5fdc2b0f9675076fd59a6fb218601b8c93ddc0ec4a689bea","dweb:/ipfs/QmcBtpDdvULSc8GzHoTK5jVZhHHp1Enh5iWgBLgVjUk44h"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP2612.sol":{"keccak256":"0xe86116e56b1c94303d70b5f80a74b81f94efe01c53b5ae827cd2ca529ce27e17","urls":["bzz-raw://36cf6fd0e0690a16fa5feee16be167ec724aa63bb0c154b29c1947fc0ddc5553","dweb:/ipfs/QmQdUUDcsHMysjs1wg7DdTRD9MSd4kuDTCDdd4d8VcY1XC"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP712Domain.sol":{"keccak256":"0x982d6a56247dfd6429392b56b27baa2888ebe4861473d77b8d3e8e2e361e8854","urls":["bzz-raw://a39671c171176dcb617d275b610a2ab83d5745483781d2fcd41c15a7b5c55b0b","dweb:/ipfs/QmVpHjbEyUA9h7a4C9UMKMLwbyovDd6HM2jYNwobBaWA4x"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":3794,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP2612.sol:EIP2612","label":"_DEPRECATED_CACHED_DOMAIN_SEPARATOR","offset":0,"slot":"0","type":"t_bytes32"},{"astId":3255,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP2612.sol:EIP2612","label":"_permitNonces","offset":0,"slot":"1","type":"t_mapping(t_address,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"DOMAIN_SEPARATOR()":{"notice":"Get the EIP712 Domain Separator."},"nonces(address)":{"notice":"Nonces for permit"}},"notice":"Provide internal implementation for gas-abstracted approvals"},"devdoc":{"version":1,"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"returns":{"_0":"The bytes32 EIP712 domain separator."}},"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`."},"nonces(address)":{"params":{"owner":"Token owner's address (Authorizer)"},"returns":{"_0":"Next nonce"}},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `sender` to `recipient` 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."}},"title":"EIP-2612"},"ast":{"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP2612.sol","id":3370,"exportedSymbols":{"EIP2612":[3369]},"nodeType":"SourceUnit","src":"659:2921:26","nodes":[{"id":3235,"nodeType":"PragmaDirective","src":"659:23:26","nodes":[],"literals":["solidity","0.6",".12"]},{"id":3237,"nodeType":"ImportDirective","src":"684:64:26","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/AbstractFiatTokenV2.sol","file":"./AbstractFiatTokenV2.sol","scope":3370,"sourceUnit":3234,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":3236,"name":"AbstractFiatTokenV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"693:19:26","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":3239,"nodeType":"ImportDirective","src":"749:50:26","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP712Domain.sol","file":"./EIP712Domain.sol","scope":3370,"sourceUnit":3815,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":3238,"name":"EIP712Domain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"758:12:26","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":3241,"nodeType":"ImportDirective","src":"800:64:26","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/MessageHashUtils.sol","file":"../util/MessageHashUtils.sol","scope":3370,"sourceUnit":1765,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":3240,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"809:16:26","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":3243,"nodeType":"ImportDirective","src":"865:64:26","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/SignatureChecker.sol","file":"../util/SignatureChecker.sol","scope":3370,"sourceUnit":1875,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":3242,"name":"SignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"874:16:26","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":3369,"nodeType":"ContractDefinition","src":"1030:2549:26","nodes":[{"id":3251,"nodeType":"VariableDeclaration","src":"1202:108:26","nodes":[],"constant":true,"functionSelector":"30adf81f","mutability":"constant","name":"PERMIT_TYPEHASH","overrides":null,"scope":3369,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1202:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"hexValue":"307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339","id":3250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1244:66:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1","typeString":"int_const 4995...(69 digits omitted)...3241"},"value":"0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9"},"visibility":"public"},{"id":3255,"nodeType":"VariableDeclaration","src":"1317:49:26","nodes":[],"constant":false,"mutability":"mutable","name":"_permitNonces","overrides":null,"scope":3369,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":3254,"keyType":{"id":3252,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1317:27:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":3253,"name":"uint256","nodeType":"ElementaryTypeName","src":"1336:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"private"},{"id":3268,"nodeType":"FunctionDefinition","src":"1503:107:26","nodes":[],"body":{"id":3267,"nodeType":"Block","src":"1566:44:26","nodes":[],"statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3263,"name":"_permitNonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"1583:13:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3265,"indexExpression":{"argumentTypes":null,"id":3264,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3258,"src":"1597:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1583:20:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3262,"id":3266,"nodeType":"Return","src":"1576:27:26"}]},"documentation":{"id":3256,"nodeType":"StructuredDocumentation","src":"1373:125:26","text":" @notice Nonces for permit\n @param owner Token owner's address (Authorizer)\n @return Next nonce"},"functionSelector":"7ecebe00","implemented":true,"kind":"function","modifiers":[],"name":"nonces","overrides":null,"parameters":{"id":3259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3258,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":3268,"src":"1519:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3257,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1518:15:26"},"returnParameters":{"id":3262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3261,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":3268,"src":"1557:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3260,"name":"uint256","nodeType":"ElementaryTypeName","src":"1557:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1556:9:26"},"scope":3369,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":3300,"nodeType":"FunctionDefinition","src":"2103:280:26","nodes":[],"body":{"id":3299,"nodeType":"Block","src":"2299:84:26","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3287,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"2317:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3288,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"2324:7:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3289,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3275,"src":"2333:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3290,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3277,"src":"2340:8:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3293,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3281,"src":"2367:1:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3294,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3283,"src":"2370:1:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3295,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"2373:1:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"argumentTypes":null,"id":3291,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2350:3:26","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2350:16:26","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2350:25:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"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":3286,"name":"_permit","nodeType":"Identifier","overloadedDeclarations":[3300,3368],"referencedDeclaration":3368,"src":"2309:7:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory)"}},"id":3297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2309:67:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3298,"nodeType":"ExpressionStatement","src":"2309:67:26"}]},"documentation":{"id":3269,"nodeType":"StructuredDocumentation","src":"1616:482:26","text":" @notice Verify a signed approval permit and execute if valid\n @param owner Token owner's address (Authorizer)\n @param spender Spender's address\n @param value Amount of allowance\n @param deadline The time at which the signature expires (unix time), or max uint256 value to signal no\n expiration\n @param v v of the signature\n @param r r of the signature\n @param s s of the signature"},"implemented":true,"kind":"function","modifiers":[],"name":"_permit","overrides":null,"parameters":{"id":3284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3271,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","overrides":null,"scope":3300,"src":"2129:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3270,"name":"address","nodeType":"ElementaryTypeName","src":"2129:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3273,"mutability":"mutable","name":"spender","nodeType":"VariableDeclaration","overrides":null,"scope":3300,"src":"2152:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3272,"name":"address","nodeType":"ElementaryTypeName","src":"2152:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3275,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":3300,"src":"2177:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3274,"name":"uint256","nodeType":"ElementaryTypeName","src":"2177:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3277,"mutability":"mutable","name":"deadline","nodeType":"VariableDeclaration","overrides":null,"scope":3300,"src":"2200:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3276,"name":"uint256","nodeType":"ElementaryTypeName","src":"2200:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3279,"mutability":"mutable","name":"v","nodeType":"VariableDeclaration","overrides":null,"scope":3300,"src":"2226:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3278,"name":"uint8","nodeType":"ElementaryTypeName","src":"2226:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":3281,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":3300,"src":"2243:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2243:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":3283,"mutability":"mutable","name":"s","nodeType":"VariableDeclaration","overrides":null,"scope":3300,"src":"2262:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2262:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2119:158:26"},"returnParameters":{"id":3285,"nodeType":"ParameterList","parameters":[],"src":"2299:0:26"},"scope":3369,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":3368,"nodeType":"FunctionDefinition","src":"2918:659:26","nodes":[],"body":{"id":3367,"nodeType":"Block","src":"3091:486:26","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3315,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3309,"src":"3109:8:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3126:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3317,"name":"uint256","nodeType":"ElementaryTypeName","src":"3126:7:26","typeDescriptions":{"typeIdentifier":null,"typeString":null}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":3316,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3121:4:26","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3121:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":3320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3121:17:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3109:29:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3322,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3309,"src":"3142:8:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":3323,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-17,"src":"3154:3:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3142:15:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3109:48:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"46696174546f6b656e56323a207065726d69742069732065787069726564","id":3326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3159:32:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5d2c7951049aa09fae6052944ef810d9075462a6d3b174c125b67e0042aea703","typeString":"literal_string \"FiatTokenV2: permit is expired\""},"value":"FiatTokenV2: permit is expired"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d2c7951049aa09fae6052944ef810d9075462a6d3b174c125b67e0042aea703","typeString":"literal_string \"FiatTokenV2: permit is expired\""}],"id":3314,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3101:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3101:91:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3328,"nodeType":"ExpressionStatement","src":"3101:91:26"},{"assignments":[3330],"declarations":[{"constant":false,"id":3330,"mutability":"mutable","name":"typedDataHash","nodeType":"VariableDeclaration","overrides":null,"scope":3367,"src":"3203:21:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3203:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":3350,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":3333,"name":"_domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3813,"src":"3273:16:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":3334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3273:18:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3338,"name":"PERMIT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3251,"src":"3326:15:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3339,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3303,"src":"3343:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3340,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3305,"src":"3350:7:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3341,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3307,"src":"3359:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3366:22:26","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3342,"name":"_permitNonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"3366:13:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3344,"indexExpression":{"argumentTypes":null,"id":3343,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3303,"src":"3380:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3366:20:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3346,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3309,"src":"3390:8:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3336,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3315:3:26","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3315:10:26","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3315:84:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3335,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3305:9:26","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3305:95:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":3331,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1764,"src":"3227:16:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MessageHashUtils_$1764_$","typeString":"type(library MessageHashUtils)"}},"id":3332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":1763,"src":"3227:32:26