[
    {
        "constant": false,
        "inputs": [{ "name": "nextOwner", "type": "address" }],
        "name": "setOwner",
        "outputs": [],
        "payable": false,
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "constant": true,
        "inputs": [{ "name": "src", "type": "address" }],
        "name": "isAuth",
        "outputs": [{ "name": "", "type": "bool" }],
        "payable": false,
        "stateMutability": "view",
        "type": "function"
    },
    {
        "constant": true,
        "inputs": [],
        "name": "registry",
        "outputs": [{ "name": "", "type": "address" }],
        "payable": false,
        "stateMutability": "view",
        "type": "function"
    },
    {
        "constant": true,
        "inputs": [],
        "name": "owner",
        "outputs": [{ "name": "", "type": "address" }],
        "payable": false,
        "stateMutability": "view",
        "type": "function"
    },
    {
        "constant": false,
        "inputs": [
            { "name": "_target", "type": "address" },
            { "name": "_data", "type": "bytes" },
            { "name": "_src", "type": "uint256" },
            { "name": "_session", "type": "uint256" }
        ],
        "name": "execute",
        "outputs": [{ "name": "response", "type": "bytes" }],
        "payable": true,
        "stateMutability": "payable",
        "type": "function"
    },
    {
        "inputs": [],
        "payable": false,
        "stateMutability": "nonpayable",
        "type": "constructor"
    },
    { "payable": true, "stateMutability": "payable", "type": "fallback" },
    {
        "anonymous": false,
        "inputs": [
            { "indexed": false, "name": "target", "type": "address" },
            { "indexed": false, "name": "srcNum", "type": "uint256" },
            { "indexed": false, "name": "sessionNum", "type": "uint256" }
        ],
        "name": "LogExecute",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            { "indexed": true, "name": "sig", "type": "bytes4" },
            { "indexed": true, "name": "guy", "type": "address" },
            { "indexed": true, "name": "foo", "type": "bytes32" },
            { "indexed": false, "name": "bar", "type": "bytes32" },
            { "indexed": false, "name": "wad", "type": "uint256" },
            { "indexed": false, "name": "fax", "type": "bytes" }
        ],
        "name": "LogNote",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [{ "indexed": true, "name": "owner", "type": "address" }],
        "name": "LogSetOwner",
        "type": "event"
    },
    {
        "constant": false,
        "inputs": [
            { "name": "erc20", "type": "address" },
            { "name": "cErc20", "type": "address" },
            { "name": "tokenAmt", "type": "uint256" }
        ],
        "name": "mintCToken",
        "outputs": [],
        "payable": true,
        "stateMutability": "payable",
        "type": "function"
    },
    {
        "constant": true,
        "inputs": [],
        "name": "getComptrollerAddress",
        "outputs": [{ "name": "troller", "type": "address" }],
        "payable": false,
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "constant": false,
        "inputs": [
            { "name": "erc20", "type": "address" },
            { "name": "cErc20", "type": "address" },
            { "name": "tokenAmt", "type": "uint256" }
        ],
        "name": "borrow",
        "outputs": [],
        "payable": false,
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "constant": false,
        "inputs": [
            { "name": "erc20", "type": "address" },
            { "name": "cErc20", "type": "address" },
            { "name": "tokenAmt", "type": "uint256" }
        ],
        "name": "repayToken",
        "outputs": [],
        "payable": true,
        "stateMutability": "payable",
        "type": "function"
    },
    {
        "constant": false,
        "inputs": [
            { "name": "erc20", "type": "address" },
            { "name": "cErc20", "type": "address" },
            { "name": "tokenAmt", "type": "uint256" }
        ],
        "name": "redeemUnderlying",
        "outputs": [],
        "payable": false,
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "constant": false,
        "inputs": [
            { "name": "erc20", "type": "address" },
            { "name": "cErc20", "type": "address" },
            { "name": "cTokenAmt", "type": "uint256" }
        ],
        "name": "redeemCToken",
        "outputs": [],
        "payable": false,
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "constant": true,
        "inputs": [],
        "name": "getAddressETH",
        "outputs": [{ "name": "eth", "type": "address" }],
        "payable": false,
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "constant": false,
        "inputs": [
            { "name": "borrower", "type": "address" },
            { "name": "erc20", "type": "address" },
            { "name": "cErc20", "type": "address" },
            { "name": "tokenAmt", "type": "uint256" }
        ],
        "name": "repaytokenBehalf",
        "outputs": [],
        "payable": true,
        "stateMutability": "payable",
        "type": "function"
    },
    { "payable": true, "stateMutability": "payable", "type": "fallback" },
    {
        "anonymous": false,
        "inputs": [
            { "indexed": false, "name": "erc20", "type": "address" },
            { "indexed": false, "name": "cErc20", "type": "address" },
            { "indexed": false, "name": "tokenAmt", "type": "uint256" },
            { "indexed": false, "name": "owner", "type": "address" }
        ],
        "name": "LogMint",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            { "indexed": false, "name": "erc20", "type": "address" },
            { "indexed": false, "name": "cErc20", "type": "address" },
            { "indexed": false, "name": "tokenAmt", "type": "uint256" },
            { "indexed": false, "name": "owner", "type": "address" }
        ],
        "name": "LogRedeem",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            { "indexed": false, "name": "erc20", "type": "address" },
            { "indexed": false, "name": "cErc20", "type": "address" },
            { "indexed": false, "name": "tokenAmt", "type": "uint256" },
            { "indexed": false, "name": "owner", "type": "address" }
        ],
        "name": "LogBorrow",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            { "indexed": false, "name": "erc20", "type": "address" },
            { "indexed": false, "name": "cErc20", "type": "address" },
            { "indexed": false, "name": "tokenAmt", "type": "uint256" },
            { "indexed": false, "name": "owner", "type": "address" }
        ],
        "name": "LogRepay",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            { "indexed": false, "name": "borrower", "type": "address" },
            { "indexed": false, "name": "erc20", "type": "address" },
            { "indexed": false, "name": "cErc20", "type": "address" },
            { "indexed": false, "name": "tokenAmt", "type": "uint256" },
            { "indexed": false, "name": "owner", "type": "address" }
        ],
        "name": "LogRepayBehalf",
        "type": "event"
    },
    {
        "constant": false,
        "inputs": [
            { "name": "marketId", "type": "uint256" },
            { "name": "erc20Addr", "type": "address" },
            { "name": "tokenAmt", "type": "uint256" }
        ],
        "name": "borrow",
        "outputs": [],
        "payable": false,
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "constant": true,
        "inputs": [],
        "name": "getAddressWETH",
        "outputs": [{ "name": "weth", "type": "address" }],
        "payable": false,
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "constant": false,
        "inputs": [
            { "name": "marketId", "type": "uint256" },
            { "name": "erc20Addr", "type": "address" },
            { "name": "tokenAmt", "type": "uint256" }
        ],
        "name": "payback",
        "outputs": [],
        "payable": true,
        "stateMutability": "payable",
        "type": "function"
    },
    {
        "constant": true,
        "inputs": [],
        "name": "getSoloAddress",
        "outputs": [{ "name": "addr", "type": "address" }],
        "payable": false,
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "constant": true,
        "inputs": [],
        "name": "getAddressETH",
        "outputs": [{ "name": "eth", "type": "address" }],
        "payable": false,
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "constant": false,
        "inputs": [
            { "name": "marketId", "type": "uint256" },
            { "name": "erc20Addr", "type": "address" },
            { "name": "tokenAmt", "type": "uint256" }
        ],
        "name": "deposit",
        "outputs": [],
        "payable": true,
        "stateMutability": "payable",
        "type": "function"
    },
    {
        "constant": true,
        "inputs": [],
        "name": "getSoloPayableAddress",
        "outputs": [{ "name": "addr", "type": "address" }],
        "payable": false,
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "constant": false,
        "inputs": [
            { "name": "marketId", "type": "uint256" },
            { "name": "erc20Addr", "type": "address" },
            { "name": "tokenAmt", "type": "uint256" }
        ],
        "name": "withdraw",
        "outputs": [],
        "payable": false,
        "stateMutability": "nonpayable",
        "type": "function"
    },
    { "payable": true, "stateMutability": "payable", "type": "fallback" },
    {
        "anonymous": false,
        "inputs": [
            { "indexed": false, "name": "erc20Addr", "type": "address" },
            { "indexed": false, "name": "tokenAmt", "type": "uint256" },
            { "indexed": false, "name": "owner", "type": "address" }
        ],
        "name": "LogDeposit",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            { "indexed": false, "name": "erc20Addr", "type": "address" },
            { "indexed": false, "name": "tokenAmt", "type": "uint256" },
            { "indexed": false, "name": "owner", "type": "address" }
        ],
        "name": "LogWithdraw",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            { "indexed": false, "name": "erc20Addr", "type": "address" },
            { "indexed": false, "name": "tokenAmt", "type": "uint256" },
            { "indexed": false, "name": "owner", "type": "address" }
        ],
        "name": "LogBorrow",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            { "indexed": false, "name": "erc20Addr", "type": "address" },
            { "indexed": false, "name": "tokenAmt", "type": "uint256" },
            { "indexed": false, "name": "owner", "type": "address" }
        ],
        "name": "LogPayback",
        "type": "event"
    }
]
