RoC Stable Platform - Collateral RIF Token
  • Introduction
  • RIF On Chain platform
    • Main concepts
    • System states
    • Public actions
      • User actions
      • Process actions
    • Contracts architecture
      • MoC
      • CommissionSplitter
      • MoCState
      • MoCBucketContainer
      • MoCSettlement
      • MoCHelperLib
      • MoCLibConnection
      • MoCConverter
      • MoCExchange
      • MoCConnector
      • MoCRiskProxManager
      • MoCInrate
      • MoCVendors
      • MoCWhitelist
      • MoCBase
      • OwnerBurnableToken
      • RiskProToken
      • StableToken
      • MoCToken
      • PriceProvider
    • Contract mocks
    • Relevant patterns and choices
    • Data dictionary
    • Getting started
  • Integration with RoC platform
    • Introduction to RoC
      • The MoC Contract
      • RoC Precisions
      • RoC State Contracts
    • Getting RIFPros
      • Minting RIFPros
      • Redeeming RIFPros
    • Getting USDRIF
      • Minting USDRIF
      • Redeeming USDRIF
        • On Settlement: redeemStableTokenRequest
        • On Settlement: alterRedeemRequestAmount
        • Outside Settlement: redeemFreeStableToken
        • On Liquidation State: redeemAllStableToken
        • How-to
    • Commission fees values
    • Vendors
    • Fees calculation
    • From outside the blockchain
      • Using RSK nodes
      • Using web3
      • Official RIF On Chain ABIs
      • Events
      • Example code minting RIFPros
      • Example code minting RIFPros without Truffle
      • Example code redeeming RIFPros
      • Example code redeeming RIFPros without Truffle
      • Example code minting USDRIF
      • Example code redeeming free USDRIF
      • Example code redeeming USDRIF Request
      • Example code redeeming all USDRIF
  • Smart contracts
    • Contracts verification
    • ABIs documentation
      • Blockable
      • Blocker
      • ERC20Mintable
      • Governed
      • Initializable
      • MakeStoppable
      • MakeUnstoppable
      • MoC
      • MoCBucketContainer
      • MoCConnector
      • MoCConverter
      • MoCEMACalculator
      • MoCExchange
      • MoCHelperLib
      • MoCHelperLibMock
      • MoCInrate
      • MoCInrateRiskproxChanger
      • MoCLibConnection
      • MoCPriceProviderMock
      • MoCReserve
      • MoCRiskProxManager
      • MoCSettlement
      • MoCSettlementMock
      • MoCState
      • MoCStateMock
      • MoCToken
      • MoCVendors
      • MoCWhitelist
      • MocInrateStableChanger
      • MockBlocker
      • MockMakeStoppable
      • MockMakeUnstoppable
      • MockStopper
      • MockUpgradeDelegator
      • MockUpgraderTemplate
      • OwnerBurnableToken
      • Pausable
      • PriceFeed
      • PriceFeederAdder
      • PriceFeederRemover
      • PriceProvider
      • PriceProviderChanger
      • PriceProviderMock
      • ReserveToken
      • RiskProToken
      • StableToken
      • Stoppable
      • Stopper
      • UpgradeDelegator
      • UpgraderTemplate
Powered by GitBook
On this page
  • Structs
  • RedeemRequest
  • UserRedeemRequest
  • SettlementInfo
  • Contract Members
  • RedeemRequestAlter
  • RedeemRequestProcessed
  • SettlementRedeemStableToken
  • SettlementDeleveraging
  • SettlementStarted
  • SettlementCompleted
  • Modifiers
  • withinBoundaries
  • isTime
  • Functions
  • initialize
  • setBlockSpan
  • setSettlementToStall
  • restartSettlementState
  • getRedeemRequestAt
  • getBlockSpan
  • redeemQueueSize
  • isSettlementEnabled
  • isSettlementRunning
  • isSettlementReady
  • nextSettlementBlock
  • stableTokenAmountToRedeem
  • addRedeemRequest
  • clear
  • alterRedeemRequestAmount
  • runSettlement
  • fixTasksPointer
  • initializeContracts
  • initializeValues
  • deleveragingStepCount
  • stableTokenRedemptionStepCount
  • initializeSettlement
  • finishSettlement
  • finishDeleveraging
  • finishStableTokenRedemption
  • deleveragingStep
  • stableTokenRedemptionStep
  • initializeTasks
  1. Smart contracts
  2. ABIs documentation

MoCSettlement

PreviousMoCRiskProxManagerNextMoCSettlementMock

Last updated 3 years ago

View Source:

↗ Extends: , , , , ↘ Derived Contracts:

MoCSettlement - version: 0.1.10

