{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"rescueERC20","inputs":[{"name":"tokenContract","type":"address","internalType":"contract IERC20"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rescuer","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":"updateRescuer","inputs":[{"name":"newRescuer","type":"address","internalType":"address"}],"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},{"type":"event","name":"RescuerChanged","inputs":[{"name":"newRescuer","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061001a3361001f565b610041565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610983806100506000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80638da5cb5b116100505780638da5cb5b146100d2578063b2118a8d146100da578063f2fde38b1461011d57610067565b80632ab600451461006c57806338a63183146100a1575b600080fd5b61009f6004803603602081101561008257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610150565b005b6100a96102b1565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100a96102cd565b61009f600480360360608110156100f057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356102e9565b61009f6004803603602081101561013357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661037f565b60005473ffffffffffffffffffffffffffffffffffffffff1633146101d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806108ff602a913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60015473ffffffffffffffffffffffffffffffffffffffff163314610359576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806109296024913960400191505060405180910390fd5b61037a73ffffffffffffffffffffffffffffffffffffffff841683836104d2565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461040557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610471576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806108d96026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a16104cf8161055f565b50565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261037a9084906105a6565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610608826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661067e9092919063ffffffff16565b80519091501561037a5780806020019051602081101561062757600080fd5b505161037a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061094d602a913960400191505060405180910390fd5b606061068d8484600085610695565b949350505050565b60606106a08561089f565b61070b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061077557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610738565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146107d7576040519150601f19603f3d011682016040523d82523d6000602084013e6107dc565b606091505b509150915081156107f057915061068d9050565b8051156108005780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086457818101518382015260200161084c565b50505050905090810190601f1680156108915780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061068d57505015159291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373526573637561626c653a206e6577207265736375657220697320746865207a65726f2061646472657373526573637561626c653a2063616c6c6572206973206e6f742074686520726573637565725361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a164736f6c634300060c000a","sourceMap":"896:1270:18:-:0;;;;;;;;;;;;-1:-1:-1;2226:20:23;2235:10;2226:8;:20::i;:::-;896:1270:18;;2496:79:23;2551:6;:17;;-1:-1:-1;;;;;;2551:17:23;-1:-1:-1;;;;;2551:17:23;;;;;;;;;;2496:79::o;896:1270:18:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100675760003560e01c80638da5cb5b116100505780638da5cb5b146100d2578063b2118a8d146100da578063f2fde38b1461011d57610067565b80632ab600451461006c57806338a63183146100a1575b600080fd5b61009f6004803603602081101561008257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610150565b005b6100a96102b1565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100a96102cd565b61009f600480360360608110156100f057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356102e9565b61009f6004803603602081101561013357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661037f565b60005473ffffffffffffffffffffffffffffffffffffffff1633146101d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806108ff602a913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60015473ffffffffffffffffffffffffffffffffffffffff163314610359576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806109296024913960400191505060405180910390fd5b61037a73ffffffffffffffffffffffffffffffffffffffff841683836104d2565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461040557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610471576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806108d96026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a16104cf8161055f565b50565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261037a9084906105a6565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610608826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661067e9092919063ffffffff16565b80519091501561037a5780806020019051602081101561062757600080fd5b505161037a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061094d602a913960400191505060405180910390fd5b606061068d8484600085610695565b949350505050565b60606106a08561089f565b61070b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061077557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610738565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146107d7576040519150601f19603f3d011682016040523d82523d6000602084013e6107dc565b606091505b509150915081156107f057915061068d9050565b8051156108005780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086457818101518382015260200161084c565b50505050905090810190601f1680156108915780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061068d57505015159291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373526573637561626c653a206e6577207265736375657220697320746865207a65726f2061646472657373526573637561626c653a2063616c6c6572206973206e6f742074686520726573637565725361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a164736f6c634300060c000a","sourceMap":"896:1270:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1934:230;;;;;;;;;;;;;;;;-1:-1:-1;1934:230:18;;;;:::i;:::-;;1139:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2358:79:23;;;:::i;1664:147:18:-;;;;;;;;;;;;;;;;-1:-1:-1;1664:147:18;;;;;;;;;;;;;;;;;;:::i;2948:235:23:-;;;;;;;;;;;;;;;;-1:-1:-1;2948:235:23;;;;:::i;1934:230:18:-;2716:6:23;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2014:24:18::1;::::0;::::1;2006:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2095:8;:21:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;2131:26:::1;::::0;::::1;::::0;-1:-1:-1;;2131:26:18::1;1934:230:::0;:::o;1139:83::-;1207:8;;;;1139:83;:::o;2358:79:23:-;2398:7;2424:6;;;2358:79;:::o;1664:147:18:-;1370:8;;;;1356:10;:22;1348:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1766:38:::1;:26;::::0;::::1;1793:2:::0;1797:6;1766:26:::1;:38::i;:::-;1664:147:::0;;;:::o;2948:235:23:-;2716:6;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3030:22:::1;::::0;::::1;3022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3131:6;::::0;3110:38:::1;::::0;;3131:6:::1;::::0;;::::1;3110:38:::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;3158:18;3167:8;3158;:18::i;:::-;2948:235:::0;:::o;696:175:2:-;805:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;828:23;805:58;;;778:86;;798:5;;778:19;:86::i;2496:79:23:-;2551:6;:17;;;;;;;;;;;;;;;2496:79::o;2959:751:2:-;3378:23;3404:69;3432:4;3404:69;;;;;;;;;;;;;;;;;3412:5;3404:27;;;;:69;;;;;:::i;:::-;3487:17;;3378:95;;-1:-1:-1;3487:21:2;3483:221;;3627:10;3616:30;;;;;;;;;;;;;;;-1:-1:-1;3616:30:2;3608:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3770:194:3;3873:12;3904:53;3927:6;3935:4;3941:1;3944:12;3904:22;:53::i;:::-;3897:60;3770:194;-1:-1:-1;;;;3770:194:3:o;5117:958::-;5247:12;5279:18;5290:6;5279:10;:18::i;:::-;5271:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5402:12;5416:23;5443:6;:11;;5463:8;5474:4;5443:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5401:78;;;;5493:7;5489:580;;;5523:10;-1:-1:-1;5516:17:3;;-1:-1:-1;5516:17:3;5489:580;5634:17;;:21;5630:429;;5892:10;5886:17;5952:15;5939:10;5935:2;5931:19;5924:44;5841:145;6031:12;6024:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;718:610;778:4;1239:20;;1084:66;1278:23;;;;;;:42;;-1:-1:-1;;1305:15:3;;;1270:51;-1:-1:-1;;718:610:3:o","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","rescueERC20(address,address,uint256)":"b2118a8d","rescuer()":"38a63183","transferOwnership(address)":"f2fde38b","updateRescuer(address)":"2ab60045"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newRescuer\",\"type\":\"address\"}],\"name\":\"RescuerChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"rescueERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rescuer\",\"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\":[{\"internalType\":\"address\",\"name\":\"newRescuer\",\"type\":\"address\"}],\"name\":\"updateRescuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Tells the address of the owner\",\"returns\":{\"_0\":\"the address of the owner\"}},\"rescueERC20(address,address,uint256)\":{\"params\":{\"amount\":\"Amount to withdraw\",\"to\":\"Recipient address\",\"tokenContract\":\"ERC20 token contract address\"}},\"rescuer()\":{\"returns\":{\"_0\":\"Rescuer's 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.\"}},\"updateRescuer(address)\":{\"params\":{\"newRescuer\":\"The address of the new rescuer.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"rescueERC20(address,address,uint256)\":{\"notice\":\"Rescue ERC20 tokens locked up in this contract.\"},\"rescuer()\":{\"notice\":\"Returns current rescuer\"},\"updateRescuer(address)\":{\"notice\":\"Updates the rescuer address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1.1/Rescuable.sol\":\"Rescuable\"},\"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/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0xf3b30f8a49631420635a8c35daacfcaa338012755f18a76fdd118730256f9a27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d7de652204c2ee291a61aa984103dfc7ae4392d651fbbc44a0079caee7c69a3\",\"dweb:/ipfs/Qmcw1cQnq9eWDnrCBwU3TNyqLfTMUFg5YKpYUkELoMPuUE\"]},\"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/v1.1/Rescuable.sol\":{\"keccak256\":\"0x3a1724df6032053b3409d137fde519cf3e2de040876791f006ae52901367c65e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b094ccbb80b92665184634ce74d7f79ad057311e47b66dc3be07a7db0128f1a1\",\"dweb:/ipfs/QmV52aq78xsE4Yun8EJqBJNVLEYKNuFN89kYXokdJ3knrK\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol\":{\"keccak256\":\"0x3185c30c5c78bfab0e88f219e3ad48c30aaeca8ebd4d888e6efda41021a5a759\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03e00b50b100a50ef4dc0e07663291ddda6ba6023befc7b47c899bb700ad1549\",\"dweb:/ipfs/QmcHhU6ppJDQnY8UWpzSMy1XSLUJ4ZXqhuwnShxP4sQ2gB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":false},{"internalType":"address","name":"newOwner","type":"address","indexed":false}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"newRescuer","type":"address","indexed":true}],"type":"event","name":"RescuerChanged","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IERC20","name":"tokenContract","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rescueERC20"},{"inputs":[],"stateMutability":"view","type":"function","name":"rescuer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newRescuer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateRescuer"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Tells the address of the owner","returns":{"_0":"the address of the owner"}},"rescueERC20(address,address,uint256)":{"params":{"amount":"Amount to withdraw","to":"Recipient address","tokenContract":"ERC20 token contract address"}},"rescuer()":{"returns":{"_0":"Rescuer's 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."}},"updateRescuer(address)":{"params":{"newRescuer":"The address of the new rescuer."}}},"version":1},"userdoc":{"kind":"user","methods":{"rescueERC20(address,address,uint256)":{"notice":"Rescue ERC20 tokens locked up in this contract."},"rescuer()":{"notice":"Returns current rescuer"},"updateRescuer(address)":{"notice":"Updates the rescuer address."}},"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/v1.1/Rescuable.sol":"Rescuable"},"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/token/ERC20/SafeERC20.sol":{"keccak256":"0xf3b30f8a49631420635a8c35daacfcaa338012755f18a76fdd118730256f9a27","urls":["bzz-raw://0d7de652204c2ee291a61aa984103dfc7ae4392d651fbbc44a0079caee7c69a3","dweb:/ipfs/Qmcw1cQnq9eWDnrCBwU3TNyqLfTMUFg5YKpYUkELoMPuUE"],"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/v1.1/Rescuable.sol":{"keccak256":"0x3a1724df6032053b3409d137fde519cf3e2de040876791f006ae52901367c65e","urls":["bzz-raw://b094ccbb80b92665184634ce74d7f79ad057311e47b66dc3be07a7db0128f1a1","dweb:/ipfs/QmV52aq78xsE4Yun8EJqBJNVLEYKNuFN89kYXokdJ3knrK"],"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"}},"version":1},"storageLayout":{"storage":[{"astId":3029,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1.1/Rescuable.sol:Rescuable","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":1901,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1.1/Rescuable.sol:Rescuable","label":"_rescuer","offset":0,"slot":"1","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","methods":{"rescueERC20(address,address,uint256)":{"notice":"Rescue ERC20 tokens locked up in this contract."},"rescuer()":{"notice":"Returns current rescuer"},"updateRescuer(address)":{"notice":"Updates the rescuer address."}}},"devdoc":{"version":1,"kind":"dev","methods":{"owner()":{"details":"Tells the address of the owner","returns":{"_0":"the address of the owner"}},"rescueERC20(address,address,uint256)":{"params":{"amount":"Amount to withdraw","to":"Recipient address","tokenContract":"ERC20 token contract address"}},"rescuer()":{"returns":{"_0":"Rescuer's 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."}},"updateRescuer(address)":{"params":{"newRescuer":"The address of the new rescuer."}}}},"ast":{"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1.1/Rescuable.sol","id":1976,"exportedSymbols":{"Rescuable":[1975]},"nodeType":"SourceUnit","src":"659:1508:18","nodes":[{"id":1888,"nodeType":"PragmaDirective","src":"659:23:18","nodes":[],"literals":["solidity","0.6",".12"]},{"id":1890,"nodeType":"ImportDirective","src":"684:44:18","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol","file":"../v1/Ownable.sol","scope":1976,"sourceUnit":3109,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":1889,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"693:7:18","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":1892,"nodeType":"ImportDirective","src":"729:79:18","nodes":[],"absolutePath":"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts_v3.1.0/token/ERC20/IERC20.sol","scope":1976,"sourceUnit":274,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":1891,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"738:6:18","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":1894,"nodeType":"ImportDirective","src":"809:85:18","nodes":[],"absolutePath":"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/SafeERC20.sol","file":"@openzeppelin/contracts_v3.1.0/token/ERC20/SafeERC20.sol","scope":1976,"sourceUnit":487,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":1893,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"818:9:18","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":1975,"nodeType":"ContractDefinition","src":"896:1270:18","nodes":[{"id":1899,"nodeType":"UsingForDirective","src":"932:27:18","nodes":[],"libraryName":{"contractScope":null,"id":1897,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":486,"src":"938:9:18","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$486","typeString":"library SafeERC20"}},"typeName":{"contractScope":null,"id":1898,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":273,"src":"952:6:18","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$273","typeString":"contract IERC20"}}},{"id":1901,"nodeType":"VariableDeclaration","src":"965:24:18","nodes":[],"constant":false,"mutability":"mutable","name":"_rescuer","overrides":null,"scope":1975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1900,"name":"address","nodeType":"ElementaryTypeName","src":"965:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"private"},{"id":1905,"nodeType":"EventDefinition","src":"996:49:18","nodes":[],"anonymous":false,"documentation":null,"name":"RescuerChanged","parameters":{"id":1904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1903,"indexed":true,"mutability":"mutable","name":"newRescuer","nodeType":"VariableDeclaration","overrides":null,"scope":1905,"src":"1017:26:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1902,"name":"address","nodeType":"ElementaryTypeName","src":"1017:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1016:28:18"}},{"id":1914,"nodeType":"FunctionDefinition","src":"1139:83:18","nodes":[],"body":{"id":1913,"nodeType":"Block","src":"1190:32:18","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":1911,"name":"_rescuer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"1207:8:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1910,"id":1912,"nodeType":"Return","src":"1200:15:18"}]},"documentation":{"id":1906,"nodeType":"StructuredDocumentation","src":"1051:83:18","text":" @notice Returns current rescuer\n @return Rescuer's address"},"functionSelector":"38a63183","implemented":true,"kind":"function","modifiers":[],"name":"rescuer","overrides":null,"parameters":{"id":1907,"nodeType":"ParameterList","parameters":[],"src":"1155:2:18"},"returnParameters":{"id":1910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1909,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":1914,"src":"1181:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1908,"name":"address","nodeType":"ElementaryTypeName","src":"1181:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1180:9:18"},"scope":1975,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1927,"nodeType":"ModifierDefinition","src":"1315:122:18","nodes":[],"body":{"id":1926,"nodeType":"Block","src":"1338:99:18","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1918,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1356:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1356:10:18","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1920,"name":"_rescuer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"1370:8:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1356:22:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"526573637561626c653a2063616c6c6572206973206e6f74207468652072657363756572","id":1922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1380:38:18","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8bca11e2be39f1d0fced52e0acd4b8db520b6b8403c87b45e64d1349895f0aab","typeString":"literal_string \"Rescuable: caller is not the rescuer\""},"value":"Rescuable: caller is not the rescuer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8bca11e2be39f1d0fced52e0acd4b8db520b6b8403c87b45e64d1349895f0aab","typeString":"literal_string \"Rescuable: caller is not the rescuer\""}],"id":1917,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1348:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1348:71:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1924,"nodeType":"ExpressionStatement","src":"1348:71:18"},{"id":1925,"nodeType":"PlaceholderStatement","src":"1429:1:18"}]},"documentation":{"id":1915,"nodeType":"StructuredDocumentation","src":"1228:82:18","text":" @notice Revert if called by any account other than the rescuer."},"name":"onlyRescuer","overrides":null,"parameters":{"id":1916,"nodeType":"ParameterList","parameters":[],"src":"1335:2:18"},"virtual":false,"visibility":"internal"},{"id":1947,"nodeType":"FunctionDefinition","src":"1664:147:18","nodes":[],"body":{"id":1946,"nodeType":"Block","src":"1756:55:18","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1942,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1932,"src":"1793:2:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1943,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1934,"src":"1797:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1939,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"1766:13:18","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$273","typeString":"contract IERC20"}},"id":1941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":307,"src":"1766:26:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$273_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$273_$","typeString":"function (contract IERC20,address,uint256)"}},"id":1944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1766:38:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1945,"nodeType":"ExpressionStatement","src":"1766:38:18"}]},"documentation":{"id":1928,"nodeType":"StructuredDocumentation","src":"1443:216:18","text":" @notice Rescue ERC20 tokens locked up in this contract.\n @param tokenContract ERC20 token contract address\n @param to        Recipient address\n @param amount    Amount to withdraw"},"functionSelector":"b2118a8d","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1937,"modifierName":{"argumentTypes":null,"id":1936,"name":"onlyRescuer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1927,"src":"1744:11:18","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1744:11:18"}],"name":"rescueERC20","overrides":null,"parameters":{"id":1935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1930,"mutability":"mutable","name":"tokenContract","nodeType":"VariableDeclaration","overrides":null,"scope":1947,"src":"1685:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$273","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":1929,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":273,"src":"1685:6:18","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$273","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":1932,"mutability":"mutable","name":"to","nodeType":"VariableDeclaration","overrides":null,"scope":1947,"src":"1707:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1931,"name":"address","nodeType":"ElementaryTypeName","src":"1707:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1934,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","overrides":null,"scope":1947,"src":"1719:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1933,"name":"uint256","nodeType":"ElementaryTypeName","src":"1719:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1684:50:18"},"returnParameters":{"id":1938,"nodeType":"ParameterList","parameters":[],"src":"1756:0:18"},"scope":1975,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1974,"nodeType":"FunctionDefinition","src":"1934:230:18","nodes":[],"body":{"id":1973,"nodeType":"Block","src":"1996:168:18","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1956,"name":"newRescuer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1950,"src":"2014:10:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2036:1:18","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2028:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1957,"name":"address","nodeType":"ElementaryTypeName","src":"2028:7:18","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2028:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2014:24:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"526573637561626c653a206e6577207265736375657220697320746865207a65726f2061646472657373","id":1962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2040:44:18","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2b73485905d4051917013780743b3f01a5e5307ebb5dfb7e3a6d0a16dcb40a3f","typeString":"literal_string \"Rescuable: new rescuer is the zero address\""},"value":"Rescuable: new rescuer is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2b73485905d4051917013780743b3f01a5e5307ebb5dfb7e3a6d0a16dcb40a3f","typeString":"literal_string \"Rescuable: new rescuer is the zero address\""}],"id":1955,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2006:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2006:79:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1964,"nodeType":"ExpressionStatement","src":"2006:79:18"},{"expression":{"argumentTypes":null,"id":1967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1965,"name":"_rescuer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"2095:8:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1966,"name":"newRescuer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1950,"src":"2106:10:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2095:21:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1968,"nodeType":"ExpressionStatement","src":"2095:21:18"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1970,"name":"newRescuer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1950,"src":"2146:10:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1969,"name":"RescuerChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1905,"src":"2131:14:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2131:26:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1972,"nodeType":"EmitStatement","src":"2126:31:18"}]},"documentation":{"id":1948,"nodeType":"StructuredDocumentation","src":"1817:112:18","text":" @notice Updates the rescuer address.\n @param newRescuer The address of the new rescuer."},"functionSelector":"2ab60045","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1953,"modifierName":{"argumentTypes":null,"id":1952,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"1986:9:18","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1986:9:18"}],"name":"updateRescuer","overrides":null,"parameters":{"id":1951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1950,"mutability":"mutable","name":"newRescuer","nodeType":"VariableDeclaration","overrides":null,"scope":1974,"src":"1957:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1949,"name":"address","nodeType":"ElementaryTypeName","src":"1957:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1956:20:18"},"returnParameters":{"id":1954,"nodeType":"ParameterList","parameters":[],"src":"1996:0:18"},"scope":1975,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1895,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":3108,"src":"918:7:18","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$3108","typeString":"contract Ownable"}},"id":1896,"nodeType":"InheritanceSpecifier","src":"918:7:18"}],"contractDependencies":[3108],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1975,3108],"name":"Rescuable","scope":1976}],"license":"Apache-2.0"},"id":18}