@tokamak-network/thanos-contracts
Version:
1 lines • 57.9 kB
JSON
{"abi":[{"type":"function","name":"configureController","inputs":[{"name":"_controller","type":"address","internalType":"address"},{"name":"_worker","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getWorker","inputs":[{"name":"_controller","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeController","inputs":[{"name":"_controller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ControllerConfigured","inputs":[{"name":"_controller","type":"address","indexed":true,"internalType":"address"},{"name":"_worker","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ControllerRemoved","inputs":[{"name":"_controller","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"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":"0x608060405234801561001057600080fd5b5061001a3361001f565b610041565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b61078a806100506000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063c4faf7df11610050578063c4faf7df146100d0578063f2fde38b1461010d578063f6a74ed71461014057610067565b80638da5cb5b1461006c578063c011b1c31461009d575b600080fd5b610074610173565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610074600480360360208110156100b357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661018f565b61010b600480360360408110156100e657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166101ba565b005b61010b6004803603602081101561012357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610394565b61010b6004803603602081101561015657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104e7565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600160205260409020541690565b60005473ffffffffffffffffffffffffffffffffffffffff16331461024057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82166102ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806107126025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061075d6021913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82811660008181526001602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169486169485179055517fa56687ff5096e83f6e2c673cda0b677f56bbfcdf5fe0555d5830c407ede193cb9190a35050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461041a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610486576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806107376026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a16104e4816106ca565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461056d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166105d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806107126025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81811660009081526001602052604090205416610656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061075d6021913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055517f33d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e811139190a250565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905556fe436f6e74726f6c6c6572206d7573742062652061206e6f6e2d7a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373576f726b6572206d7573742062652061206e6f6e2d7a65726f2061646472657373a164736f6c634300060c000a","sourceMap":"961:2027:6:-:0;;;;;;;;;;;;-1:-1:-1;2226:20:23;2235:10;2226:8;:20::i;:::-;961:2027:6;;2496:79:23;2551:6;:17;;-1:-1:-1;;;;;;2551:17:23;-1:-1:-1;;;;;2551:17:23;;;;;;;;;;2496:79::o;961:2027:6:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100675760003560e01c8063c4faf7df11610050578063c4faf7df146100d0578063f2fde38b1461010d578063f6a74ed71461014057610067565b80638da5cb5b1461006c578063c011b1c31461009d575b600080fd5b610074610173565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610074600480360360208110156100b357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661018f565b61010b600480360360408110156100e657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166101ba565b005b61010b6004803603602081101561012357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610394565b61010b6004803603602081101561015657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104e7565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600160205260409020541690565b60005473ffffffffffffffffffffffffffffffffffffffff16331461024057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82166102ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806107126025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061075d6021913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82811660008181526001602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169486169485179055517fa56687ff5096e83f6e2c673cda0b677f56bbfcdf5fe0555d5830c407ede193cb9190a35050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461041a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610486576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806107376026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a16104e4816106ca565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461056d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166105d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806107126025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81811660009081526001602052604090205416610656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061075d6021913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055517f33d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e811139190a250565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905556fe436f6e74726f6c6c6572206d7573742062652061206e6f6e2d7a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373576f726b6572206d7573742062652061206e6f6e2d7a65726f2061646472657373a164736f6c634300060c000a","sourceMap":"961:2027:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2358:79:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1652:120:6;;;;;;;;;;;;;;;;-1:-1:-1;1652:120:6;;;;:::i;2141:354::-;;;;;;;;;;;;;;;;-1:-1:-1;2141:354:6;;;;;;;;;;;:::i;:::-;;2948:235:23;;;;;;;;;;;;;;;;-1:-1:-1;2948:235:23;;;;:::i;2644:342:6:-;;;;;;;;;;;;;;;;-1:-1:-1;2644:342:6;;;;:::i;2358:79:23:-;2398:7;2424:6;;;2358:79;:::o;1652:120:6:-;1741:24;;;;1715:7;1741:24;;;:11;:24;;;;;;;;1652:120::o;2141:354::-;2716:6:23;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2243:25:6::1;::::0;::::1;2235:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2328:21;::::0;::::1;2320:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:24;::::0;;::::1;;::::0;;;:11:::1;:24;::::0;;;;;:34;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;2446:42;::::1;::::0;2397:24;2446:42:::1;2141:354:::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;2644:342:6:-;2716:6:23;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2726:25:6::1;::::0;::::1;2718:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2811:38;:24:::0;;::::1;2847:1;2811:24:::0;;;:11:::1;:24;::::0;;;;;::::1;2803:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2897:24;::::0;::::1;2932:1;2897:24:::0;;;:11:::1;:24;::::0;;;;;:37;;;::::1;::::0;;2949:30;::::1;::::0;2932:1;2949:30:::1;2644:342:::0;:::o;2496:79:23:-;2551:6;:17;;;;;;;;;;;;;;;2496:79::o","linkReferences":{}},"methodIdentifiers":{"configureController(address,address)":"c4faf7df","getWorker(address)":"c011b1c3","owner()":"8da5cb5b","removeController(address)":"f6a74ed7","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_worker\",\"type\":\"address\"}],\"name\":\"ControllerConfigured\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"ControllerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_worker\",\"type\":\"address\"}],\"name\":\"configureController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"getWorker\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"removeController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"configureController(address,address)\":{\"params\":{\"_controller\":\"The controller to be configured with a worker.\",\"_worker\":\"The worker to be set for the newly configured controller. _worker must not be a non-zero address. To disable a worker, use removeController instead.\"}},\"owner()\":{\"details\":\"Tells the address of the owner\",\"returns\":{\"_0\":\"the address of the owner\"}},\"removeController(address)\":{\"params\":{\"_controller\":\"The controller to disable.\"}},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to transfer control of the contract to a newOwner.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}},\"stateVariables\":{\"controllers\":{\"details\":\"A controller manages a single worker address. controllers[controller] = worker\"}},\"title\":\"Controller\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"configureController(address,address)\":{\"notice\":\"Configure a controller with the given worker.\"},\"getWorker(address)\":{\"notice\":\"Gets the worker at address _controller.\"},\"removeController(address)\":{\"notice\":\"disables a controller by setting its worker to address(0).\"}},\"notice\":\"Generic implementation of the owner-controller-worker model. One owner manages many controllers. Each controller manages one worker. Workers may be reused across different controllers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/minting/Controller.sol\":\"Controller\"},\"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\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/minting/Controller.sol\":{\"keccak256\":\"0x29ea550f9e40a5d71d30257e7337827a69a4e1131193b2b865d87f7e0ab7feea\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5390939f348e9651d53d563e523b43d8cd2a09adfc0677602192f20e6452420e\",\"dweb:/ipfs/QmNmArknRQcdMkH8d9f1MVoKPFyHEe3azL8U92TkSp6yM5\"]},\"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":"_controller","type":"address","indexed":true},{"internalType":"address","name":"_worker","type":"address","indexed":true}],"type":"event","name":"ControllerConfigured","anonymous":false},{"inputs":[{"internalType":"address","name":"_controller","type":"address","indexed":true}],"type":"event","name":"ControllerRemoved","anonymous":false},{"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":"_controller","type":"address"},{"internalType":"address","name":"_worker","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"configureController"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"stateMutability":"view","type":"function","name":"getWorker","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeController"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"configureController(address,address)":{"params":{"_controller":"The controller to be configured with a worker.","_worker":"The worker to be set for the newly configured controller. _worker must not be a non-zero address. To disable a worker, use removeController instead."}},"owner()":{"details":"Tells the address of the owner","returns":{"_0":"the address of the owner"}},"removeController(address)":{"params":{"_controller":"The controller to disable."}},"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":{"configureController(address,address)":{"notice":"Configure a controller with the given worker."},"getWorker(address)":{"notice":"Gets the worker at address _controller."},"removeController(address)":{"notice":"disables a controller by setting its worker to address(0)."}},"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/minting/Controller.sol":"Controller"},"evmVersion":"istanbul","libraries":{"SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/minting/Controller.sol":{"keccak256":"0x29ea550f9e40a5d71d30257e7337827a69a4e1131193b2b865d87f7e0ab7feea","urls":["bzz-raw://5390939f348e9651d53d563e523b43d8cd2a09adfc0677602192f20e6452420e","dweb:/ipfs/QmNmArknRQcdMkH8d9f1MVoKPFyHEe3azL8U92TkSp6yM5"],"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/minting/Controller.sol:Controller","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":773,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/minting/Controller.sol:Controller","label":"controllers","offset":0,"slot":"1","type":"t_mapping(t_address,t_address)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"}}},"userdoc":{"version":1,"kind":"user","methods":{"configureController(address,address)":{"notice":"Configure a controller with the given worker."},"getWorker(address)":{"notice":"Gets the worker at address _controller."},"removeController(address)":{"notice":"disables a controller by setting its worker to address(0)."}},"notice":"Generic implementation of the owner-controller-worker model. One owner manages many controllers. Each controller manages one worker. Workers may be reused across different controllers."},"devdoc":{"version":1,"kind":"dev","methods":{"configureController(address,address)":{"params":{"_controller":"The controller to be configured with a worker.","_worker":"The worker to be set for the newly configured controller. _worker must not be a non-zero address. To disable a worker, use removeController instead."}},"owner()":{"details":"Tells the address of the owner","returns":{"_0":"the address of the owner"}},"removeController(address)":{"params":{"_controller":"The controller to disable."}},"transferOwnership(address)":{"details":"Allows the current owner to transfer control of the contract to a newOwner.","params":{"newOwner":"The address to transfer ownership to."}}},"title":"Controller"},"ast":{"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/minting/Controller.sol","id":902,"exportedSymbols":{"Controller":[901]},"nodeType":"SourceUnit","src":"659:2330:6","nodes":[{"id":763,"nodeType":"PragmaDirective","src":"659:23:6","nodes":[],"literals":["solidity","0.6",".12"]},{"id":765,"nodeType":"ImportDirective","src":"684:44:6","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol","file":"../v1/Ownable.sol","scope":902,"sourceUnit":3109,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":764,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"693:7:6","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":901,"nodeType":"ContractDefinition","src":"961:2027:6","nodes":[{"id":773,"nodeType":"VariableDeclaration","src":"1112:48:6","nodes":[],"constant":false,"documentation":{"id":769,"nodeType":"StructuredDocumentation","src":"998:109:6","text":" @dev A controller manages a single worker address.\n controllers[controller] = worker"},"mutability":"mutable","name":"controllers","overrides":null,"scope":901,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":772,"keyType":{"id":770,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1112:27:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":771,"name":"address","nodeType":"ElementaryTypeName","src":"1131:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"value":null,"visibility":"internal"},{"id":779,"nodeType":"EventDefinition","src":"1167:81:6","nodes":[],"anonymous":false,"documentation":null,"name":"ControllerConfigured","parameters":{"id":778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":775,"indexed":true,"mutability":"mutable","name":"_controller","nodeType":"VariableDeclaration","overrides":null,"scope":779,"src":"1194:27:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":774,"name":"address","nodeType":"ElementaryTypeName","src":"1194:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":777,"indexed":true,"mutability":"mutable","name":"_worker","nodeType":"VariableDeclaration","overrides":null,"scope":779,"src":"1223:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":776,"name":"address","nodeType":"ElementaryTypeName","src":"1223:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1193:54:6"}},{"id":783,"nodeType":"EventDefinition","src":"1253:53:6","nodes":[],"anonymous":false,"documentation":null,"name":"ControllerRemoved","parameters":{"id":782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":781,"indexed":true,"mutability":"mutable","name":"_controller","nodeType":"VariableDeclaration","overrides":null,"scope":783,"src":"1277:27:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":780,"name":"address","nodeType":"ElementaryTypeName","src":"1277:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1276:29:6"}},{"id":801,"nodeType":"ModifierDefinition","src":"1418:157:6","nodes":[],"body":{"id":800,"nodeType":"Block","src":"1444:131:6","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":787,"name":"controllers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":773,"src":"1462:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":790,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":788,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1474:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1474:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1462:23:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1497:1:6","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":792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1489:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":791,"name":"address","nodeType":"ElementaryTypeName","src":"1489:7:6","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1489:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1462:37:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5468652076616c7565206f6620636f6e74726f6c6c6572735b6d73672e73656e6465725d206d757374206265206e6f6e2d7a65726f","id":796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1501:55:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_87824adb4ee3eecc7cccd6c5be5264cdc6a1efb64cb71dcfafd98d15162f31c3","typeString":"literal_string \"The value of controllers[msg.sender] must be non-zero\""},"value":"The value of controllers[msg.sender] must be non-zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_87824adb4ee3eecc7cccd6c5be5264cdc6a1efb64cb71dcfafd98d15162f31c3","typeString":"literal_string \"The value of controllers[msg.sender] must be non-zero\""}],"id":786,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1454:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1454:103:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":798,"nodeType":"ExpressionStatement","src":"1454:103:6"},{"id":799,"nodeType":"PlaceholderStatement","src":"1567:1:6"}]},"documentation":{"id":784,"nodeType":"StructuredDocumentation","src":"1312:101:6","text":" @notice Ensures that caller is the controller of a non-zero worker\n address."},"name":"onlyController","overrides":null,"parameters":{"id":785,"nodeType":"ParameterList","parameters":[],"src":"1441:2:6"},"virtual":false,"visibility":"internal"},{"id":814,"nodeType":"FunctionDefinition","src":"1652:120:6","nodes":[],"body":{"id":813,"nodeType":"Block","src":"1724:48:6","nodes":[],"statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":809,"name":"controllers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":773,"src":"1741:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":811,"indexExpression":{"argumentTypes":null,"id":810,"name":"_controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":804,"src":"1753:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1741:24:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":808,"id":812,"nodeType":"Return","src":"1734:31:6"}]},"documentation":{"id":802,"nodeType":"StructuredDocumentation","src":"1581:66:6","text":" @notice Gets the worker at address _controller."},"functionSelector":"c011b1c3","implemented":true,"kind":"function","modifiers":[],"name":"getWorker","overrides":null,"parameters":{"id":805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":804,"mutability":"mutable","name":"_controller","nodeType":"VariableDeclaration","overrides":null,"scope":814,"src":"1671:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":803,"name":"address","nodeType":"ElementaryTypeName","src":"1671:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1670:21:6"},"returnParameters":{"id":808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":807,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":814,"src":"1715:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":806,"name":"address","nodeType":"ElementaryTypeName","src":"1715:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1714:9:6"},"scope":901,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":856,"nodeType":"FunctionDefinition","src":"2141:354:6","nodes":[],"body":{"id":855,"nodeType":"Block","src":"2225:270:6","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":825,"name":"_controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":817,"src":"2243:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2266:1:6","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":827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2258:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":826,"name":"address","nodeType":"ElementaryTypeName","src":"2258:7:6","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2258:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2243:25:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"436f6e74726f6c6c6572206d7573742062652061206e6f6e2d7a65726f2061646472657373","id":831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2270:39:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1b7ee2e67dd55c301e6ad03fb29dbe3db3b4c57773c4084ddfcebd345c1dd98f","typeString":"literal_string \"Controller must be a non-zero address\""},"value":"Controller must be a non-zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1b7ee2e67dd55c301e6ad03fb29dbe3db3b4c57773c4084ddfcebd345c1dd98f","typeString":"literal_string \"Controller must be a non-zero address\""}],"id":824,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2235:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2235:75:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":833,"nodeType":"ExpressionStatement","src":"2235:75:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":835,"name":"_worker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"2328:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2347:1:6","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":837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2339:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":836,"name":"address","nodeType":"ElementaryTypeName","src":"2339:7:6","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2339:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2328:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"576f726b6572206d7573742062652061206e6f6e2d7a65726f2061646472657373","id":841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2351:35:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_71478f240af104b9f70e18cdba3209d964c86c54987e82531d14653ef7126714","typeString":"literal_string \"Worker must be a non-zero address\""},"value":"Worker must be a non-zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71478f240af104b9f70e18cdba3209d964c86c54987e82531d14653ef7126714","typeString":"literal_string \"Worker must be a non-zero address\""}],"id":834,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2320:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2320:67:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":843,"nodeType":"ExpressionStatement","src":"2320:67:6"},{"expression":{"argumentTypes":null,"id":848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":844,"name":"controllers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":773,"src":"2397:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":846,"indexExpression":{"argumentTypes":null,"id":845,"name":"_controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":817,"src":"2409:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2397:24:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":847,"name":"_worker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"2424:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2397:34:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":849,"nodeType":"ExpressionStatement","src":"2397:34:6"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":851,"name":"_controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":817,"src":"2467:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":852,"name":"_worker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"2480:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":850,"name":"ControllerConfigured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":779,"src":"2446:20:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2446:42:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":854,"nodeType":"EmitStatement","src":"2441:47:6"}]},"documentation":{"id":815,"nodeType":"StructuredDocumentation","src":"1806:330:6","text":" @notice Configure a controller with the given worker.\n @param _controller The controller to be configured with a worker.\n @param _worker The worker to be set for the newly configured controller.\n _worker must not be a non-zero address. To disable a worker,\n use removeController instead."},"functionSelector":"c4faf7df","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":822,"modifierName":{"argumentTypes":null,"id":821,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"2215:9:6","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2215:9:6"}],"name":"configureController","overrides":null,"parameters":{"id":820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":817,"mutability":"mutable","name":"_controller","nodeType":"VariableDeclaration","overrides":null,"scope":856,"src":"2170:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":816,"name":"address","nodeType":"ElementaryTypeName","src":"2170:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":819,"mutability":"mutable","name":"_worker","nodeType":"VariableDeclaration","overrides":null,"scope":856,"src":"2191:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":818,"name":"address","nodeType":"ElementaryTypeName","src":"2191:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2169:38:6"},"returnParameters":{"id":823,"nodeType":"ParameterList","parameters":[],"src":"2225:0:6"},"scope":901,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":900,"nodeType":"FunctionDefinition","src":"2644:342:6","nodes":[],"body":{"id":899,"nodeType":"Block","src":"2708:278:6","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":865,"name":"_controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"2726:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2749:1:6","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":867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2741:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":866,"name":"address","nodeType":"ElementaryTypeName","src":"2741:7:6","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2741:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2726:25:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"436f6e74726f6c6c6572206d7573742062652061206e6f6e2d7a65726f2061646472657373","id":871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2753:39:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1b7ee2e67dd55c301e6ad03fb29dbe3db3b4c57773c4084ddfcebd345c1dd98f","typeString":"literal_string \"Controller must be a non-zero address\""},"value":"Controller must be a non-zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1b7ee2e67dd55c301e6ad03fb29dbe3db3b4c57773c4084ddfcebd345c1dd98f","typeString":"literal_string \"Controller must be a non-zero address\""}],"id":864,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2718:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2718:75:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":873,"nodeType":"ExpressionStatement","src":"2718:75:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":875,"name":"controllers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":773,"src":"2811:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":877,"indexExpression":{"argumentTypes":null,"id":876,"name":"_controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"2823:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2811:24:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"addre