UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 57 kB
{"abi":[{"type":"constructor","inputs":[{"name":"proxy","type":"address","internalType":"contract FiatTokenProxy"},{"name":"implementation","type":"address","internalType":"address"},{"name":"newProxyAdmin","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"abortUpgrade","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"helper","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"newProxyAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawFiatToken","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":false,"internalType":"address"},{"name":"newOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"abortUpgrade()":"d8f6a8f6","helper()":"63b0e66a","implementation()":"5c60da1b","newProxyAdmin()":"2d4efffe","owner()":"8da5cb5b","proxy()":"ec556889","transferOwnership(address)":"f2fde38b","withdrawFiatToken()":"3f247fe7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract FiatTokenProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newProxyAdmin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"abortUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"helper\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"newProxyAdmin\",\"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\":\"proxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawFiatToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"An abstract contract to encapsulate any common logic for any V2+ Upgrader contracts.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"implementation\":\"Address of the implementation contract\",\"newProxyAdmin\":\"Grantee of proxy admin role after upgrade\",\"proxy\":\"FiatTokenProxy contract\"}},\"helper()\":{\"returns\":{\"_0\":\"Contract address\"}},\"implementation()\":{\"returns\":{\"_0\":\"Contract address\"}},\"newProxyAdmin()\":{\"returns\":{\"_0\":\"Address\"}},\"owner()\":{\"details\":\"Tells the address of the owner\",\"returns\":{\"_0\":\"the address of the owner\"}},\"proxy()\":{\"returns\":{\"_0\":\"Contract address\"}},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to transfer control of the contract to a newOwner.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"abortUpgrade()\":{\"notice\":\"Transfer proxy admin role to newProxyAdmin, and self-destruct\"},\"constructor\":\"Constructor\",\"helper()\":{\"notice\":\"The address of the V2UpgraderHelper contract\"},\"implementation()\":{\"notice\":\"The address of the FiatTokenV2 implementation contract\"},\"newProxyAdmin()\":{\"notice\":\"The address to which the proxy admin role will be transferred after the upgrade is completed\"},\"proxy()\":{\"notice\":\"The address of the FiatTokenProxy contract\"},\"withdrawFiatToken()\":{\"notice\":\"Withdraw any FiatToken in the contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/upgrader/AbstractV2Upgrader.sol\":\"AbstractV2Upgrader\"},\"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/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"lib/openzeppelin-contracts_v3.1.0/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/upgradeability/AdminUpgradeabilityProxy.sol\":{\"keccak256\":\"0x8f6ca54052e19fa791e2e12aedbb2f8516ad8936b40ee92556b7566320eb1a5d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5784d65f27b948fce9a1f4d7a2cd6b6bc2666fbbd400780fc3c120302daad03f\",\"dweb:/ipfs/QmTChMq8N9u8xNXvLdiCHbJzPxjxzicZe6EP7QFBYiGu8u\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/upgradeability/Proxy.sol\":{\"keccak256\":\"0x37af1ffcf715a356ba5115034090f2f572cf0a288b9c5819b84d8d8c53c370a0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://11fcecbf96b447e63967857ec24128f3b8d9dd9f6edaaeb12c97df1136fce0b1\",\"dweb:/ipfs/QmUZZ7Cy5Z89V1PrJVc6Hj34sMK15wGn58ny5heZ3qFNzS\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/upgradeability/UpgradeabilityProxy.sol\":{\"keccak256\":\"0xbd4e979c080d253a9ec840d9f389b746ae9fe6bd80aa594b261db32ad125226f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://abc76450b7d9d0c4fa8766d52443d9389cf56626d67b8e414a20b8ccb3b0935e\",\"dweb:/ipfs/QmRvYkjQ9pcaBsGvvZqKK1KJ5PdrbCJ51gsw7qFWdi8Cwt\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenProxy.sol\":{\"keccak256\":\"0x5f4ff13ab21cf4505ddef1fb8602e1083b1e78606256e33aa1e5c10f98f214a4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f6185b0c33375249ff108b56848d26af8559667d3416b19906ae955c74604fc8\",\"dweb:/ipfs/QmXVZVUdRi6y6wQxxDHNEhKwGiGXwqprE25SnGdnzdVbiJ\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol\":{\"keccak256\":\"0x3185c30c5c78bfab0e88f219e3ad48c30aaeca8ebd4d888e6efda41021a5a759\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03e00b50b100a50ef4dc0e07663291ddda6ba6023befc7b47c899bb700ad1549\",\"dweb:/ipfs/QmcHhU6ppJDQnY8UWpzSMy1XSLUJ4ZXqhuwnShxP4sQ2gB\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/upgrader/AbstractV2Upgrader.sol\":{\"keccak256\":\"0xe43e83f437e66511c54ebf79f0cf8ff76ccbc22f282381e8bd7b5a98fe19d45b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c3afe691080967605876cf33cffc652c6cad114164114d66316f1c32d912b5a3\",\"dweb:/ipfs/QmeuKPE8hoz8nkUUDfPhiG1nEAEaSNnecSErLpsdSMEvsK\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/upgrader/helpers/AbstractUpgraderHelper.sol\":{\"keccak256\":\"0x81855f549929ae5f1509e046f1dddc85289701b9f1422b32e1e14c3618e7e1b3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ed92d175e56356c6c146f7fb9d72b688423433c88f67b3c4bcf91f3bc29a6566\",\"dweb:/ipfs/QmcbHdcuVCpQyXMpuwoxrPC6zCw313Y7s3nDwS7q4wxCJP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract FiatTokenProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"address","name":"newProxyAdmin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":false},{"internalType":"address","name":"newOwner","type":"address","indexed":false}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"abortUpgrade"},{"inputs":[],"stateMutability":"view","type":"function","name":"helper","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"newProxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdrawFiatToken"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"implementation":"Address of the implementation contract","newProxyAdmin":"Grantee of proxy admin role after upgrade","proxy":"FiatTokenProxy contract"}},"helper()":{"returns":{"_0":"Contract address"}},"implementation()":{"returns":{"_0":"Contract address"}},"newProxyAdmin()":{"returns":{"_0":"Address"}},"owner()":{"details":"Tells the address of the owner","returns":{"_0":"the address of the owner"}},"proxy()":{"returns":{"_0":"Contract address"}},"transferOwnership(address)":{"details":"Allows the current owner to transfer control of the contract to a newOwner.","params":{"newOwner":"The address to transfer ownership to."}}},"version":1},"userdoc":{"kind":"user","methods":{"abortUpgrade()":{"notice":"Transfer proxy admin role to newProxyAdmin, and self-destruct"},"constructor":"Constructor","helper()":{"notice":"The address of the V2UpgraderHelper contract"},"implementation()":{"notice":"The address of the FiatTokenV2 implementation contract"},"newProxyAdmin()":{"notice":"The address to which the proxy admin role will be transferred after the upgrade is completed"},"proxy()":{"notice":"The address of the FiatTokenProxy contract"},"withdrawFiatToken()":{"notice":"Withdraw any FiatToken in the contract"}},"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/upgrader/AbstractV2Upgrader.sol":"AbstractV2Upgrader"},"evmVersion":"istanbul","libraries":{"SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts_v3.1.0/contracts/math/SafeMath.sol":{"keccak256":"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806","urls":["bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5","dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV"],"license":"MIT"},"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385","urls":["bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017","dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5"],"license":"MIT"},"lib/openzeppelin-contracts_v3.1.0/contracts/utils/Address.sol":{"keccak256":"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498","urls":["bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff","dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS"],"license":"MIT"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/upgradeability/AdminUpgradeabilityProxy.sol":{"keccak256":"0x8f6ca54052e19fa791e2e12aedbb2f8516ad8936b40ee92556b7566320eb1a5d","urls":["bzz-raw://5784d65f27b948fce9a1f4d7a2cd6b6bc2666fbbd400780fc3c120302daad03f","dweb:/ipfs/QmTChMq8N9u8xNXvLdiCHbJzPxjxzicZe6EP7QFBYiGu8u"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/upgradeability/Proxy.sol":{"keccak256":"0x37af1ffcf715a356ba5115034090f2f572cf0a288b9c5819b84d8d8c53c370a0","urls":["bzz-raw://11fcecbf96b447e63967857ec24128f3b8d9dd9f6edaaeb12c97df1136fce0b1","dweb:/ipfs/QmUZZ7Cy5Z89V1PrJVc6Hj34sMK15wGn58ny5heZ3qFNzS"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/upgradeability/UpgradeabilityProxy.sol":{"keccak256":"0xbd4e979c080d253a9ec840d9f389b746ae9fe6bd80aa594b261db32ad125226f","urls":["bzz-raw://abc76450b7d9d0c4fa8766d52443d9389cf56626d67b8e414a20b8ccb3b0935e","dweb:/ipfs/QmRvYkjQ9pcaBsGvvZqKK1KJ5PdrbCJ51gsw7qFWdi8Cwt"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenProxy.sol":{"keccak256":"0x5f4ff13ab21cf4505ddef1fb8602e1083b1e78606256e33aa1e5c10f98f214a4","urls":["bzz-raw://f6185b0c33375249ff108b56848d26af8559667d3416b19906ae955c74604fc8","dweb:/ipfs/QmXVZVUdRi6y6wQxxDHNEhKwGiGXwqprE25SnGdnzdVbiJ"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol":{"keccak256":"0x3185c30c5c78bfab0e88f219e3ad48c30aaeca8ebd4d888e6efda41021a5a759","urls":["bzz-raw://03e00b50b100a50ef4dc0e07663291ddda6ba6023befc7b47c899bb700ad1549","dweb:/ipfs/QmcHhU6ppJDQnY8UWpzSMy1XSLUJ4ZXqhuwnShxP4sQ2gB"],"license":"MIT"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/upgrader/AbstractV2Upgrader.sol":{"keccak256":"0xe43e83f437e66511c54ebf79f0cf8ff76ccbc22f282381e8bd7b5a98fe19d45b","urls":["bzz-raw://c3afe691080967605876cf33cffc652c6cad114164114d66316f1c32d912b5a3","dweb:/ipfs/QmeuKPE8hoz8nkUUDfPhiG1nEAEaSNnecSErLpsdSMEvsK"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/upgrader/helpers/AbstractUpgraderHelper.sol":{"keccak256":"0x81855f549929ae5f1509e046f1dddc85289701b9f1422b32e1e14c3618e7e1b3","urls":["bzz-raw://ed92d175e56356c6c146f7fb9d72b688423433c88f67b3c4bcf91f3bc29a6566","dweb:/ipfs/QmcbHdcuVCpQyXMpuwoxrPC6zCw313Y7s3nDwS7q4wxCJP"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":3029,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/upgrader/AbstractV2Upgrader.sol:AbstractV2Upgrader","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":4935,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/upgrader/AbstractV2Upgrader.sol:AbstractV2Upgrader","label":"_proxy","offset":0,"slot":"1","type":"t_contract(FiatTokenProxy)2165"},{"astId":4937,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/upgrader/AbstractV2Upgrader.sol:AbstractV2Upgrader","label":"_implementation","offset":0,"slot":"2","type":"t_address"},{"astId":4939,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/upgrader/AbstractV2Upgrader.sol:AbstractV2Upgrader","label":"_newProxyAdmin","offset":0,"slot":"3","type":"t_address"},{"astId":4941,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/upgrader/AbstractV2Upgrader.sol:AbstractV2Upgrader","label":"_helper","offset":0,"slot":"4","type":"t_contract(AbstractUpgraderHelper)6413"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_contract(AbstractUpgraderHelper)6413":{"encoding":"inplace","label":"contract AbstractUpgraderHelper","numberOfBytes":"20"},"t_contract(FiatTokenProxy)2165":{"encoding":"inplace","label":"contract FiatTokenProxy","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","methods":{"abortUpgrade()":{"notice":"Transfer proxy admin role to newProxyAdmin, and self-destruct"},"constructor":"Constructor","helper()":{"notice":"The address of the V2UpgraderHelper contract"},"implementation()":{"notice":"The address of the FiatTokenV2 implementation contract"},"newProxyAdmin()":{"notice":"The address to which the proxy admin role will be transferred after the upgrade is completed"},"proxy()":{"notice":"The address of the FiatTokenProxy contract"},"withdrawFiatToken()":{"notice":"Withdraw any FiatToken in the contract"}}},"devdoc":{"version":1,"kind":"dev","details":"An abstract contract to encapsulate any common logic for any V2+ Upgrader contracts.","methods":{"constructor":{"params":{"implementation":"Address of the implementation contract","newProxyAdmin":"Grantee of proxy admin role after upgrade","proxy":"FiatTokenProxy contract"}},"helper()":{"returns":{"_0":"Contract address"}},"implementation()":{"returns":{"_0":"Contract address"}},"newProxyAdmin()":{"returns":{"_0":"Address"}},"owner()":{"details":"Tells the address of the owner","returns":{"_0":"the address of the owner"}},"proxy()":{"returns":{"_0":"Contract address"}},"transferOwnership(address)":{"details":"Allows the current owner to transfer control of the contract to a newOwner.","params":{"newOwner":"The address to transfer ownership to."}}}},"ast":{"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/upgrader/AbstractV2Upgrader.sol","id":5082,"exportedSymbols":{"AbstractV2Upgrader":[5081]},"nodeType":"SourceUnit","src":"659:2894:33","nodes":[{"id":4917,"nodeType":"PragmaDirective","src":"659:23:33","nodes":[],"literals":["solidity","0.6",".12"]},{"id":4919,"nodeType":"ImportDirective","src":"684:76:33","nodes":[],"absolutePath":"lib/openzeppelin-contracts_v3.1.0/contracts/math/SafeMath.sol","file":"@openzeppelin/contracts_v3.1.0/math/SafeMath.sol","scope":5082,"sourceUnit":196,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":4918,"name":"SafeMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"693:8:33","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":4921,"nodeType":"ImportDirective","src":"761:79:33","nodes":[],"absolutePath":"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts_v3.1.0/token/ERC20/IERC20.sol","scope":5082,"sourceUnit":274,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":4920,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"770:6:33","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":4923,"nodeType":"ImportDirective","src":"841:47:33","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol","file":"../../v1/Ownable.sol","scope":5082,"sourceUnit":3109,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":4922,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"850:7:33","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":4925,"nodeType":"ImportDirective","src":"889:61:33","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenProxy.sol","file":"../../v1/FiatTokenProxy.sol","scope":5082,"sourceUnit":2166,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":4924,"name":"FiatTokenProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"898:14:33","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":4927,"nodeType":"ImportDirective","src":"951:78:33","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/upgrader/helpers/AbstractUpgraderHelper.sol","file":"./helpers/AbstractUpgraderHelper.sol","scope":5082,"sourceUnit":6414,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":4926,"name":"AbstractUpgraderHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"960:22:33","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":5081,"nodeType":"ContractDefinition","src":"1135:2417:33","nodes":[{"id":4933,"nodeType":"UsingForDirective","src":"1189:27:33","nodes":[],"libraryName":{"contractScope":null,"id":4931,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":195,"src":"1195:8:33","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$195","typeString":"library SafeMath"}},"typeName":{"id":4932,"name":"uint256","nodeType":"ElementaryTypeName","src":"1208:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":4935,"nodeType":"VariableDeclaration","src":"1222:30:33","nodes":[],"constant":false,"mutability":"mutable","name":"_proxy","overrides":null,"scope":5081,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenProxy_$2165","typeString":"contract FiatTokenProxy"},"typeName":{"contractScope":null,"id":4934,"name":"FiatTokenProxy","nodeType":"UserDefinedTypeName","referencedDeclaration":2165,"src":"1222:14:33","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenProxy_$2165","typeString":"contract FiatTokenProxy"}},"value":null,"visibility":"internal"},{"id":4937,"nodeType":"VariableDeclaration","src":"1258:32:33","nodes":[],"constant":false,"mutability":"mutable","name":"_implementation","overrides":null,"scope":5081,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4936,"name":"address","nodeType":"ElementaryTypeName","src":"1258:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"id":4939,"nodeType":"VariableDeclaration","src":"1296:31:33","nodes":[],"constant":false,"mutability":"mutable","name":"_newProxyAdmin","overrides":null,"scope":5081,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4938,"name":"address","nodeType":"ElementaryTypeName","src":"1296:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"id":4941,"nodeType":"VariableDeclaration","src":"1333:39:33","nodes":[],"constant":false,"mutability":"mutable","name":"_helper","overrides":null,"scope":5081,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AbstractUpgraderHelper_$6413","typeString":"contract AbstractUpgraderHelper"},"typeName":{"contractScope":null,"id":4940,"name":"AbstractUpgraderHelper","nodeType":"UserDefinedTypeName","referencedDeclaration":6413,"src":"1333:22:33","typeDescriptions":{"typeIdentifier":"t_contract$_AbstractUpgraderHelper_$6413","typeString":"contract AbstractUpgraderHelper"}},"value":null,"visibility":"internal"},{"id":4966,"nodeType":"FunctionDefinition","src":"1623:211:33","nodes":[],"body":{"id":4965,"nodeType":"Block","src":"1721:113:33","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":4955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4953,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4935,"src":"1731:6:33","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenProxy_$2165","typeString":"contract FiatTokenProxy"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4954,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4944,"src":"1740:5:33","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenProxy_$2165","typeString":"contract FiatTokenProxy"}},"src":"1731:14:33","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenProxy_$2165","typeString":"contract FiatTokenProxy"}},"id":4956,"nodeType":"ExpressionStatement","src":"1731:14:33"},{"expression":{"argumentTypes":null,"id":4959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4957,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4937,"src":"1755:15:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4958,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4946,"src":"1773:14:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1755:32:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4960,"nodeType":"ExpressionStatement","src":"1755:32:33"},{"expression":{"argumentTypes":null,"id":4963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4961,"name":"_newProxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4939,"src":"1797:14:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4962,"name":"newProxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4948,"src":"1814:13:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1797:30:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4964,"nodeType":"ExpressionStatement","src":"1797:30:33"}]},"documentation":{"id":4942,"nodeType":"StructuredDocumentation","src":"1379:239:33","text":" @notice Constructor\n @param proxy FiatTokenProxy contract\n @param implementation Address of the implementation contract\n @param newProxyAdmin Grantee of proxy admin role after upgrade"},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":4951,"modifierName":{"argumentTypes":null,"id":4950,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"1711:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Ownable_$3108_$","typeString":"type(contract Ownable)"}},"nodeType":"ModifierInvocation","src":"1711:9:33"}],"name":"","overrides":null,"parameters":{"id":4949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4944,"mutability":"mutable","name":"proxy","nodeType":"VariableDeclaration","overrides":null,"scope":4966,"src":"1635:20:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenProxy_$2165","typeString":"contract FiatTokenProxy"},"typeName":{"contractScope":null,"id":4943,"name":"FiatTokenProxy","nodeType":"UserDefinedTypeName","referencedDeclaration":2165,"src":"1635:14:33","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenProxy_$2165","typeString":"contract FiatTokenProxy"}},"value":null,"visibility":"internal"},{"constant":false,"id":4946,"mutability":"mutable","name":"implementation","nodeType":"VariableDeclaration","overrides":null,"scope":4966,"src":"1657:22:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4945,"name":"address","nodeType":"ElementaryTypeName","src":"1657:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4948,"mutability":"mutable","name":"newProxyAdmin","nodeType":"VariableDeclaration","overrides":null,"scope":4966,"src":"1681:21:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4947,"name":"address","nodeType":"ElementaryTypeName","src":"1681:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1634:69:33"},"returnParameters":{"id":4952,"nodeType":"ParameterList","parameters":[],"src":"1721:0:33"},"scope":5081,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":4978,"nodeType":"FunctionDefinition","src":"1946:88:33","nodes":[],"body":{"id":4977,"nodeType":"Block","src":"1995:39:33","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4974,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4935,"src":"2020:6:33","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenProxy_$2165","typeString":"contract FiatTokenProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FiatTokenProxy_$2165","typeString":"contract FiatTokenProxy"}],"id":4973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2012:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4972,"name":"address","nodeType":"ElementaryTypeName","src":"2012:7:33","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2012:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":4971,"id":4976,"nodeType":"Return","src":"2005:22:33"}]},"documentation":{"id":4967,"nodeType":"StructuredDocumentation","src":"1840:101:33","text":" @notice The address of the FiatTokenProxy contract\n @return Contract address"},"functionSelector":"ec556889","implemented":true,"kind":"function","modifiers":[],"name":"proxy","overrides":null,"parameters":{"id":4968,"nodeType":"ParameterList","parameters":[],"src":"1960:2:33"},"returnParameters":{"id":4971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4970,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":4978,"src":"1986:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4969,"name":"address","nodeType":"ElementaryTypeName","src":"1986:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1985:9:33"},"scope":5081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":4987,"nodeType":"FunctionDefinition","src":"2158:97:33","nodes":[],"body":{"id":4986,"nodeType":"Block","src":"2216:39:33","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":4984,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4937,"src":"2233:15:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4983,"id":4985,"nodeType":"Return","src":"2226:22:33"}]},"documentation":{"id":4979,"nodeType":"StructuredDocumentation","src":"2040:113:33","text":" @notice The address of the FiatTokenV2 implementation contract\n @return Contract address"},"functionSelector":"5c60da1b","implemented":true,"kind":"function","modifiers":[],"name":"implementation","overrides":null,"parameters":{"id":4980,"nodeType":"ParameterList","parameters":[],"src":"2181:2:33"},"returnParameters":{"id":4983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4982,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":4987,"src":"2207:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4981,"name":"address","nodeType":"ElementaryTypeName","src":"2207:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2206:9:33"},"scope":5081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":4999,"nodeType":"FunctionDefinition","src":"2369:90:33","nodes":[],"body":{"id":4998,"nodeType":"Block","src":"2419:40:33","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4995,"name":"_helper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4941,"src":"2444:7:33","typeDescriptions":{"typeIdentifier":"t_contract$_AbstractUpgraderHelper_$6413","typeString":"contract AbstractUpgraderHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AbstractUpgraderHelper_$6413","typeString":"contract AbstractUpgraderHelper"}],"id":4994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2436:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4993,"name":"address","nodeType":"ElementaryTypeName","src":"2436:7:33","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2436:16:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4992,"id":4997,"nodeType":"Return","src":"2429:23:33"}]},"documentation":{"id":4988,"nodeType":"StructuredDocumentation","src":"2261:103:33","text":" @notice The address of the V2UpgraderHelper contract\n @return Contract address"},"functionSelector":"63b0e66a","implemented":true,"kind":"function","modifiers":[],"name":"helper","overrides":null,"parameters":{"id":4989,"nodeType":"ParameterList","parameters":[],"src":"2384:2:33"},"returnParameters":{"id":4992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4991,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":4999,"src":"2410:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4990,"name":"address","nodeType":"ElementaryTypeName","src":"2410:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2409:9:33"},"scope":5081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":5008,"nodeType":"FunctionDefinition","src":"2619:95:33","nodes":[],"body":{"id":5007,"nodeType":"Block","src":"2676:38:33","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":5005,"name":"_newProxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4939,"src":"2693:14:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5004,"id":5006,"nodeType":"Return","src":"2686:21:33"}]},"documentation":{"id":5000,"nodeType":"StructuredDocumentation","src":"2465:149:33","text":" @notice The address to which the proxy admin role will be transferred\n after the upgrade is completed\n @return Address"},"functionSelector":"2d4efffe","implemented":true,"kind":"function","modifiers":[],"name":"newProxyAdmin","overrides":null,"parameters":{"id":5001,"nodeType":"ParameterList","parameters":[],"src":"2641:2:33"},"returnParameters":{"id":5004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5003,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":5008,"src":"2667:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5002,"name":"address","nodeType":"ElementaryTypeName","src":"2667:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2666:9:33"},"scope":5081,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":5049,"nodeType":"FunctionDefinition","src":"2790:298:33","nodes":[],"body":{"id":5048,"nodeType":"Block","src":"2836:252:33","nodes":[],"statements":[{"assignments":[5015],"declarations":[{"constant":false,"id":5015,"mutability":"mutable","name":"fiatToken","nodeType":"VariableDeclaration","overrides":null,"scope":5048,"src":"2846:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$273","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":5014,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":273,"src":"2846:6:33","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$273","typeString":"contract IERC20"}},"value":null,"visibility":"internal"}],"id":5022,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5019,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4935,"src":"2880:6:33","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenProxy_$2165","typeString":"contract FiatTokenProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FiatTokenProxy_$2165","typeString":"contract FiatTokenProxy"}],"id":5018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2872:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5017,"name":"address","nodeType":"ElementaryTypeName","src":"2872:7:33","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":5020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2872:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":5016,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":273,"src":"2865:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$273_$","typeString":"type(contract IERC20)"}},"id":5021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2865:23:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$273","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"2846:42:33"},{"assignments":[5024],"declarations":[{"constant":false,"id":5024,"mutability":"mutable","name":"balance","nodeType":"VariableDeclaration","overrides":null,"scope":5048,"src":"2898:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5023,"name":"uint256","nodeType":"ElementaryTypeName","src":"2898:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":5032,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5029,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2944:4:33","typeDescriptions":{"typeIdentifier":"t_contract$_AbstractV2Upgrader_$5081","typeString":"contract AbstractV2Upgrader"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AbstractV2Upgrader_$5081","typeString":"contract AbstractV2Upgrader"}],"id":5028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2936:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5027,"name":"address","nodeType":"ElementaryTypeName","src":"2936:7:33","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":5030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2936:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":5025,"name":"fiatToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"2916:9:33","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$273","typeString":"contract IERC20"}},"id":5026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":212,"src":"2916:19:33","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2916:34:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2898:52:33"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5033,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5024,"src":"2964:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2974:1:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2964:11:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5047,"nodeType":"IfStatement","src":"2960:122:33","trueBody":{"id":5046,"nodeType":"Block","src":"2977:105:33","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5039,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3018:3:33","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3018:10:33","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5041,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5024,"src":"3030:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":5037,"name":"fiatToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"2999:9:33","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$273","typeString":"contract IERC20"}},"id":5038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":222,"src":"2999:18:33","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2999:39:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4661696c656420746f2077697468647261772046696174546f6b656e","id":5043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3040:30:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b7fceaffd4920df93c0a45571f3af8ecc9d611e2b52b5fc3cf36864ff77e755a","typeString":"literal_string \"Failed to withdraw FiatToken\""},"value":"Failed to withdraw FiatToken"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b7fceaffd4920df93c0a45571f3af8ecc9d611e2b52b5fc3cf36864ff77e755a","typeString":"literal_string \"Failed to withdraw FiatToken\""}],"id":5036,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2991:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2991:80:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5045,"nodeType":"ExpressionStatement","src":"2991:80:33"}]}}]},"documentation":{"id":5009,"nodeType":"StructuredDocumentation","src":"2720:65:33","text":" @notice Withdraw any FiatToken in the contract"},"functionSelector":"3f247fe7","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":5012,"modifierName":{"argumentTypes":null,"id":5011,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"2826:9:33","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typ