abstract contract IPETH is IPToken {

    /*** User Interface ***/
    function mint() external payable virtual;

    function redeem(uint redeemTokens) external virtual returns (uint);

    function redeemUnderlying(uint redeemAmount) external virtual returns (uint);

    function borrow(uint borrowAmount) external virtual returns (uint);

    function repayBorrow() external payable virtual;

    function repayBorrowBehalf(address borrower) external virtual payable;

    function liquidateBorrow(address borrower, IPToken pTokenCollateral) external virtual payable;

}
function mint() external payable virtual;

/*** User Interface ***/