MoCState

View Source: contracts/MoCState.sol

↗ Extends: MoCLibConnection, MoCBase, MoCEMACalculator, IMoCState ↘ Derived Contracts: MoCStateMock

MoCState - version: 0.1.12

Structs

InitializeParams

struct InitializeParams {
 address connectorAddress,
 address governor,
 address btcPriceProvider,
 uint256 liq,
 uint256 utpdu,
 uint256 maxDiscRate,
 uint256 dayBlockSpan,
 uint256 ema,
 uint256 smoothFactor,
 uint256 emaBlockSpan,
 uint256 maxMintBPro,
 address mocPriceProvider,
 address mocTokenAddress,
 address mocVendorsAddress,
 bool liquidationEnabled,
 uint256 protected
}

Contract Members

Constants & Variables






















StateTransition

Parameters

Name
Type
Description

newState

enum IMoCState.States

BtcPriceProviderUpdated

Parameters

Name
Type
Description

oldAddress

address

newAddress

address

MoCPriceProviderUpdated

Parameters

Name
Type
Description

oldAddress

address

newAddress

address

MoCTokenChanged

Parameters

Name
Type
Description

mocTokenAddress

address

MoCVendorsChanged

Parameters

Name
Type
Description

mocVendorsAddress

address

Functions

initialize

⤿ Overridden Implementation(s): MoCStateMock.initialize

Initializes the contract

Arguments

Name
Type
Description

params

struct MoCState.InitializeParams

Params defined in InitializeParams struct

setMaxDiscountRate

Sets the max discount rate.

Arguments

Name
Type
Description

rate

uint256

Discount rate at liquidation level [using mocPrecision]

getMaxDiscountRate

Returns the value of the BPro max discount rate configuration param

Returns

bproMaxDiscountRate BPro max discount rate

Arguments

setDayBlockSpan

Defines how many blocks there are in a day

Arguments

Name
Type
Description

blockSpan

uint256

blocks there are in a day

setBtcPriceProvider

Sets a new BTCProvider contract

Arguments

Name
Type
Description

btcProviderAddress

address

address of the BTC price provider contract

getBtcPriceProvider

Gets the BTCPriceProviderAddress

Returns

address of the BTC price provider contract

Arguments

getDayBlockSpan

Gets how many blocks there are in a day

Returns

blocks there are in a day

Arguments

subtractRbtcFromSystem

⤾ overrides IMoCState.subtractRbtcFromSystem

Subtract the btc amount passed by parameter to the total Bitcoin Amount

Arguments

Name
Type
Description

btcAmount

uint256

Amount that will be subtract to rbtcInSystem

addToRbtcInSystem

⤾ overrides IMoCState.addToRbtcInSystem

btcAmount Add the btc amount passed by parameter to the total Bitcoin Amount

Arguments

Name
Type
Description

btcAmount

uint256

Amount that will be added to rbtcInSystem

bproTotalSupply

All BPros in circulation

Arguments

docTotalSupply

All docs in circulation

Arguments

cobj

Target coverage for complete system

Arguments

collateralRbtcInSystem

Amount of Bitcoins in the system excluding BTCx values and interests holdings

Arguments

globalCoverage

⤾ overrides IMoCState.globalCoverage

GLOBAL Coverage

Returns

coverage [using mocPrecision]

Arguments

lockedBitcoin

BUCKET lockedBitcoin

Returns

lockedBitcoin amount [using reservePrecision]

Arguments

Name
Type
Description

bucket

bytes32

Name of the bucket used

getRbtcInBitPro

Gets RBTC in BitPro within specified bucket

Returns

Bitcoin amount of BitPro in Bucket [using reservePrecision]

Arguments

Name
Type
Description

bucket

bytes32

Name of the bucket used

getRbtcRemainder

⤾ overrides IMoCState.getRbtcRemainder

Gets the RBTC in the contract that not corresponds to Doc collateral

Returns

RBTC remainder [using reservePrecision]

Arguments

coverage

⤾ overrides IMoCState.coverage

BUCKET Coverage

Returns

coverage [using coveragePrecision]

Arguments

Name
Type
Description

bucket

bytes32

Name of the bucket used

abundanceRatio

⤾ overrides IMoCState.abundanceRatio

Abundance ratio, receives tha amount of doc to use the value of doc0 and Doc total supply

Returns

abundance ratio [using mocPrecision]

Arguments

Name
Type
Description

doc0

uint256

currentAbundanceRatio

⤾ overrides IMoCState.currentAbundanceRatio

Relation between docs in bucket 0 and Doc total supply

Returns

abundance ratio [using mocPrecision]

Arguments

leverage

⤾ overrides IMoCState.leverage

BUCKET Leverage

Returns

coverage [using mocPrecision]

Arguments

Name
Type
Description

bucket

bytes32

Name of the bucket used

globalMaxDoc

GLOBAL maxDoc

Returns

abundance ratio [using mocPrecision]

Arguments

freeDoc

⤾ overrides IMoCState.freeDoc

Returns the amount of DoCs in bucket 0, that can be redeemed outside of settlement

Returns

amount of docs in bucket 0, that can be redeemed outside of settlement [using mocPrecision]

