{
  "contractName": "ControlledRecoverableMock",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract Controller",
          "name": "_controller",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "EtherReceived",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "ModuleCached",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "name": "RecoverFunds",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_ids",
          "type": "bytes32[]"
        },
        {
          "internalType": "address[]",
          "name": "_addresses",
          "type": "address[]"
        }
      ],
      "name": "cacheModules",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getController",
      "outputs": [
        {
          "internalType": "contract Controller",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "receiveEther",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address payable",
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "recoverFunds",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040516109dd3803806109dd8339818101604052602081101561003357600080fd5b50518080610049816001600160e01b0361013116565b6040518060400160405280601b81526020017f4354445f434f4e54524f4c4c45525f4e4f545f434f4e54524143540000000000815250906101085760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156100cd5781810151838201526020016100b5565b50505050905090810190601f1680156100fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055506101549050565b60006001600160a01b0382166101495750600061014f565b50803b15155b919050565b61087a806101636000396000f3fe60806040526004361061003f5760003560e01c806324ae6a27146100445780633018205f146100745780634e112d36146100a5578063a3912ec814610170575b600080fd5b6100726004803603604081101561005a57600080fd5b506001600160a01b0381358116916020013516610178565b005b34801561008057600080fd5b5061008961055d565b604080516001600160a01b039092168252519081900360200190f35b3480156100b157600080fd5b50610072600480360360408110156100c857600080fd5b810190602081018135600160201b8111156100e257600080fd5b8201836020820111156100f457600080fd5b803590602001918460208302840111600160201b8311171561011557600080fd5b919390929091602081019035600160201b81111561013257600080fd5b82018360208201111561014457600080fd5b803590602001918460208302840111600160201b8311171561016557600080fd5b50909250905061056c565b610072610761565b6000809054906101000a90046001600160a01b03166001600160a01b0316633c28e88b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101c557600080fd5b505afa1580156101d9573d6000803e3d6000fd5b505050506040513d60208110156101ef57600080fd5b505160408051808201909152601d81527f4354445f53454e4445525f4e4f545f46554e44535f474f5645524e4f520000006020820152906001600160a01b031633146102b95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561027e578181015183820152602001610266565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060006001600160a01b03831661037a575060405147906001600160a01b0383169082156108fc029083906000818181858888f193505050506040518060400160405280601e81526020017f4354445f5245434f5645525f544f4b454e5f46554e44535f4641494c45440000815250906103745760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561027e578181015183820152602001610266565b5061050e565b604080516370a0823160e01b815230600482015290516001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156103c057600080fd5b505afa1580156103d4573d6000803e3d6000fd5b505050506040513d60208110156103ea57600080fd5b505160408051808201909152601e81527f4354445f494e53554646494349454e545f5245434f5645525f46554e4453000060208201529091508161046f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561027e578181015183820152602001610266565b5061048a6001600160a01b038416838363ffffffff61079d16565b6040518060400160405280601e81526020017f4354445f5245434f5645525f544f4b454e5f46554e44535f4641494c454400008152509061050c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561027e578181015183820152602001610266565b505b604080516001600160a01b0380861682528416602082015280820183905290517f724139fea3954691c2c1ee02b3be6be1763b32ec84841f1acad6d3a18695ba0d9181900360600190a1505050565b6000546001600160a01b031690565b60005460408051808201909152601981527821aa222fa9a2a72222a92fa727aa2fa1a7a72a2927a62622a960391b6020820152906001600160a01b031633146105f65760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561027e578181015183820152602001610266565b5060408051808201909152601f81527f4354445f494e56414c49445f4d4f44554c45535f43414348455f494e5055540060208201528382146106795760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561027e578181015183820152602001610266565b5060005b8381101561075a5782828281811061069157fe5b905060200201356001600160a01b0316600160008787858181106106b157fe5b90506020020135815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f60bd2091d76fc7f3330a4d5e9fd21180cf5de4b91e9972d2d56f41896c036a4085858381811061071757fe5b9050602002013584848481811061072a57fe5b60408051948552602091820293909301356001600160a01b031690840152508051918290030190a160010161067d565b5050505050565b6040805133815234602082015281517f1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b929181900390910190a1565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526000906107f185826107fa565b95945050505050565b6000806040516020818551602087016000895af1801561083b573d8015610828576020811461083157610839565b60019350610839565b600183511493505b505b509094935050505056fea265627a7a723158202cd55b93b889c30e8d6e352d7853c4e49417a3fcaf5f107065fd303f71a0382864736f6c63430005110032",
  "deployedBytecode": "0x60806040526004361061003f5760003560e01c806324ae6a27146100445780633018205f146100745780634e112d36146100a5578063a3912ec814610170575b600080fd5b6100726004803603604081101561005a57600080fd5b506001600160a01b0381358116916020013516610178565b005b34801561008057600080fd5b5061008961055d565b604080516001600160a01b039092168252519081900360200190f35b3480156100b157600080fd5b50610072600480360360408110156100c857600080fd5b810190602081018135600160201b8111156100e257600080fd5b8201836020820111156100f457600080fd5b803590602001918460208302840111600160201b8311171561011557600080fd5b919390929091602081019035600160201b81111561013257600080fd5b82018360208201111561014457600080fd5b803590602001918460208302840111600160201b8311171561016557600080fd5b50909250905061056c565b610072610761565b6000809054906101000a90046001600160a01b03166001600160a01b0316633c28e88b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101c557600080fd5b505afa1580156101d9573d6000803e3d6000fd5b505050506040513d60208110156101ef57600080fd5b505160408051808201909152601d81527f4354445f53454e4445525f4e4f545f46554e44535f474f5645524e4f520000006020820152906001600160a01b031633146102b95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561027e578181015183820152602001610266565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060006001600160a01b03831661037a575060405147906001600160a01b0383169082156108fc029083906000818181858888f193505050506040518060400160405280601e81526020017f4354445f5245434f5645525f544f4b454e5f46554e44535f4641494c45440000815250906103745760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561027e578181015183820152602001610266565b5061050e565b604080516370a0823160e01b815230600482015290516001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156103c057600080fd5b505afa1580156103d4573d6000803e3d6000fd5b505050506040513d60208110156103ea57600080fd5b505160408051808201909152601e81527f4354445f494e53554646494349454e545f5245434f5645525f46554e4453000060208201529091508161046f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561027e578181015183820152602001610266565b5061048a6001600160a01b038416838363ffffffff61079d16565b6040518060400160405280601e81526020017f4354445f5245434f5645525f544f4b454e5f46554e44535f4641494c454400008152509061050c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561027e578181015183820152602001610266565b505b604080516001600160a01b0380861682528416602082015280820183905290517f724139fea3954691c2c1ee02b3be6be1763b32ec84841f1acad6d3a18695ba0d9181900360600190a1505050565b6000546001600160a01b031690565b60005460408051808201909152601981527821aa222fa9a2a72222a92fa727aa2fa1a7a72a2927a62622a960391b6020820152906001600160a01b031633146105f65760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561027e578181015183820152602001610266565b5060408051808201909152601f81527f4354445f494e56414c49445f4d4f44554c45535f43414348455f494e5055540060208201528382146106795760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561027e578181015183820152602001610266565b5060005b8381101561075a5782828281811061069157fe5b905060200201356001600160a01b0316600160008787858181106106b157fe5b90506020020135815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f60bd2091d76fc7f3330a4d5e9fd21180cf5de4b91e9972d2d56f41896c036a4085858381811061071757fe5b9050602002013584848481811061072a57fe5b60408051948552602091820293909301356001600160a01b031690840152508051918290030190a160010161067d565b5050505050565b6040805133815234602082015281517f1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b929181900390910190a1565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526000906107f185826107fa565b95945050505050565b6000806040516020818551602087016000895af1801561083b573d8015610828576020811461083157610839565b60019350610839565b600183511493505b505b509094935050505056fea265627a7a723158202cd55b93b889c30e8d6e352d7853c4e49417a3fcaf5f107065fd303f71a0382864736f6c63430005110032",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