Structs

RedeemRequest

struct RedeemRequest {
 address payable who,
 uint256 amount
}

UserRedeemRequest

struct UserRedeemRequest {
 uint256 index,
 bool activeRedeemer
}

SettlementInfo

struct SettlementInfo {
 uint256 reservePrice,
 uint256 riskProxPrice,
 uint256 stableTokenRedeemCount,
 uint256 deleveragingCount,
 uint256 riskProxAmount,
 uint256 partialCommissionAmount,
 uint256 finalCommissionAmount,
 uint256 leverage,
 uint256 startBlockNumber,
 bool isProtectedMode
}

Contract Members

Constants & Variables

bytes32 public constant StableToken_REDEMPTION_TASK;

bytes32 public constant DELEVERAGING_TASK;

bytes32 public constant SETTLEMENT_TASK;

contract IMoCState internal mocState;

contract IMoCExchange internal mocExchange;

contract StableToken internal stableToken;

contract MoCRiskProxManager internal riskProxManager;

uint256 internal lastProcessedBlock;

uint256 internal blockSpan;

struct MoCSettlement.SettlementInfo internal settlementInfo;

struct MoCSettlement.RedeemRequest[] private redeemQueue;

mapping(address => struct MoCSettlement.UserRedeemRequest) private redeemMapping;

uint256 private redeemQueueLength;

uint256[50] private upgradeGap;

RedeemRequestAlter

Parameters

Name
Type
Description

redeemer

address

isAddition

bool

delta

uint256

RedeemRequestProcessed

Parameters

Name
Type
Description

redeemer

address

commission

uint256

amount

uint256

SettlementRedeemStableToken

Parameters

Name
Type
Description

queueSize

uint256

accumCommissions

uint256

reservePrice

uint256

SettlementDeleveraging

Parameters

Name
Type
Description

leverage

uint256

riskProxPrice

uint256

reservePrice

uint256

startBlockNumber

uint256

SettlementStarted

Parameters

Name
Type
Description

stableTokenRedeemCount

uint256

deleveragingCount

uint256

riskProxPrice

uint256

reservePrice

uint256

SettlementCompleted

Parameters

Name
Type
Description

commissionsPayed

uint256

Modifiers

withinBoundaries

Verify that the index is smaller than the length of the redeem request queue

modifier withinBoundaries(uint256 _index) internal

Arguments

Name
Type
Description

_index

uint256

queue position to get

isTime

modifier isTime() internal

Arguments

Functions

initialize

Initializes the contract

function initialize(address connectorAddress, address _governor, uint256 _blockSpan) public nonpayable initializer 

Arguments

Name
Type
Description

connectorAddress

address

MoCConnector contract address

_governor

address

Governor contract address

_blockSpan

uint256

Blockspan configuration blockspan of settlement

setBlockSpan

Set the blockspan configuration blockspan of settlement

function setBlockSpan(uint256 bSpan) public nonpayable onlyAuthorizedChanger 

Arguments

Name
Type
Description

bSpan

uint256

setSettlementToStall

Set Settlement to be kept in finnished state after all execution is completed.

function setSettlementToStall() public nonpayable onlyAuthorizedChanger 

Arguments

restartSettlementState

Set Settlement state to Ready

function restartSettlementState() public nonpayable onlyAuthorizedChanger 

Arguments

getRedeemRequestAt

⤾ overrides IMoCSettlement.getRedeemRequestAt

Gets the RedeemRequest at the queue index position

function getRedeemRequestAt(uint256 _index) public view withinBoundaries 
returns(address payable, uint256)

Returns

redeemer's address and amount he submitted

Arguments

Name
Type
Description

_index

uint256

queue position to get

getBlockSpan

Gets the number of blocks the settlemnet will be allowed to run

function getBlockSpan() public view
returns(uint256)

Arguments

redeemQueueSize

⤾ overrides IMoCSettlement.redeemQueueSize

returns current redeem queue size

function redeemQueueSize() public view
returns(uint256)

Arguments

isSettlementEnabled

⤾ overrides IMoCSettlement.isSettlementEnabled

Returns true if blockSpan number of blocks has pass since last execution

function isSettlementEnabled() public view
returns(bool)

Arguments

isSettlementRunning

Returns true if the settlment is running

function isSettlementRunning() public view
returns(bool)

Arguments

isSettlementReady

⤾ overrides IMoCSettlement.isSettlementReady

Returns true if the settlment is ready

function isSettlementReady() public view
returns(bool)

Arguments

nextSettlementBlock

⤾ overrides IMoCSettlement.nextSettlementBlock

Returns the next block from which settlement is possible

function nextSettlementBlock() public view
returns(uint256)

