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
  • RiskProxBalance
  • MoCBucket
  • Contract Members
  • BucketMovement
  • BucketCreation
  • BucketStateUpdate
  • Modifiers
  • onlyBaseBucket
  • bucketStateUpdate
  • Functions
  • getBucketNReserve
  • getBucketNRiskPro
  • getBucketNStableToken
  • getBucketCobj
  • getInrateBag
  • setBucketCobj
  • isBucketBase
  • isBucketEmpty
  • getActiveAddresses
  • getActiveAddressesCount
  • addValuesToBucket
  • substractValuesFromBucket
  • deliverInrate
  • recoverInrate
  • payInrate
  • moveResTokensAndStableTokens
  • liquidateBucket
  • emptyBucket
  • isAvailableBucket
  • clearBucketBalances
  • createBucket
  1. Smart contracts
  2. ABIs documentation

MoCBucketContainer

PreviousMoCNextMoCConnector

Last updated 1 year ago

View Source:

↗ Extends: , ↘ Derived Contracts:

MoCBucketContainer - version: 0.1.10

Structs

RiskProxBalance

âš  This has been deprecated since the from the protocol was approved, however it is necessary to maintain the contracts and their documentation for legacy support.

struct RiskProxBalance {
 uint256 value,
 uint256 index
}

MoCBucket

struct MoCBucket {
 bytes32 name,
 bool isBase,
 uint256 nStable,
 uint256 nRiskPro,
 uint256 nReserve,
 uint256 cobj,
 mapping(address => struct MoCBucketContainer.RiskProxBalance) riskProxBalances,
 address payable[] activeBalances,
 uint256 activeBalancesLength,
 uint256 inrateBag,
 bool available
}

Contract Members

Constants & Variables

mapping(bytes32 => struct MoCBucketContainer.MoCBucket) internal mocBuckets;

uint256[50] private upgradeGap;

BucketMovement

Parameters

Name
Type
Description

from

bytes32

to

bytes32

reserves

uint256

stableTokens

uint256

BucketCreation

Parameters

Name
Type
Description

name

bytes32

cobj

uint256

BucketStateUpdate

Parameters

Name
Type
Description

name

bytes32

nReserve

uint256

nStable

uint256

nRiskProx

uint256

inrateBag

uint256

Modifiers

onlyBaseBucket

modifier onlyBaseBucket(bytes32 bucket) internal

Arguments

Name
Type
Description

bucket

bytes32

bucketStateUpdate

modifier bucketStateUpdate(bytes32 bucket) internal

Arguments

Name
Type
Description

bucket

bytes32

Functions

getBucketNReserve

function getBucketNReserve(bytes32 bucket) public view
returns(uint256)

Arguments

Name
Type
Description

bucket

bytes32

getBucketNRiskPro

function getBucketNRiskPro(bytes32 bucket) public view
returns(uint256)

Arguments

Name
Type
Description

bucket

bytes32

getBucketNStableToken

function getBucketNStableToken(bytes32 bucket) public view
returns(uint256)

Arguments

Name
Type
Description

bucket

bytes32

getBucketCobj

function getBucketCobj(bytes32 bucket) public view
returns(uint256)

Arguments

Name
Type
Description

bucket

bytes32

getInrateBag

function getInrateBag(bytes32 bucket) public view
returns(uint256)

Arguments

Name
Type
Description

bucket

bytes32

setBucketCobj

Sets the objective coverage (cobj) on an specficied bucket.

function setBucketCobj(bytes32 _bucket, uint256 _cobj) public nonpayable onlyAuthorizedChanger 

Arguments

Name
Type
Description

_bucket

bytes32

_cobj

uint256

isBucketBase

returns true if the bucket is a base bucket

function isBucketBase(bytes32 bucket) public view
returns(bool)

Arguments

Name
Type
Description

bucket

bytes32

Name of the bucket*

isBucketEmpty

returns true if the bucket have stableTokens in it

function isBucketEmpty(bytes32 bucket) public view
returns(bool)

Arguments

Name
Type
Description

bucket

bytes32

Name of the bucket*

getActiveAddresses

Returns all the address that currently have riskProx position for this bucket

function getActiveAddresses(bytes32 bucket) public view
returns(address payable[])

Arguments

Name
Type
Description

bucket

bytes32

bucket of the active address

getActiveAddressesCount

Returns the number of addresses that currently have riskProx position for this bucket

function getActiveAddressesCount(bytes32 bucket) public view
returns(count uint256)

Arguments

Name
Type
Description

bucket

bytes32

bucket of the active address

addValuesToBucket

Add values to all variables of the bucket

function addValuesToBucket(bytes32 bucketName, uint256 reserveTokens, uint256 stableToken, uint256 riskProx) public nonpayable onlyWhitelisted 

Arguments

Name
Type
Description

bucketName

bytes32

Name of the bucket

reserveTokens

uint256

ReserveToken amount [using reservePrecision]

stableToken

uint256

StableToken amount [using mocPrecision]

riskProx

uint256

RiskProx amount [using mocPrecision]

substractValuesFromBucket

Substract values to all variables of the bucket