Arguments

maxDoc

BUCKET maxDoc

Returns

abundance ratio [using mocPrecision]

Arguments

Name
Type
Description

bucket

bytes32

globalMaxBPro

GLOBAL maxBPro

Returns

maxBPro for redeem [using reservePrecision]

Arguments

absoluteMaxDoc

⤾ overrides IMoCState.absoluteMaxDoc

ABSOLUTE maxDoc

Returns

maxDoc to issue [using mocPrecision]

Arguments

maxBPro

BUCKET maxBPro to redeem / mint

Returns

maxBPro for redeem [using mocPrecision]

Arguments

Name
Type
Description

bucket

bytes32

Name of the bucket used

maxBProx

âš  This has been deprecated since the Proposal to remove leveraged positions from the protocol was approved, however it is necessary to maintain the contracts and their documentation for legacy support.

GLOBAL max bprox to mint

Returns

maxBProx [using reservePrecision]

Arguments

Name
Type
Description

bucket

bytes32

Name of the bucket used

maxBProxBtcValue

âš  This has been deprecated since the Proposal to remove leveraged positions from the protocol was approved, however it is necessary to maintain the contracts and their documentation for legacy support.

⤾ overrides IMoCState.maxBProxBtcValue

GLOBAL max bprox to mint

Returns

maxBProx BTC value to mint [using reservePrecision]

Arguments

Name
Type
Description

bucket

bytes32

Name of the bucket used

absoluteMaxBPro

⤾ overrides IMoCState.absoluteMaxBPro

ABSOLUTE maxBPro

Returns

maxDoc to issue [using mocPrecision]

Arguments

maxBProWithDiscount

⤾ overrides IMoCState.maxBProWithDiscount

DISCOUNT maxBPro

Returns

maxBPro for mint with discount [using mocPrecision]

Arguments

globalLockedBitcoin

GLOBAL lockedBitcoin

Returns

lockedBitcoin amount [using reservePrecision]

Arguments

bproTecPrice

⤾ overrides IMoCState.bproTecPrice

BTC price of BPro

Returns

the BPro Tec Price [using reservePrecision]

Arguments

bucketBProTecPrice

⤾ overrides IMoCState.bucketBProTecPrice

BUCKET BTC price of BPro

Returns

the BPro Tec Price [using reservePrecision]

Arguments

Name
Type
Description

bucket

bytes32

Name of the bucket used

bucketBProTecPriceHelper

⤾ overrides IMoCState.bucketBProTecPriceHelper

BUCKET BTC price of BPro (helper)

Returns

the BPro Tec Price [using reservePrecision]

Arguments

Name
Type
Description

bucket

bytes32

Name of the bucket used

bproDiscountPrice

⤾ overrides IMoCState.bproDiscountPrice

BTC price of BPro with spot discount applied

Returns

the BPro Tec Price [using reservePrecision]

Arguments

bproUsdPrice

BPro USD PRICE

Returns

the BPro USD Price [using mocPrecision]

Arguments

maxBProxBProValue

âš  This has been deprecated since the Proposal to remove leveraged positions from the protocol was approved, however it is necessary to maintain the contracts and their documentation for legacy support.

GLOBAL max bprox to mint

Returns

max BPro allowed to be spent to mint BProx [using reservePrecision]

Arguments

Name
Type
Description

bucket

bytes32

Name of the bucket used

bproxBProPrice

âš  This has been deprecated since the Proposal to remove leveraged positions from the protocol was approved, however it is necessary to maintain the contracts and their documentation for legacy support.

BUCKET BProx price in BPro

Returns

BProx BPro Price [using mocPrecision]

Arguments

Name
Type
Description

bucket

bytes32

Name of the bucket used

bproSpotDiscountRate

⤾ overrides IMoCState.bproSpotDiscountRate

GLOBAL BTC Discount rate to apply to BProPrice.

Returns

BPro discount rate [using DISCOUNT_PRECISION].

Arguments

daysToSettlement

⤾ overrides IMoCState.daysToSettlement

⤿ Overridden Implementation(s): MoCStateMock.daysToSettlement

Calculates the number of days to next settlement based dayBlockSpan

Returns

days to next settlement

Arguments

blocksToSettlement

Calculates the number of blocks to settlement

Returns

Number of blocks to settlement

Arguments

isLiquidationReached

Verifies if forced liquidation is reached checking if globalCoverage <= liquidation (currently 1.04) and if liquidation is enabled

Returns

true if liquidation state is reached, false otherwise

Arguments

getLiquidationPrice

⤾ overrides IMoCState.getLiquidationPrice

Gets the price to use for doc redeem in a liquidation event

Returns

price to use for doc redeem in a liquidation event

Arguments

getBucketNBTC

⤾ overrides IMoCState.getBucketNBTC

Arguments

Name
Type
Description

bucket

bytes32

getBucketNBPro

Arguments

Name
Type
Description

bucket

bytes32

getBucketNDoc

Arguments

Name
Type
Description

bucket

bytes32

getBucketCobj

Arguments

Name
Type
Description

bucket

bytes32

getInrateBag

Arguments