Arguments

stableTokenAmountToRedeem

⤾ overrides IMoCSettlement.stableTokenAmountToRedeem

returns the total amount of StableTokens in the redeem queue for _who

function stableTokenAmountToRedeem(address _who) public view
returns(uint256)

Returns

total amount of StableTokens in the redeem queue for _who [using mocPrecision]

Arguments

Name
Type
Description

_who

address

address for which ^ is computed

addRedeemRequest

⤾ overrides IMoCSettlement.addRedeemRequest

push a new redeem request to the queue for the sender or updates the amount if the user has a redeem request

function addRedeemRequest(uint256 amount, address payable redeemer) public nonpayable onlyWhitelisted 

Arguments

Name
Type
Description

amount

uint256

amount he is willing to redeem [using mocPrecision]

redeemer

address payable

redeemer address

clear

empty the queue

function clear() public nonpayable onlyWhitelisted 

Arguments

alterRedeemRequestAmount

⤾ overrides IMoCSettlement.alterRedeemRequestAmount

Alters the redeem amount position for the redeemer

function alterRedeemRequestAmount(bool isAddition, uint256 delta, address redeemer) public nonpayable onlyWhitelisted 

Returns

the filled amount [using mocPrecision]

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 [using mocPrecision]

redeemer

address

address to alter amount for

runSettlement

⤾ overrides IMoCSettlement.runSettlement

Runs settlement process in steps

function runSettlement(uint256 steps) public nonpayable onlyWhitelisted isTime 
returns(uint256)

Returns

The commissions collected in the executed steps

Arguments

Name
Type
Description

steps

uint256

Amount of steps to run

fixTasksPointer

Create Task structures for Settlement execution

function fixTasksPointer() public nonpayable

Arguments

initializeContracts

function initializeContracts() internal nonpayable

Arguments

initializeValues

function initializeValues(address _governor, uint256 _blockSpan) internal nonpayable

Arguments

Name
Type
Description

_governor

address

_blockSpan

uint256

deleveragingStepCount

Returns the amount of steps for the Deleveraging task which is the amount of active RiskProx addresses

function deleveragingStepCount() internal view
returns(uint256)

Arguments

stableTokenRedemptionStepCount

Returns the amount of steps for the StableToken Redemption task which is the amount of redeem requests in the queue

function stableTokenRedemptionStepCount() internal view
returns(uint256)

Arguments

initializeSettlement

Freezes state for Settlement execution

function initializeSettlement() internal nonpayable

Arguments

finishSettlement

Execute final step of Settlement task group

function finishSettlement() internal nonpayable

Arguments

finishDeleveraging

Execute final step of Deleveraging task

function finishDeleveraging() internal nonpayable

Arguments

finishStableTokenRedemption

Execute final step of StableTokenRedemption task

function finishStableTokenRedemption() internal nonpayable

Arguments

deleveragingStep

Individual Deleveraging step to be executed in partial execution uint256 parameter needed for PartialExecution

function deleveragingStep(uint256 ) internal nonpayable

Arguments

Name
Type
Description

uint256

stableTokenRedemptionStep

Individual StableTokenRedemption step to be executed in partial execution

function stableTokenRedemptionStep(uint256 index) internal nonpayable

Arguments

Name
Type
Description

index

uint256

Step number currently in execution

initializeTasks

Create Task structures for Settlement execution

function initializeTasks() internal nonpayable

Arguments

⤿ Overridden Implementation(s):

contracts/MoCSettlement.sol
MoCSettlementEvents
MoCBase
PartialExecution
Governed
IMoCSettlement
MoCSettlementMock
withinBoundaries
isTime
initialize(address connectorAddress, address _governor, uint256 _blockSpan)
setBlockSpan(uint256 bSpan)
setSettlementToStall()
restartSettlementState()
getRedeemRequestAt(uint256 _index)
getBlockSpan()
redeemQueueSize()
isSettlementEnabled()
isSettlementRunning()
isSettlementReady()
nextSettlementBlock()
stableTokenAmountToRedeem(address _who)
addRedeemRequest(uint256 amount, address payable redeemer)
clear()
alterRedeemRequestAmount(bool isAddition, uint256 delta, address redeemer)
runSettlement(uint256 steps)
fixTasksPointer()
initializeContracts()
initializeValues(address _governor, uint256 _blockSpan)
deleveragingStepCount()
stableTokenRedemptionStepCount()
initializeSettlement()
finishSettlement()
finishDeleveraging()
finishStableTokenRedemption()
deleveragingStep(uint256 )
stableTokenRedemptionStep(uint256 index)
initializeTasks()
MoCSettlementMock.setBlockSpan