MoC
View Source: contracts/MoC.sol
↗ Extends: MoCEvents, MoCLibConnection, MoCBase, Stoppable, IMoC
MoC - version: 0.1.12
Contract Members
Constants & Variables
BucketLiquidation
Parameters
Name | Type | Description |
---|---|---|
bucket | bytes32 |
ContractLiquidated
Parameters
Name | Type | Description |
---|---|---|
mocAddress | address |
Modifiers
whenSettlementReady
Arguments
atState
Arguments
Name | Type | Description |
---|---|---|
_state | enum IMoCState.States |
atLeastState
Arguments
Name | Type | Description |
---|---|---|
_state | enum IMoCState.States |
atMostState
Arguments
Name | Type | Description |
---|---|---|
_state | enum IMoCState.States |
notInProtectionMode
Arguments
bucketStateTransition
Arguments
Name | Type | Description |
---|---|---|
bucket | bytes32 |
availableBucket
Arguments
Name | Type | Description |
---|---|---|
bucket | bytes32 |
notBaseBucket
Arguments
Name | Type | Description |
---|---|---|
bucket | bytes32 |
transitionState
Arguments
Functions
⤾ overrides IMoC.
Fallback function
Arguments
initialize
Initializes the contract
Arguments
Name | Type | Description |
---|---|---|
connectorAddress | address | MoCConnector contract address |
governorAddress | address | Governor contract address |
stopperAddress | address | Stopper contract address |
startStoppable | bool | Indicates if the contract starts being unstoppable or not |
bproxBalanceOf
⚠ 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.
Gets the BProx balance of an address
Returns
BProx balance of the address
Arguments
Name | Type | Description |
---|---|---|
bucket | bytes32 | Name of the bucket |
account | address | Address |
getRedeemRequestAt
Gets the RedeemRequest at the queue index position
Returns
redeemer's address and amount he submitted
Arguments
Name | Type | Description |
---|---|---|
index | uint256 | queue position to get |
redeemQueueSize
Returns current redeem queue size
Returns
redeem queue size
Arguments
docAmountToRedeem
Returns the total amount of Docs in the redeem queue for redeemer
Returns
total amount of Docs in the redeem queue for redeemer
Arguments
Name | Type | Description |
---|---|---|
redeemer | address | address for which ^ is computed |
redeemDocRequest
Creates or updates the amount of a Doc redeem Request from the msg.sender
Arguments
Name | Type | Description |
---|---|---|
docAmount | uint256 | Amount of Docs to redeem on settlement [using mocPrecision] |
alterRedeemRequestAmount
Alters the redeem amount position for the redeemer
Arguments
Name | Type | Description |
---|---|---|
isAddition | bool | true if adding amount to redeem, false to substract. |
delta | uint256 | the amount to add/substract to current position |
mintBPro
Mints BPRO and pays the comissions of the operation (retrocompatible function).
Arguments
Name | Type | Description |
---|---|---|
btcToMint | uint256 | Amount in BTC to mint |
mintBProVendors
Mints BPRO and pays the comissions of the operation.
Arguments
Name | Type | Description |
---|---|---|
btcToMint | uint256 | Amount in BTC to mint |
vendorAccount | address payable | Vendor address |
redeemBPro
Redeems Bpro Tokens and pays the comissions of the operation (retrocompatible function).
Arguments
Name | Type | Description |
---|---|---|
bproAmount | uint256 | Amount in Bpro |
redeemBProVendors
Redeems Bpro Tokens and pays the comissions of the operation
Arguments
Name | Type | Description |
---|---|---|
bproAmount | uint256 | Amount in Bpro |
vendorAccount | address payable | Vendor address |
mintDoc
Mint Doc tokens and pays the commisions of the operation (retrocompatible function).
Arguments
Name | Type | Description |
---|---|---|
btcToMint | uint256 | Amount in RBTC to mint |
mintDocVendors
Mint Doc tokens and pays the commisions of the operation
Arguments
Name | Type | Description |
---|---|---|
btcToMint | uint256 | Amount in RBTC to mint |
vendorAccount | address payable | Vendor address |
redeemBProx
⚠ 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.
Redeems Bprox Tokens and pays the comissions of the operation in RBTC (retrocompatible function).
Arguments
Name | Type | Description |
---|---|---|
bucket | bytes32 | Bucket to reedem, for example X2 |
bproxAmount | uint256 | Amount in Bprox |
redeemBProxVendors
⚠ 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.
Redeems Bprox Tokens and pays the comissions of the operation in RBTC
Arguments
Name | Type | Description |
---|---|---|
bucket | bytes32 | Bucket to reedem, for example X2 |
bproxAmount | uint256 | Amount in Bprox |
vendorAccount | address payable | Vendor address |
mintBProx
⚠ 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.
⚠ See the approved technical proposal to understand how the behavior of this function has changed.
BUCKET bprox minting (retrocompatible function).
Arguments
Name | Type | Description |
---|---|---|
bucket | bytes32 | Name of the bucket used |
btcToMint | uint256 | amount to mint on RBTC |
mintBProxVendors
⚠ 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.
⚠ See the approved technical proposal to understand how the behavior of this function has changed.
BUCKET bprox minting
Arguments
Name | Type | Description |
---|---|---|
bucket | bytes32 | Name of the bucket used |
btcToMint | uint256 | amount to mint on RBTC |
vendorAccount | address payable | Vendor address |
redeemFreeDoc
Redeems the requested amount for the msg.sender, or the max amount of free docs possible (retrocompatible function).
Arguments
Name | Type | Description |
---|---|---|
docAmount | uint256 | Amount of Docs to redeem. |
redeemFreeDocVendors
Redeems the requested amount for the msg.sender, or the max amount of free docs possible.
Arguments
Name | Type | Description |
---|---|---|
docAmount | uint256 | Amount of Docs to redeem. |
vendorAccount | address payable | Vendor address |
redeemAllDoc
Allow redeem on liquidation state, user DoCs get burned and he receives the equivalent BTCs if can be covered, or the maximum available
Arguments
dailyInratePayment
Moves the daily amount of interest rate to C0 bucket
Arguments
payBitProHoldersInterestPayment
Pays the BitPro interest and transfers it to the address mocInrate.bitProInterestAddress BitPro interests = Nb (bucket 0) * bitProRate.
Arguments
calculateBitProHoldersInterest
Calculates BitPro holders holder interest by taking the total amount of RBTCs available on Bucket 0. BitPro interests = Nb (bucket 0) * bitProRate.
Arguments
getBitProInterestAddress
Gets the target address to transfer BitPro Holders rate
Returns
Target address to transfer BitPro Holders interest
Arguments
getBitProRate
Gets the rate for BitPro Holders
Returns
BitPro Rate
Arguments
getBitProInterestBlockSpan
Gets the blockspan of BPRO that represents the frecuency of BitPro holders interest payment
Returns
returns power of bitProInterestBlockSpan
Arguments
isDailyEnabled
Arguments
isBitProInterestEnabled
Arguments
isSettlementEnabled
Indicates if settlement is enabled
Returns
Returns true if blockSpan number of blocks has passed since last execution; otherwise false
Arguments
isBucketLiquidationReached
Checks if bucket liquidation is reached.
Returns
true if bucket liquidation is reached, false otherwise
Arguments
Name | Type | Description |
---|---|---|
bucket | bytes32 | Name of bucket. |
evalBucketLiquidation
Arguments
Name | Type | Description |
---|---|---|
bucket | bytes32 |
evalLiquidation
Evaluates if liquidation state has been reached and runs liq if that's the case
Arguments
runSettlement
Runs all settlement process
Arguments
Name | Type | Description |
---|---|---|
steps | uint256 | Number of steps |
sendToAddress
⤾ overrides IMoC.sendToAddress
Send RBTC to a user and update RbtcInSystem in MoCState
Returns
result of the transaction
Arguments
Name | Type | Description |
---|---|---|
receiver | address payable | address of receiver |
btcAmount | uint256 | amount to transfer |
liquidate
Arguments
transferCommissions
Transfer mint operation fees (commissions + vendor markup)
Arguments
Name | Type | Description |
---|---|---|
sender | address payable | address of msg.sender |
value | uint256 | amount of msg.value |
totalBtcSpent | uint256 | amount in RBTC spent |
btcCommission | uint256 | commission amount in RBTC |
mocCommission | uint256 | commission amount in MoC |
vendorAccount | address payable | address of vendor |
btcMarkup | uint256 | vendor markup in RBTC |
mocMarkup | uint256 | vendor markup in MoC |
transferMocCommission
Transfer operation fees in MoC (commissions + vendor markup)
Arguments
Name | Type | Description |
---|---|---|
sender | address | address of msg.sender |
mocCommission | uint256 | commission amount in MoC |
vendorAccount | address | address of vendor |
mocMarkup | uint256 | vendor markup in MoC |
redeemWithCommission
Transfer redeem operation fees (commissions + vendor markup)
Arguments
Name | Type | Description |
---|---|---|
sender | address payable | address of msg.sender |
btcAmount | uint256 | |
btcCommission | uint256 | commission amount in RBTC |
mocCommission | uint256 | commission amount in MoC |
vendorAccount | address payable | address of vendor |
btcMarkup | uint256 | vendor markup in RBTC |
mocMarkup | uint256 | vendor markup in MoC |
transferBtcCommission
Transfer operation fees in RBTC (commissions + vendor markup)
Arguments
Name | Type | Description |
---|---|---|
vendorAccount | address payable | address of vendor |
btcCommission | uint256 | commission amount in RBTC |
btcMarkup | uint256 | vendor markup in RBTC |
doTransfer
Transfer using transfer function and updates global RBTC register in MoCState
Arguments
Name | Type | Description |
---|---|---|
receiver | address payable | address of receiver |
btcAmount | uint256 | amount in RBTC |
doSend
Transfer using send function and updates global RBTC register in MoCState
Returns
Execution result
Arguments
Name | Type | Description |
---|---|---|
receiver | address payable | address of receiver |
btcAmount | uint256 | amount in RBTC |
Last updated