[ { "inputs": [ { "internalType": "address", "name": "underlying_", "type": "address" }, { "internalType": "contract KineControllerInterface", "name": "controller_", "type": "address" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint8", "name": "decimals_", "type": "uint8" }, { "internalType": "address payable", "name": "admin_", "type": "address" }, { "internalType": "address", "name": "implementation_", "type": "address" }, { "internalType": "bytes", "name": "becomeImplementationData", "type": "bytes" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "mintAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "mintTokens", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "NewAdmin", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "contract KineControllerInterface", "name": "oldController", "type": "address" }, { "indexed": false, "internalType": "contract KineControllerInterface", "name": "newController", "type": "address" } ], "name": "NewController", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldImplementation", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "NewImplementation", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldPendingAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newPendingAdmin", "type": "address" } ], "name": "NewPendingAdmin", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "redeemer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "redeemTokens", "type": "uint256" } ], "name": "Redeem", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "payable": true, "stateMutability": "payable", "type": "fallback" }, { "constant": false, "inputs": [], "name": "_acceptAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "contract KineControllerInterface", "name": "newController", "type": "address" } ], "name": "_setController", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "implementation_", "type": "address" }, { "internalType": "bool", "name": "allowResign", "type": "bool" }, { "internalType": "bytes", "name": "becomeImplementationData", "type": "bytes" } ], "name": "_setImplementation", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address payable", "name": "newPendingAdmin", "type": "address" } ], "name": "_setPendingAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "admin", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "controller", "outputs": [ { "internalType": "contract KineControllerInterface", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "delegateToImplementation", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "delegateToViewImplementation", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getAccountSnapshot", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getCash", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "initialized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "isKToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "mintAmount", "type": "uint256" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "pendingAdmin", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "redeemTokens", "type": "uint256" } ], "name": "redeem", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "liquidator", "type": "address" }, { "internalType": "address", "name": "borrower", "type": "address" }, { "internalType": "uint256", "name": "seizeTokens", "type": "uint256" } ], "name": "seize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "dst", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "src", "type": "address" }, { "internalType": "address", "name": "dst", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "underlying", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b5060405162001b3238038062001b3283398181016040526101008110156200003857600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006457600080fd5b9083019060208201858111156200007a57600080fd5b82516401000000008111828201881017156200009557600080fd5b82525081516020918201929091019080838360005b83811015620000c4578181015183820152602001620000aa565b50505050905090810190601f168015620000f25780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011657600080fd5b9083019060208201858111156200012c57600080fd5b82516401000000008111828201881017156200014757600080fd5b82525081516020918201929091019080838360005b83811015620001765781810151838201526020016200015c565b50505050905090810190601f168015620001a45780820380516001836020036101000a031916815260200191505b50604081815260208301519083015160608401516080909401805192969195919284640100000000821115620001d957600080fd5b908301906020820185811115620001ef57600080fd5b82516401000000008111828201881017156200020a57600080fd5b82525081516020918201929091019080838360005b83811015620002395781810151838201526020016200021f565b50505050905090810190601f168015620002675780820380516001836020036101000a031916815260200191505b50604081905260038054610100600160a81b03191633610100021790556000805461ff00191681556001600160a01b038d811660248401908152908d16604484015260ff8a1660a484015260a0606484019081528c5160c48501528c51620003de97508996508f95508e948e948e948e9490939092608481019260e49091019160208901918190849084905b838110156200030d578181015183820152602001620002f3565b50505050905090810190601f1680156200033b5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156200037057818101518382015260200162000356565b50505050905090810190601f1680156200039e5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b03908116638420ce9960e01b179091529098506200042a169650505050505050565b50620003f6826000836001600160e01b03620004f116565b5050600380546001600160a01b0390921661010002610100600160a81b031990921691909117905550620006d29350505050565b606060006060846001600160a01b0316846040518082805190602001908083835b602083106200046c5780518252601f1990920191602091820191016200044b565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114620004ce576040519150601f19603f3d011682016040523d82523d6000602084013e620004d3565b606091505b50915091506000821415620004e9573d60208201fd5b949350505050565b60035461010090046001600160a01b03163314620005415760405162461bcd60e51b815260040180806020018281038252603981526020018062001af96039913960400191505060405180910390fd5b811562000583576040805160048152602481019091526020810180516001600160e01b0390811663153ab50560e01b17909152620005819190620006a816565b505b600a80546001600160a01b038581166001600160a01b0319831617909255604051602060248201818152855160448401528551949093169362000659938693909283926064909201919085019080838360005b83811015620005f0578181015183820152602001620005d6565b50505050905090810190601f1680156200061e5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b03908116630adccee560e31b17909152909350620006a816915050565b50600a54604080516001600160a01b038085168252909216602083015280517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9281900390910190a150505050565b600a54606090620006cc906001600160a01b0316836001600160e01b036200042a16565b92915050565b61141780620006e26000396000f3fe60806040526004361061019c5760003560e01c80636f307dc3116100ec578063b71d1a0c1161008a578063dd62ed3e11610064578063dd62ed3e14610858578063e9c714f214610893578063f77c4791146108a8578063f851a440146108bd5761019c565b8063b71d1a0c146107af578063c37f68e2146107e2578063db006a751461082e5761019c565b806395d89b41116100c657806395d89b41146106f4578063a0712d6814610709578063a9059cbb14610733578063b2a02ff11461076c5761019c565b80636f307dc31461067957806370a082311461068e57806383de424e146106c15761019c565b806326782247116101595780633b1d21a2116101335780633b1d21a2146104d45780634487152f146104e9578063555bcc401461059a5780635c60da1b146106645761019c565b8063267822471461046357806329d9109c14610494578063313ce567146104a95761019c565b806306fdde031461025c5780630933c1ed146102e6578063095ea7b314610397578063158ef93e146103e457806318160ddd146103f957806323b872dd14610420575b34156101d95760405162461bcd60e51b81526004018080602001828103825260378152602001806113736037913960400191505060405180910390fd5b600a546040516000916001600160a01b031690829036908083838082843760405192019450600093509091505080830381855af49150503d806000811461023c576040519150601f19603f3d011682016040523d82523d6000602084013e610241565b606091505b505090506040513d6000823e818015610258573d82f35b3d82fd5b34801561026857600080fd5b506102716108d2565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ab578181015183820152602001610293565b50505050905090810190601f1680156102d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f257600080fd5b506102716004803603602081101561030957600080fd5b810190602081018135600160201b81111561032357600080fd5b82018360208201111561033557600080fd5b803590602001918460018302840111600160201b8311171561035657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061095f945050505050565b3480156103a357600080fd5b506103d0600480360360408110156103ba57600080fd5b506001600160a01b03813516906020013561097e565b604080519115158252519081900360200190f35b3480156103f057600080fd5b506103d06109f5565b34801561040557600080fd5b5061040e610a03565b60408051918252519081900360200190f35b34801561042c57600080fd5b506103d06004803603606081101561044357600080fd5b506001600160a01b03813581169160208101359091169060400135610a09565b34801561046f57600080fd5b50610478610a89565b604080516001600160a01b039092168252519081900360200190f35b3480156104a057600080fd5b506103d0610a98565b3480156104b557600080fd5b506104be610a9d565b6040805160ff9092168252519081900360200190f35b3480156104e057600080fd5b5061040e610aa6565b3480156104f557600080fd5b506102716004803603602081101561050c57600080fd5b810190602081018135600160201b81111561052657600080fd5b82018360208201111561053857600080fd5b803590602001918460018302840111600160201b8311171561055957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610afd945050505050565b3480156105a657600080fd5b50610662600480360360608110156105bd57600080fd5b6001600160a01b03823516916020810135151591810190606081016040820135600160201b8111156105ee57600080fd5b82018360208201111561060057600080fd5b803590602001918460018302840111600160201b8311171561062157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d1c945050505050565b005b34801561067057600080fd5b50610478610ebf565b34801561068557600080fd5b50610478610ece565b34801561069a57600080fd5b5061040e600480360360208110156106b157600080fd5b50356001600160a01b0316610edd565b3480156106cd57600080fd5b50610662600480360360208110156106e457600080fd5b50356001600160a01b0316610f4f565b34801561070057600080fd5b50610271610f9f565b34801561071557600080fd5b5061040e6004803603602081101561072c57600080fd5b5035610ff7565b34801561073f57600080fd5b506103d06004803603604081101561075657600080fd5b506001600160a01b03813516906020013561103e565b34801561077857600080fd5b506106626004803603606081101561078f57600080fd5b506001600160a01b03813581169160208101359091169060400135611094565b3480156107bb57600080fd5b50610662600480360360208110156107d257600080fd5b50356001600160a01b03166110f2565b3480156107ee57600080fd5b506108156004803603602081101561080557600080fd5b50356001600160a01b031661113e565b6040805192835260208301919091528051918290030190f35b34801561083a57600080fd5b506106626004803603602081101561085157600080fd5b50356111bd565b34801561086457600080fd5b5061040e6004803603604081101561087b57600080fd5b506001600160a01b03813581169160200135166111fe565b34801561089f57600080fd5b50610662611258565b3480156108b457600080fd5b5061047861128d565b3480156108c957600080fd5b5061047861129c565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109575780601f1061092c57610100808354040283529160200191610957565b820191906000526020600020905b81548152906001019060200180831161093a57829003601f168201915b505050505081565b600a54606090610978906001600160a01b0316836112b0565b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526000906060906109d49061095f565b90508080602001905160208110156109eb57600080fd5b5051949350505050565b600054610100900460ff1681565b60065481565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052600090606090610a679061095f565b9050808060200190516020811015610a7e57600080fd5b505195945050505050565b6004546001600160a01b031681565b600181565b60035460ff1681565b6040805160048152602481019091526020810180516001600160e01b0316631d8e90d160e11b179052600090606090610ade90610afd565b9050808060200190516020811015610af557600080fd5b505191505090565b606060006060306001600160a01b0316846040516024018080602001828103825283818151815260200191508051906020019080838360005b83811015610b4e578181015183820152602001610b36565b50505050905090810190601f168015610b7b5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b0316630933c1ed60e01b178152905182519295509350839250908083835b60208310610bd65780518252601f199092019160209182019101610bb7565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610c36576040519150601f19603f3d011682016040523d82523d6000602084013e610c3b565b606091505b50915091506000821415610c50573d60208201fd5b808060200190516020811015610c6557600080fd5b8101908080516040519392919084600160201b821115610c8457600080fd5b908301906020820185811115610c9957600080fd5b8251600160201b811182820188101715610cb257600080fd5b82525081516020918201929091019080838360005b83811015610cdf578181015183820152602001610cc7565b50505050905090810190601f168015610d0c5780820380516001836020036101000a031916815260200191505b5060405250505092505050919050565b60035461010090046001600160a01b03163314610d6a5760405162461bcd60e51b81526004018080602001828103825260398152602001806113aa6039913960400191505060405180910390fd5b8115610da4576040805160048152602481019091526020810180516001600160e01b031663153ab50560e01b179052610da29061095f565b505b600a80546001600160a01b038581166001600160a01b03198316179092556040516020602482018181528551604484015285519490931693610e70938693909283926064909201919085019080838360005b83811015610e0e578181015183820152602001610df6565b50505050905090810190601f168015610e3b5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b0316630adccee560e31b179052925061095f915050565b50600a54604080516001600160a01b038085168252909216602083015280517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9281900390910190a150505050565b600a546001600160a01b031681565b6009546001600160a01b031681565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166370a0823160e01b179052600090606090610f2f90610afd565b9050808060200190516020811015610f4657600080fd5b50519392505050565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166341ef212760e11b179052610f9b9061095f565b5050565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156109575780601f1061092c57610100808354040283529160200191610957565b6040805160248082018490528251808303909101815260449091019091526020810180516001600160e01b031663140e25ad60e31b179052600090606090610f2f9061095f565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526000906060906109d49061095f565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b031663b2a02ff160e01b1790526110ec9061095f565b50505050565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b0316632dc7468360e21b179052610f9b9061095f565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166361bfb47160e11b179052600090819060609061119290610afd565b90508080602001905160408110156111a957600080fd5b508051602090910151909350915050915091565b6040805160248082018490528251808303909101815260449091019091526020810180516001600160e01b031663db006a7560e01b179052610f9b9061095f565b604080516001600160a01b03808516602483015283166044808301919091528251808303909101815260649091019091526020810180516001600160e01b0316636eb1769f60e11b1790526000906060906109d490610afd565b6040805160048152602481019091526020810180516001600160e01b03166374e38a7960e11b17905261128a9061095f565b50565b6005546001600160a01b031681565b60035461010090046001600160a01b031681565b606060006060846001600160a01b0316846040518082805190602001908083835b602083106112f05780518252601f1990920191602091820191016112d1565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114611350576040519150601f19603f3d011682016040523d82523d6000602084013e611355565b606091505b5091509150600082141561136a573d60208201fd5b94935050505056fe4b457263323044656c656761746f723a66616c6c6261636b3a2063616e6e6f742073656e642076616c756520746f2066616c6c6261636b4b457263323044656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a2043616c6c6572206d7573742062652061646d696ea265627a7a7231582055d2e9cde5bc1bc833c43cbec7a58eafdc7ebcca786bc32bb69e6d3b6957587064736f6c634300051000324b457263323044656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a2043616c6c6572206d7573742062652061646d696e0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000bb7d94a423f4978545ecf73161f0678e8afd1a9200000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000800000000000000000000000017d04113a3651e79e7d40a40e47aae23046f7761000000000000000000000000624c0042fdda26c67e919c8a2f19072e7fab4b8d000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000134b6f6c6c61746572616c697a656420574254430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056b5742544300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000