MoC

View Source: contracts/MoC.sol

↗ Extends: MoCEvents, MoCLibConnection, MoCBase, Stoppable, IMoC

MoC - version: 0.1.12

Contract Members

Constants & Variables

address internal docToken;

address internal bproToken;

contract MoCBProxManager internal bproxManager;

contract IMoCState internal mocState;

address internal DEPRECATED_mocConverter;

contract IMoCSettlement internal settlement;

contract IMoCExchange internal mocExchange;

contract IMoCInrate internal mocInrate;




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