Name
Type
Description

bucket

bytes32

getBcons

Arguments

getBitcoinPrice

⤾ overrides IMoCState.getBitcoinPrice

Arguments

calculateBitcoinMovingAverage

Arguments

getLiq

return the value of the liq threshold configuration param

Returns

liq threshold, currently 1.04

Arguments

setLiq

sets the value of the liq threshold configuration param

Arguments

Name
Type
Description

_liq

uint256

liquidation threshold

getUtpdu

return the value of the utpdu threshold configuration param

Returns

utpdu Universal TPro discount sales coverage threshold

Arguments

setUtpdu

sets the value of the utpdu threshold configuration param

Arguments

Name
Type
Description

_utpdu

uint256

Universal TPro discount sales coverage threshold

getPeg

returns the relation between DOC and dollar. By default it is 1.

Returns

peg relation between DOC and dollar

Arguments

setPeg

sets the relation between DOC and dollar. By default it is 1.

Arguments

Name
Type
Description

_peg

uint256

relation between DOC and dollar

getProtected

⤾ overrides IMoCState.getProtected

return the value of the protected threshold configuration param

Returns

protected threshold, currently 1.5

Arguments

setProtected

sets the value of the protected threshold configuration param

Arguments

Name
Type
Description

_protected

uint256

protected threshold

getLiquidationEnabled

returns if is liquidation enabled.

Returns

liquidationEnabled is liquidation enabled

Arguments

setLiquidationEnabled

returns if is liquidation enabled.

Arguments

Name
Type
Description

_liquidationEnabled

bool

is liquidation enabled

nextState

⤾ overrides IMoCState.nextState

Transitions to next state.

Arguments

setMaxMintBPro

Sets max mint BPro value

Arguments

Name
Type
Description

_maxMintBPro

uint256

[using mocPrecision]

getMaxMintBPro

return Max value posible to mint of BPro

Returns

maxMintBPro

Arguments

setMoCPriceProvider

Sets a new MoCProvider contract

Arguments

Name
Type
Description

mocProviderAddress

address

MoC price provider address

getMoCPriceProvider

Gets the MoCPriceProviderAddress

Returns

MoC price provider address

Arguments

getMoCPrice

⤾ overrides IMoCState.getMoCPrice

Gets the MoCPrice

Returns

MoC price

Arguments

bproToBtc

BTC equivalent for the amount of bpros given

Returns

total BTC Price of the amount BPros [using reservePrecision]

Arguments

Name
Type
Description

amount

uint256

Amount of BPro to calculate the total price

docsToBtc

⤾ overrides IMoCState.docsToBtc

Arguments

Name
Type
Description

docAmount

uint256

btcToDoc

⤾ overrides IMoCState.btcToDoc

Arguments

Name
Type
Description

btcAmount

uint256

bproxToBtc

âš  This has been deprecated since the Proposal to remove leveraged positions from the protocol was approved, however it is necessary to maintain the contracts and their documentation for legacy support.

⤾ overrides IMoCState.bproxToBtc

Arguments

Name
Type
Description

bproxAmount

uint256

bucket

bytes32

bproxToBtcHelper

âš  This has been deprecated since the Proposal to remove leveraged positions from the protocol was approved, however it is necessary to maintain the contracts and their documentation for legacy support.

Arguments

Name
Type
Description

bproxAmount

uint256

bucket

bytes32

btcToBProx

âš  This has been deprecated since the Proposal to remove leveraged positions from the protocol was approved, however it is necessary to maintain the contracts and their documentation for legacy support.

⤾ overrides IMoCState.btcToBProx

Arguments

Name
Type
Description

btcAmount

uint256

bucket

bytes32

setMoCToken

Sets the MoC token contract address

Arguments

Name
Type
Description

mocTokenAddress

address

MoC token contract address

getMoCToken

⤾ overrides IMoCState.getMoCToken

Gets the MoC token contract address

Returns

MoC token contract address

Arguments

setMoCVendors

Sets the MoCVendors contract address

Arguments

Name
Type
Description

mocVendorsAddress

address

MoCVendors contract address

getMoCVendors

⤾ overrides IMoCState.getMoCVendors

Gets the MoCVendors contract addfress

Returns

MoCVendors contract address

Arguments

setMoCTokenInternal

Sets the MoC token contract address (internal function)

Arguments

Name
Type
Description

mocTokenAddress

address

MoC token contract address

setMoCVendorsInternal

Sets the MoCVendors contract address (internal function)

Arguments

Name
Type
Description

mocVendorsAddress

address

MoCVendors contract address

setLiquidationPrice

Calculates price at liquidation event as the relation between the doc total supply and the amount of RBTC available to distribute

Arguments

initializeValues

Arguments

Name
Type
Description

_governor

address

_btcPriceProvider

address

_liq

uint256

_utpdu

uint256

_maxDiscRate

uint256

_dayBlockSpan

uint256

_maxMintBPro

uint256

_mocPriceProvider

address

_liquidationEnabled

bool

_protected

uint256

initializeContracts

Arguments

Name
Type
Description

_mocTokenAddress

address

_mocVendorsAddress

address

Last updated