function substractValuesFromBucket(bytes32 bucketName, uint256 reserve, uint256 stableToken, uint256 riskProx) public nonpayable onlyWhitelisted 

Arguments

Name
Type
Description

bucketName

bytes32

Name of the bucket

reserve

uint256

ReserveToken amount [using reservePrecision]

stableToken

uint256

StableToken amount [using mocPrecision]

riskProx

uint256

RiskProx amount [using mocPrecision]

deliverInrate

Moves ReserveTokens from inrateBag to main ReserveTokens bucket bag

function deliverInrate(bytes32 bucketName, uint256 amount) public nonpayable onlyWhitelisted onlyBaseBucket bucketStateUpdate 

Arguments

Name
Type
Description

bucketName

bytes32

Name of the bucket to operate

amount

uint256

value to move from inrateBag to main bag [using reservePrecision]

recoverInrate

Removes Interests rate from Inrate bag

function recoverInrate(bytes32 bucketName, uint256 amount) public nonpayable onlyWhitelisted onlyBaseBucket bucketStateUpdate 
returns(uint256)

Returns

Retrieved value

Arguments

Name
Type
Description

bucketName

bytes32

Name of the bucket to operate

amount

uint256

value to move from inrateBag to main bag [using reservePrecision]

payInrate

Moves ReserveTokens from origin bucket to destination bucket inrateBag

function payInrate(bytes32 bucketName, uint256 reserveAmount) public nonpayable onlyWhitelisted onlyBaseBucket 

Arguments

Name
Type
Description

bucketName

bytes32

name of the bucket to from which takes

reserveAmount

uint256

value to add to main bag [using reservePrecision]

moveResTokensAndStableTokens

Move ReserveTokens and StableTokens from one bucket to another

function moveResTokensAndStableTokens(bytes32 from, bytes32 to, uint256 reserve, uint256 stableTokens) public nonpayable onlyWhitelisted bucketStateUpdate bucketStateUpdate 

Arguments

Name
Type
Description

from

bytes32

Name of bucket from where the ReserveTokens will be removed

to

bytes32

Name of bucket from where the ReserveTokens will be added

reserve

uint256

ReserveTokens amount [using reservePrecision]

stableTokens

uint256

StableTokens amount [using mocPrecision]*

liquidateBucket

Clears completely the origin bucket, removing all StableTokens, ReserveTokens and riskProxs

function liquidateBucket(bytes32 toLiquidate, bytes32 destination) public nonpayable onlyWhitelisted 

Arguments

Name
Type
Description

toLiquidate

bytes32

Bucket to be cleared out

destination

bytes32

Bucket that will receive the StableTokens and ReserveTokens

emptyBucket

Clears StableTokens and ReserveTokens from bucket origin and sends them to destination bucket

function emptyBucket(bytes32 origin, bytes32 destination) public nonpayable onlyWhitelisted 

Arguments

Name
Type
Description

origin

bytes32

Bucket to clear out

destination

bytes32

Destination bucket*

isAvailableBucket

checks if a bucket exists

function isAvailableBucket(bytes32 bucket) public view
returns(bool)

Arguments

Name
Type
Description

bucket

bytes32

name of the bucket

clearBucketBalances

Put all bucket RiskProx balances in zero

function clearBucketBalances(bytes32 bucketName) public nonpayable onlyWhitelisted 

Arguments

Name
Type
Description

bucketName

bytes32

Bucket to clear out

createBucket

Creates bucket

function createBucket(bytes32 name, uint256 cobj, bool isBase) internal nonpayable

Arguments

Name
Type
Description

name

bytes32

Name of the bucket

cobj

uint256

Target Coverage of the bucket

isBase

bool

Indicates if it is a base bucket (true) or not (false)

contracts/MoCBucketContainer.sol
MoCBase
Governed
MoCRiskProxManager
Proposal to remove leveraged positions
onlyBaseBucket
bucketStateUpdate
getBucketNReserve(bytes32 bucket)
getBucketNRiskPro(bytes32 bucket)
getBucketNStableToken(bytes32 bucket)
getBucketCobj(bytes32 bucket)
getInrateBag(bytes32 bucket)
setBucketCobj(bytes32 _bucket, uint256 _cobj)
isBucketBase(bytes32 bucket)
isBucketEmpty(bytes32 bucket)
getActiveAddresses(bytes32 bucket)
getActiveAddressesCount(bytes32 bucket)
addValuesToBucket(bytes32 bucketName, uint256 reserveTokens, uint256 stableToken, uint256 riskProx)
substractValuesFromBucket(bytes32 bucketName, uint256 reserve, uint256 stableToken, uint256 riskProx)
deliverInrate(bytes32 bucketName, uint256 amount)
recoverInrate(bytes32 bucketName, uint256 amount)
payInrate(bytes32 bucketName, uint256 reserveAmount)
moveResTokensAndStableTokens(bytes32 from, bytes32 to, uint256 reserve, uint256 stableTokens)
liquidateBucket(bytes32 toLiquidate, bytes32 destination)
emptyBucket(bytes32 origin, bytes32 destination)
isAvailableBucket(bytes32 bucket)
clearBucketBalances(bytes32 bucketName)
createBucket(bytes32 name, uint256 cobj, bool isBase)