MoCSettlement
View Source: contracts/MoCSettlement.sol
↗ Extends: MoCSettlementEvents, MoCBase, PartialExecution, Governed, IMoCSettlement ↘ Derived Contracts: MoCSettlementMock
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
redeemer
address
isAddition
bool
delta
uint256
RedeemRequestProcessed
Parameters
redeemer
address
commission
uint256
amount
uint256
SettlementRedeemStableToken
Parameters
queueSize
uint256
accumCommissions
uint256
reservePrice
uint256
SettlementDeleveraging
Parameters
leverage
uint256
riskProxPrice
uint256
reservePrice
uint256
startBlockNumber
uint256
SettlementStarted
Parameters
stableTokenRedeemCount
uint256
deleveragingCount
uint256
riskProxPrice
uint256
reservePrice
uint256
SettlementCompleted
Parameters
commissionsPayed
uint256
Modifiers
withinBoundaries
Verify that the index is smaller than the length of the redeem request queue
modifier withinBoundaries(uint256 _index) internal
Arguments
_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
connectorAddress
address
MoCConnector contract address
_governor
address
Governor contract address
_blockSpan
uint256
Blockspan configuration blockspan of settlement
setBlockSpan
⤿ Overridden Implementation(s): MoCSettlementMock.setBlockSpan
Set the blockspan configuration blockspan of settlement
function setBlockSpan(uint256 bSpan) public nonpayable onlyAuthorizedChanger
Arguments
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
_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
_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
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
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
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
_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
uint256
stableTokenRedemptionStep
Individual StableTokenRedemption step to be executed in partial execution
function stableTokenRedemptionStep(uint256 index) internal nonpayable
Arguments
index
uint256
Step number currently in execution
initializeTasks
Create Task structures for Settlement execution
function initializeTasks() internal nonpayable
Arguments
Last updated