BIOPset
Published in

BIOPset

Auditing BIOPset Smart Contracts. Photo by Kelly Sikkema on Unsplash

Audit Commissioned

The Commissioning

APP.sol - Approved price providers, a set of key value pairs mapping oracle addresses to RateCalcs addresses. Controlled/owned by the Settlement DAO (DelegatedGov) and utilized by BinaryOptions and EBOP20.

AdaptiveRateCalc.sol - A rate calculator offering mostly 1:1 rates based on the belief this is good for marketing. The default RateCalc that will be deployed and mapped to the first oracle approved in the APP.

BinaryOptions.sol - The main contract of the protocol. Allows traders to open trades, writers to underwrite them, and settlers to exercise/expire them. The quote currency is ETH. Controlled/owned by the Settlement DAO (DelegatedGov) and interfacing with APP, RateCalcs, UtilizationRewards, and GovProxy. Also keeps surface level record of utilization rewards owed to users.

DelegatedGov.sol - The Settlement DAO. From here those staking BIOP oversee every aspect of the protocol. This allows them to delegate power to governors who are able to update settings and replace contracts of the protocol. Controls the oracle/RateCalc pairs in the APP. Also controls the EBOP20Factory. Can be used to pay a percentage of all trading fees directly to those staking BIOP but doesn't by default. Interfaces with BinaryOptions, APP, EBOP20s, EBOP20Factory, GovProxy, LateStageBondingCurve, and Treasury.

GovProxy.sol - A helper contract that holds funds collected from trading fees in BinaryOptions or EBOP20s. Can be called by any $BIOP staker with any staked balance to transfer amassed ETH(not ERC20s) to the treasury or directly to stakers (decided beforehand by the Settlement DAO). Controlled/owned by the DelegatedGov. Interfaces with DelegatedGov and Treasury.

LateStageBondingCurve(LSBC.sol) - An AMM for $BIOP tokens. Not to be activated until after DEX rewards are complete. Controlled/owned by the DelegatedGov.

Treasury.sol - The treasury of funds amassed from trading fees and owned collectively by the Settlement DAO. This is separate from funds disperse directly to stakers which are held in the DelegatedGov until collected by the stakers. ERC20 fees are sent here directly and do not pass through the GovProxy. Can be used to send amassed funds to anywhere by a governor in the Settlement DAO. Controlled/owned by the DelegatedGov.

UtilizationRewards.sol - holds and then disperses funds to traders, settlers, and writers using BinaryOptions (but not EBOP20s). Designed to be used over multiple "epochs". Controlled/owned by the Settlement DAO. Interfaces with BinaryOptions. Users call a method on BinaryOptions to receive funds from the UtilizationRewards. The only direct calls to the UtilizationRewards are made by the Settlement DAO when depositing funds or updating contracts.

Vesting.sol - For vesting team tokens over the given period. There's no cliff. Once setup, only the claimant can call the relevant funds and is able to transfer the claimant roll to other addresses at their discretion. Does not interface with other contracts.

TieredVesting.sol - For vesting things like UtilizationReward tokens not activated yet. No cliff. Does not interface with other contracts.

Unlock.sol - For vesting things like LateStageBondingCurve tokens that activate all at once at a specific date. Does not interface with other contracts.

EBOP20/EBOP20.sol - ERC20 based binary options trading. Any fees it generates are sent directly to the Treasury. Created by EBOP20Factory. Controlled/owned by the Settlement DAO. Interfaces with APP.

EBOP20/EBOP20Factory.sol - Handles creation of new EBOP20 contracts. Controlled/owned by the Settlement DAO. Also contains a key value mapping of ERC20 addresses to EBOP20 addresses used by the Settlement DAO to determine if an EBOP20 exists for any arbitrary ERC20 already. Allows deactivation of a EBOP20 address.

Interfaces: (these are definitions of aspects that may have different implementations later on, like RateCalc):

interfaces/IEBOP20.sol - interface for EBOP20.

interfaces/IBinaryOptions.sol - interface for BinaryOptions.

interfaces/IAPP.sol - interface for APP.

interfaces/IUtilizationRewards.sol - Interface for UtilizationRewards.

interfaces/IRCD.sol - Interface for RateCalcs.

About Omniscia

About BIOPset

Further Reading

Additional Links

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store