pragma solidity ^0.5.0; import "@openzeppelin/contracts/math/SafeMath.sol"; import "./Ktoken.sol"; contract KEther is KToken { using SafeMath for uint256; constructor (address invokerAddress) public KToken(address(1), invokerAddress, "Kollateral Ether", "kETH", 18) { } function mint() external payable returns (bool) { return mintInternal(msg.value); } function isKEther() public view returns (bool) { return true; } function totalReserve() public view returns (uint256) { return address(this).balance; } function transferUnderlyingInternal(address to, uint256 amount) internal returns (bool) { address payable toPayable = address(uint160(to)); require(address(this).balance >= amount, "KEther: not enough ether balance"); toPayable.transfer(amount); return true; } function () external payable { } }