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
enum IMoCState.States public state;
uint256 public dayBlockSpan;
uint256 public peg;
uint256 public bproMaxDiscountRate;
uint256 public liq;
uint256 public utpdu;
uint256 public rbtcInSystem;
uint256 public liquidationPrice;
bool public liquidationEnabled;
uint256 public protected;
uint256 public maxMintBPro;
contract PriceProvider internal btcPriceProvider;
contract IMoCSettlement internal mocSettlement;
address internal DEPRECATED_mocConverter;
contract DocToken internal docToken;
contract BProToken internal bproToken;
contract MoCBProxManager internal bproxManager;
contract PriceProvider internal mocPriceProvider;
contract MoCToken internal mocToken;
address internal mocVendors;
uint256[50] private upgradeGap;
StateTransition
Parameters
newState
enum IMoCState.States
BtcPriceProviderUpdated
Parameters
oldAddress
address
newAddress
address
MoCPriceProviderUpdated
Parameters
oldAddress
address
newAddress
address
MoCTokenChanged
Parameters
mocTokenAddress
address
MoCVendorsChanged
Parameters
mocVendorsAddress
address
Functions
initialize
⤿ Overridden Implementation(s): MoCStateMock.initialize
Initializes the contract
function initialize(struct MoCState.InitializeParams params) public nonpayable initializer
Arguments
params
struct MoCState.InitializeParams
Params defined in InitializeParams struct
setMaxDiscountRate
Sets the max discount rate.
function setMaxDiscountRate(uint256 rate) public nonpayable onlyAuthorizedChanger
Arguments
rate
uint256
Discount rate at liquidation level [using mocPrecision]
getMaxDiscountRate
Returns the value of the BPro max discount rate configuration param
function getMaxDiscountRate() public view
returns(uint256)
Returns
bproMaxDiscountRate BPro max discount rate
Arguments
setDayBlockSpan
Defines how many blocks there are in a day
function setDayBlockSpan(uint256 blockSpan) public nonpayable onlyAuthorizedChanger
Arguments
blockSpan
uint256
blocks there are in a day
setBtcPriceProvider
Sets a new BTCProvider contract
function setBtcPriceProvider(address btcProviderAddress) public nonpayable onlyAuthorizedChanger
Arguments
btcProviderAddress
address
address of the BTC price provider contract
getBtcPriceProvider
Gets the BTCPriceProviderAddress
function getBtcPriceProvider() public view
returns(address)
Returns
address of the BTC price provider contract
Arguments
getDayBlockSpan
Gets how many blocks there are in a day
function getDayBlockSpan() public view
returns(uint256)
Returns
blocks there are in a day
Arguments
subtractRbtcFromSystem
⤾ overrides IMoCState.subtractRbtcFromSystem
Subtract the btc amount passed by parameter to the total Bitcoin Amount
function subtractRbtcFromSystem(uint256 btcAmount) public nonpayable onlyWhitelisted
Arguments
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
function addToRbtcInSystem(uint256 btcAmount) public nonpayable onlyWhitelisted
Arguments
btcAmount
uint256
Amount that will be added to rbtcInSystem
bproTotalSupply
All BPros in circulation
function bproTotalSupply() public view
returns(uint256)
Arguments
docTotalSupply
All docs in circulation
function docTotalSupply() public view
returns(uint256)
Arguments
cobj
Target coverage for complete system
function cobj() public view
returns(uint256)
Arguments
collateralRbtcInSystem
Amount of Bitcoins in the system excluding BTCx values and interests holdings
function collateralRbtcInSystem() public view
returns(uint256)
Arguments
globalCoverage
⤾ overrides IMoCState.globalCoverage
GLOBAL Coverage
function globalCoverage() public view
returns(uint256)
Returns
coverage [using mocPrecision]
Arguments
lockedBitcoin
BUCKET lockedBitcoin
function lockedBitcoin(bytes32 bucket) public view
returns(uint256)
Returns
lockedBitcoin amount [using reservePrecision]
Arguments
bucket
bytes32
Name of the bucket used
getRbtcInBitPro
Gets RBTC in BitPro within specified bucket
function getRbtcInBitPro(bytes32 bucket) public view
returns(uint256)
Returns
Bitcoin amount of BitPro in Bucket [using reservePrecision]
Arguments
bucket
bytes32
Name of the bucket used
getRbtcRemainder
⤾ overrides IMoCState.getRbtcRemainder
Gets the RBTC in the contract that not corresponds to Doc collateral
function getRbtcRemainder() public view
returns(uint256)
Returns
RBTC remainder [using reservePrecision]
Arguments
coverage
⤾ overrides IMoCState.coverage
BUCKET Coverage
function coverage(bytes32 bucket) public view
returns(uint256)
Returns
coverage [using coveragePrecision]
Arguments
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
function abundanceRatio(uint256 doc0) public view
returns(uint256)
Returns
abundance ratio [using mocPrecision]
Arguments
doc0
uint256
currentAbundanceRatio
⤾ overrides IMoCState.currentAbundanceRatio
Relation between docs in bucket 0 and Doc total supply
function currentAbundanceRatio() public view
returns(uint256)
Returns
abundance ratio [using mocPrecision]
Arguments
leverage
⤾ overrides IMoCState.leverage
BUCKET Leverage
function leverage(bytes32 bucket) public view
returns(uint256)
Returns
coverage [using mocPrecision]
Arguments
bucket
bytes32
Name of the bucket used
globalMaxDoc
GLOBAL maxDoc
function globalMaxDoc() public view
returns(uint256)
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
function freeDoc() public view
returns(uint256)
Returns
amount of docs in bucket 0, that can be redeemed outside of settlement [using mocPrecision]
Arguments
maxDoc
BUCKET maxDoc
function maxDoc(bytes32 bucket) public view
returns(uint256)
Returns
abundance ratio [using mocPrecision]
Arguments
bucket
bytes32
globalMaxBPro
GLOBAL maxBPro
function globalMaxBPro() public view
returns(uint256)
Returns
maxBPro for redeem [using reservePrecision]
Arguments
absoluteMaxDoc
⤾ overrides IMoCState.absoluteMaxDoc
ABSOLUTE maxDoc
function absoluteMaxDoc() public view
returns(uint256)
Returns
maxDoc to issue [using mocPrecision]
Arguments
maxBPro
BUCKET maxBPro to redeem / mint
function maxBPro(bytes32 bucket) public view
returns(uint256)
Returns
maxBPro for redeem [using mocPrecision]
Arguments
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
function maxBProx(bytes32 bucket) public view
returns(uint256)
Returns
maxBProx [using reservePrecision]
Arguments
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
function maxBProxBtcValue(bytes32 bucket) public view
returns(uint256)
Returns
maxBProx BTC value to mint [using reservePrecision]
Arguments
bucket
bytes32
Name of the bucket used
absoluteMaxBPro
⤾ overrides IMoCState.absoluteMaxBPro
ABSOLUTE maxBPro
function absoluteMaxBPro() public view
returns(uint256)
Returns
maxDoc to issue [using mocPrecision]
Arguments
maxBProWithDiscount
⤾ overrides IMoCState.maxBProWithDiscount
DISCOUNT maxBPro
function maxBProWithDiscount() public view
returns(uint256)
Returns
maxBPro for mint with discount [using mocPrecision]
Arguments
globalLockedBitcoin
GLOBAL lockedBitcoin
function globalLockedBitcoin() public view
returns(uint256)
Returns
lockedBitcoin amount [using reservePrecision]
Arguments
bproTecPrice
⤾ overrides IMoCState.bproTecPrice
BTC price of BPro
function bproTecPrice() public view
returns(uint256)
Returns
the BPro Tec Price [using reservePrecision]
Arguments
bucketBProTecPrice
⤾ overrides IMoCState.bucketBProTecPrice
BUCKET BTC price of BPro
function bucketBProTecPrice(bytes32 bucket) public view
returns(uint256)
Returns
the BPro Tec Price [using reservePrecision]
Arguments
bucket
bytes32
Name of the bucket used
bucketBProTecPriceHelper
⤾ overrides IMoCState.bucketBProTecPriceHelper
BUCKET BTC price of BPro (helper)
function bucketBProTecPriceHelper(bytes32 bucket) public view
returns(uint256)
Returns
the BPro Tec Price [using reservePrecision]
Arguments
bucket
bytes32
Name of the bucket used
bproDiscountPrice
⤾ overrides IMoCState.bproDiscountPrice
BTC price of BPro with spot discount applied
function bproDiscountPrice() public view
returns(uint256)
Returns
the BPro Tec Price [using reservePrecision]
Arguments
bproUsdPrice
BPro USD PRICE
function bproUsdPrice() public view
returns(uint256)
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
function maxBProxBProValue(bytes32 bucket) public view
returns(uint256)
Returns
max BPro allowed to be spent to mint BProx [using reservePrecision]
Arguments
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
function bproxBProPrice(bytes32 bucket) public view
returns(uint256)
Returns
BProx BPro Price [using mocPrecision]
Arguments
bucket
bytes32
Name of the bucket used
bproSpotDiscountRate
⤾ overrides IMoCState.bproSpotDiscountRate
GLOBAL BTC Discount rate to apply to BProPrice.
function bproSpotDiscountRate() public view
returns(uint256)
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
function daysToSettlement() public view
returns(uint256)
Returns
days to next settlement
Arguments
blocksToSettlement
Calculates the number of blocks to settlement
function blocksToSettlement() public view
returns(uint256)
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
function isLiquidationReached() public view
returns(bool)
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
function getLiquidationPrice() public view
returns(uint256)
Returns
price to use for doc redeem in a liquidation event
Arguments
getBucketNBTC
⤾ overrides IMoCState.getBucketNBTC
function getBucketNBTC(bytes32 bucket) public view
returns(uint256)
Arguments
bucket
bytes32
getBucketNBPro
function getBucketNBPro(bytes32 bucket) public view
returns(uint256)
Arguments
bucket
bytes32
getBucketNDoc
function getBucketNDoc(bytes32 bucket) public view
returns(uint256)
Arguments
bucket
bytes32
getBucketCobj
function getBucketCobj(bytes32 bucket) public view
returns(uint256)
Arguments
bucket
bytes32
getInrateBag
function getInrateBag(bytes32 bucket) public view
returns(uint256)
Arguments
bucket
bytes32
getBcons
function getBcons() public view
returns(uint256)
Arguments
getBitcoinPrice
⤾ overrides IMoCState.getBitcoinPrice
function getBitcoinPrice() public view
returns(uint256)
Arguments
calculateBitcoinMovingAverage
function calculateBitcoinMovingAverage() public nonpayable
Arguments
getLiq
return the value of the liq threshold configuration param
function getLiq() public view
returns(uint256)
Returns
liq threshold, currently 1.04
Arguments
setLiq
sets the value of the liq threshold configuration param
function setLiq(uint256 _liq) public nonpayable onlyAuthorizedChanger
Arguments
_liq
uint256
liquidation threshold
getUtpdu
return the value of the utpdu threshold configuration param
function getUtpdu() public view
returns(uint256)
Returns
utpdu Universal TPro discount sales coverage threshold
Arguments
setUtpdu
sets the value of the utpdu threshold configuration param
function setUtpdu(uint256 _utpdu) public nonpayable onlyAuthorizedChanger
Arguments
_utpdu
uint256
Universal TPro discount sales coverage threshold
getPeg
returns the relation between DOC and dollar. By default it is 1.
function getPeg() public view
returns(uint256)
Returns
peg relation between DOC and dollar
Arguments
setPeg
sets the relation between DOC and dollar. By default it is 1.
function setPeg(uint256 _peg) public nonpayable onlyAuthorizedChanger
Arguments
_peg
uint256
relation between DOC and dollar
getProtected
⤾ overrides IMoCState.getProtected
return the value of the protected threshold configuration param
function getProtected() public view
returns(uint256)
Returns
protected threshold, currently 1.5
Arguments
setProtected
sets the value of the protected threshold configuration param
function setProtected(uint256 _protected) public nonpayable onlyAuthorizedChanger
Arguments
_protected
uint256
protected threshold
getLiquidationEnabled
returns if is liquidation enabled.
function getLiquidationEnabled() public view
returns(bool)
Returns
liquidationEnabled is liquidation enabled
Arguments
setLiquidationEnabled
returns if is liquidation enabled.
function setLiquidationEnabled(bool _liquidationEnabled) public nonpayable onlyAuthorizedChanger
Arguments
_liquidationEnabled
bool
is liquidation enabled
nextState
⤾ overrides IMoCState.nextState
Transitions to next state.
function nextState() public nonpayable
Arguments
setMaxMintBPro
Sets max mint BPro value
function setMaxMintBPro(uint256 _maxMintBPro) public nonpayable onlyAuthorizedChanger
Arguments
_maxMintBPro
uint256
[using mocPrecision]
getMaxMintBPro
return Max value posible to mint of BPro
function getMaxMintBPro() public view
returns(uint256)
Returns
maxMintBPro
Arguments
setMoCPriceProvider
Sets a new MoCProvider contract
function setMoCPriceProvider(address mocProviderAddress) public nonpayable onlyAuthorizedChanger
Arguments
mocProviderAddress
address
MoC price provider address
getMoCPriceProvider
Gets the MoCPriceProviderAddress
function getMoCPriceProvider() public view
returns(address)
Returns
MoC price provider address
Arguments
getMoCPrice
⤾ overrides IMoCState.getMoCPrice
Gets the MoCPrice
function getMoCPrice() public view
returns(uint256)
Returns
MoC price
Arguments
bproToBtc
BTC equivalent for the amount of bpros given
function bproToBtc(uint256 amount) public view
returns(uint256)
Returns
total BTC Price of the amount BPros [using reservePrecision]
Arguments
amount
uint256
Amount of BPro to calculate the total price
docsToBtc
⤾ overrides IMoCState.docsToBtc
function docsToBtc(uint256 docAmount) public view
returns(uint256)
Arguments
docAmount
uint256
btcToDoc
⤾ overrides IMoCState.btcToDoc
function btcToDoc(uint256 btcAmount) public view
returns(uint256)
Arguments
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
function bproxToBtc(uint256 bproxAmount, bytes32 bucket) public view
returns(uint256)
Arguments
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.
function bproxToBtcHelper(uint256 bproxAmount, bytes32 bucket) internal view
returns(uint256)
Arguments
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
function btcToBProx(uint256 btcAmount, bytes32 bucket) public view
returns(uint256)
Arguments
btcAmount
uint256
bucket
bytes32
setMoCToken
Sets the MoC token contract address
function setMoCToken(address mocTokenAddress) public nonpayable onlyAuthorizedChanger
Arguments
mocTokenAddress
address
MoC token contract address
getMoCToken
⤾ overrides IMoCState.getMoCToken
Gets the MoC token contract address
function getMoCToken() public view
returns(address)
Returns
MoC token contract address
Arguments
setMoCVendors
Sets the MoCVendors contract address
function setMoCVendors(address mocVendorsAddress) public nonpayable onlyAuthorizedChanger
Arguments
mocVendorsAddress
address
MoCVendors contract address
getMoCVendors
⤾ overrides IMoCState.getMoCVendors
Gets the MoCVendors contract addfress
function getMoCVendors() public view
returns(address)
Returns
MoCVendors contract address
Arguments
setMoCTokenInternal
Sets the MoC token contract address (internal function)
function setMoCTokenInternal(address mocTokenAddress) internal nonpayable
Arguments
mocTokenAddress
address
MoC token contract address
setMoCVendorsInternal
Sets the MoCVendors contract address (internal function)
function setMoCVendorsInternal(address mocVendorsAddress) internal nonpayable
Arguments
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
function setLiquidationPrice() internal nonpayable
Arguments
initializeValues
function initializeValues(address _governor, address _btcPriceProvider, uint256 _liq, uint256 _utpdu, uint256 _maxDiscRate, uint256 _dayBlockSpan, uint256 _maxMintBPro, address _mocPriceProvider, bool _liquidationEnabled, uint256 _protected) internal nonpayable
Arguments
_governor
address
_btcPriceProvider
address
_liq
uint256
_utpdu
uint256
_maxDiscRate
uint256
_dayBlockSpan
uint256
_maxMintBPro
uint256
_mocPriceProvider
address
_liquidationEnabled
bool
_protected
uint256
initializeContracts
function initializeContracts(address _mocTokenAddress, address _mocVendorsAddress) internal nonpayable
Arguments
_mocTokenAddress
address
_mocVendorsAddress
address
Last updated