{
  "_format": "hh-sol-artifact-1",
  "contractName": "CTokenYieldSource",
  "sourceName": "contracts/yield-source/CTokenYieldSource.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract CTokenInterface",
          "name": "_cToken",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "cToken",
          "type": "address"
        }
      ],
      "name": "CTokenYieldSourceInitialized",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "balanceOfToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "balances",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "cToken",
      "outputs": [
        {
          "internalType": "contract CTokenInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "depositToken",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "redeemAmount",
          "type": "uint256"
        }
      ],
      "name": "redeemToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "supplyTokenTo",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50604051610c97380380610c978339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b0380841691909117918290556040519116907f62a988a69bb7d6a98d15b99860212aeed699dd1c1c09f6474948e77f0d4addcb90600090a250610c05806100926000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063013054c21461006757806327e235e31461009657806369e527da146100bc57806387a6eeef146100e0578063b99152d01461010e578063c89039c514610134575b600080fd5b6100846004803603602081101561007d57600080fd5b503561013c565b60408051918252519081900360200190f35b610084600480360360208110156100ac57600080fd5b50356001600160a01b03166104e1565b6100c46104f3565b604080516001600160a01b039092168252519081900360200190f35b61010c600480360360408110156100f657600080fd5b50803590602001356001600160a01b0316610502565b005b6100846004803603602081101561012457600080fd5b50356001600160a01b0316610863565b6100c46109a6565b600154604080516370a0823160e01b8152306004820152905160009283926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561018c57600080fd5b505afa1580156101a0573d6000803e3d6000fd5b505050506040513d60208110156101b657600080fd5b5051905060006101c46109a6565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561021057600080fd5b505afa158015610224573d6000803e3d6000fd5b505050506040513d602081101561023a57600080fd5b50516001546040805163852a12e360e01b81526004810188905290519293506001600160a01b039091169163852a12e3916024808201926020929091908290030181600087803b15801561028d57600080fd5b505af11580156102a1573d6000803e3d6000fd5b505050506040513d60208110156102b757600080fd5b50511561030b576040805162461bcd60e51b815260206004820152601f60248201527f43546f6b656e5969656c64536f757263652f72656465656d2d6661696c656400604482015290519081900360640190fd5b600154604080516370a0823160e01b81523060048201529051600092610390926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561035d57600080fd5b505afa158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b505184906109b5565b9050600061041e836103a06109a6565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156103ec57600080fd5b505afa158015610400573d6000803e3d6000fd5b505050506040513d602081101561041657600080fd5b5051906109b5565b3360009081526020819052604090205490915061043b90836109b5565b336000908152602081905260409020556104536109a6565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156104a957600080fd5b505af11580156104bd573d6000803e3d6000fd5b505050506040513d60208110156104d357600080fd5b50909450505050505b919050565b60006020819052908152604090205481565b6001546001600160a01b031681565b61050a6109a6565b604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b0392909216916323b872dd916064808201926020929091908290030181600087803b15801561056257600080fd5b505af1158015610576573d6000803e3d6000fd5b505050506040513d602081101561058c57600080fd5b505060015460408051636f307dc360e01b815290516001600160a01b0390921691636f307dc391600480820192602092909190829003018186803b1580156105d357600080fd5b505afa1580156105e7573d6000803e3d6000fd5b505050506040513d60208110156105fd57600080fd5b50516001546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018690529051919092169163095ea7b39160448083019260209291908290030181600087803b15801561065557600080fd5b505af1158015610669573d6000803e3d6000fd5b505050506040513d602081101561067f57600080fd5b5050600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156106cc57600080fd5b505afa1580156106e0573d6000803e3d6000fd5b505050506040513d60208110156106f657600080fd5b50516001546040805163140e25ad60e31b81526004810187905290519293506001600160a01b039091169163a0712d68916024808201926020929091908290030181600087803b15801561074957600080fd5b505af115801561075d573d6000803e3d6000fd5b505050506040513d602081101561077357600080fd5b5051156107c7576040805162461bcd60e51b815260206004820152601d60248201527f43546f6b656e5969656c64536f757263652f6d696e742d6661696c6564000000604482015290519081900360640190fd5b600154604080516370a0823160e01b8152306004820152905160009261081b9285926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156103ec57600080fd5b6001600160a01b0384166000908152602081905260409020549091506108419082610a17565b6001600160a01b03909316600090815260208190526040902092909255505050565b60015460408051633af9e66960e01b8152306004820152905160009283926001600160a01b0390911691633af9e6699160248082019260209290919082900301818787803b1580156108b457600080fd5b505af11580156108c8573d6000803e3d6000fd5b505050506040513d60208110156108de57600080fd5b5051600154604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561093157600080fd5b505afa158015610945573d6000803e3d6000fd5b505050506040513d602081101561095b57600080fd5b505190508061096f576000925050506104dc565b6001600160a01b03841660009081526020819052604090205461099e9082906109989085610a78565b90610ad1565b949350505050565b60006109b0610b38565b905090565b600082821115610a0c576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b600082820183811015610a71576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082610a8757506000610a11565b82820282848281610a9457fe5b0414610a715760405162461bcd60e51b8152600401808060200182810382526021815260200180610baf6021913960400191505060405180910390fd5b6000808211610b27576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610b3057fe5b049392505050565b60015460408051636f307dc360e01b815290516000926001600160a01b031691636f307dc3916004808301926020929190829003018186803b158015610b7d57600080fd5b505afa158015610b91573d6000803e3d6000fd5b505050506040513d6020811015610ba757600080fd5b505190509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212208cf12c5aa485b3e73195af2775be4b9d176294347e97c4c12be4b4c22840b50364736f6c634300060c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063013054c21461006757806327e235e31461009657806369e527da146100bc57806387a6eeef146100e0578063b99152d01461010e578063c89039c514610134575b600080fd5b6100846004803603602081101561007d57600080fd5b503561013c565b60408051918252519081900360200190f35b610084600480360360208110156100ac57600080fd5b50356001600160a01b03166104e1565b6100c46104f3565b604080516001600160a01b039092168252519081900360200190f35b61010c600480360360408110156100f657600080fd5b50803590602001356001600160a01b0316610502565b005b6100846004803603602081101561012457600080fd5b50356001600160a01b0316610863565b6100c46109a6565b600154604080516370a0823160e01b8152306004820152905160009283926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561018c57600080fd5b505afa1580156101a0573d6000803e3d6000fd5b505050506040513d60208110156101b657600080fd5b5051905060006101c46109a6565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561021057600080fd5b505afa158015610224573d6000803e3d6000fd5b505050506040513d602081101561023a57600080fd5b50516001546040805163852a12e360e01b81526004810188905290519293506001600160a01b039091169163852a12e3916024808201926020929091908290030181600087803b15801561028d57600080fd5b505af11580156102a1573d6000803e3d6000fd5b505050506040513d60208110156102b757600080fd5b50511561030b576040805162461bcd60e51b815260206004820152601f60248201527f43546f6b656e5969656c64536f757263652f72656465656d2d6661696c656400604482015290519081900360640190fd5b600154604080516370a0823160e01b81523060048201529051600092610390926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561035d57600080fd5b505afa158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b505184906109b5565b9050600061041e836103a06109a6565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156103ec57600080fd5b505afa158015610400573d6000803e3d6000fd5b505050506040513d602081101561041657600080fd5b5051906109b5565b3360009081526020819052604090205490915061043b90836109b5565b336000908152602081905260409020556104536109a6565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156104a957600080fd5b505af11580156104bd573d6000803e3d6000fd5b505050506040513d60208110156104d357600080fd5b50909450505050505b919050565b60006020819052908152604090205481565b6001546001600160a01b031681565b61050a6109a6565b604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b0392909216916323b872dd916064808201926020929091908290030181600087803b15801561056257600080fd5b505af1158015610576573d6000803e3d6000fd5b505050506040513d602081101561058c57600080fd5b505060015460408051636f307dc360e01b815290516001600160a01b0390921691636f307dc391600480820192602092909190829003018186803b1580156105d357600080fd5b505afa1580156105e7573d6000803e3d6000fd5b505050506040513d60208110156105fd57600080fd5b50516001546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018690529051919092169163095ea7b39160448083019260209291908290030181600087803b15801561065557600080fd5b505af1158015610669573d6000803e3d6000fd5b505050506040513d602081101561067f57600080fd5b5050600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156106cc57600080fd5b505afa1580156106e0573d6000803e3d6000fd5b505050506040513d60208110156106f657600080fd5b50516001546040805163140e25ad60e31b81526004810187905290519293506001600160a01b039091169163a0712d68916024808201926020929091908290030181600087803b15801561074957600080fd5b505af115801561075d573d6000803e3d6000fd5b505050506040513d602081101561077357600080fd5b5051156107c7576040805162461bcd60e51b815260206004820152601d60248201527f43546f6b656e5969656c64536f757263652f6d696e742d6661696c6564000000604482015290519081900360640190fd5b600154604080516370a0823160e01b8152306004820152905160009261081b9285926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156103ec57600080fd5b6001600160a01b0384166000908152602081905260409020549091506108419082610a17565b6001600160a01b03909316600090815260208190526040902092909255505050565b60015460408051633af9e66960e01b8152306004820152905160009283926001600160a01b0390911691633af9e6699160248082019260209290919082900301818787803b1580156108b457600080fd5b505af11580156108c8573d6000803e3d6000fd5b505050506040513d60208110156108de57600080fd5b5051600154604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561093157600080fd5b505afa158015610945573d6000803e3d6000fd5b505050506040513d602081101561095b57600080fd5b505190508061096f576000925050506104dc565b6001600160a01b03841660009081526020819052604090205461099e9082906109989085610a78565b90610ad1565b949350505050565b60006109b0610b38565b905090565b600082821115610a0c576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b600082820183811015610a71576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082610a8757506000610a11565b82820282848281610a9457fe5b0414610a715760405162461bcd60e51b8152600401808060200182810382526021815260200180610baf6021913960400191505060405180910390fd5b6000808211610b27576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610b3057fe5b049392505050565b60015460408051636f307dc360e01b815290516000926001600160a01b031691636f307dc3916004808301926020929190829003018186803b158015610b7d57600080fd5b505afa158015610b91573d6000803e3d6000fd5b505050506040513d6020811015610ba757600080fd5b505190509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212208cf12c5aa485b3e73195af2775be4b9d176294347e97c4c12be4b4c22840b50364736f6c634300060c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
