Created
May 30, 2018 20:00
-
-
Save andr11111/e055a1c2a788ca8a40536d9402ae3871 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
contract BlockSigmaBase is StandardToken { | |
/** | |
* @dev Constructor | |
* @param _underlyingTokenAddress address of the underlying ERC20 token. | |
* @param _currencyTokenAddress address of the currency ERC20 token. | |
* @param _strike option strike denominated in the currency token. | |
* @param _exp expiration timestamp. | |
* @param _minReserve minimum (excess) reserve | |
* @param _underlyingBancorConverter address of the Bancor converter contract that converts underlying token into BNT. | |
* @param _currencyBancorConverter address of the Bancor converter contract that converts currency token into BNT. | |
* @param _issuer address that is allowed to issue(underwrite) new contracts. | |
*/ | |
function BlockSigmaBase(address _underlyingTokenAddress, address _currencyTokenAddress, | |
uint256 _strike, uint256 _exp, uint256 _minReserve, | |
address _underlyingBancorConverter, address _currencyBancorConverter, | |
address _issuer) public; | |
/** | |
* @dev get the required maintenance margin level in currency token. | |
*/ | |
function getRequiredReserve() public view returns (uint256); | |
/** | |
* @dev Get price of the underlying token expressed in currency token from Bancor | |
*/ | |
function getUnderlyingPrice() public view returns (uint256); | |
/** | |
* @dev Ability for writer to issue(underwrite) new contracts | |
* @param amount how many contracts to issue (in wei). | |
*/ | |
function issue(uint256 amount) public onlyIssuer returns (bool); | |
/** | |
* @dev Buyer can exercise the option anytime before the maturity. Buyer deposits currency(call) or underlying tokens(put). | |
*/ | |
function exercise() public returns (bool); | |
/** | |
* @dev Writer delivers the underlying tokens(call) or currency(put). | |
* @param to which buyer to deliver to. | |
*/ | |
function deliver(address to) public onlyIssuer returns (bool); | |
/** | |
* @dev Buyer can force liquidation if exercise is past due or reserve is below requirement | |
*/ | |
function forceLiquidate() public returns (bool); | |
/** | |
* @dev Writer can deposit additional reserve | |
* @param amount how much currency token to deposit. | |
*/ | |
function depositReserve(uint256 amount) public returns (bool); | |
/** | |
* @dev Writer can withdraw reserve | |
* @param amount how much currency token to withdraw. | |
*/ | |
function withdrawReserve(uint256 amount) public onlyIssuer returns (bool); | |
/** | |
* @dev Is reserve below the requirement? | |
*/ | |
function isReserveLow() public view returns (bool); | |
/** | |
* @dev Is option series expired? | |
*/ | |
function isExpired() public view returns (bool); | |
/** | |
* @dev Can option be liquidated? | |
*/ | |
function canLiquidate() public view returns (bool); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment