OCE_ZVE.sol
OCE -> On-Chain Emissions ($ZVE, Exponential Decay)
Last updated
OCE -> On-Chain Emissions ($ZVE, Exponential Decay)
Last updated
Zivoe Finance - Official Documentation
This contract facilitates an exponential decay emissions schedule for $ZVE.
This contract has the following responsibilities:
Handles accounting (with governable variables) to support emissions schedule.
Forwards $ZVE to all ZivoeRewards contracts at will (stZVE, stSTT, stJTT).
canPush() - Permission for owner to call pushToLocker()
. See ZivoeLocker.sol
canPull() - Permission for owner to call pullFromLocker()
. See ZivoeLocker.sol
canPullPartial() - Permission for owner to call pullFromLockerPartial()
. See ZivoeLocker.sol
decay() - Returns the amount remaining after a decay.
rmul() - Multiplies two variables and returns value, truncated by RAY precision.
rpow() - rpow(uint256 x, uint256 n, uint256 b)
, used for exponentiation in drip
pushToLocker() - Allocates ZVE from the DAO to this locker for emissions.
forwardEmissions() - Forwards $ZVE available for distribution.
updateDistributionRatioBIPS() - Updates the distribution between rewards contract, in BIPS.
updateExponentialDecayPerSecond() - Updates the exponentialDecayPerSecond variable with provided input.
canPush()
Permission for owner to call pushToLocker()
. See ZivoeLocker.sol
canPull()
Permission for owner to call pullFromLocker()
. See ZivoeLocker.sol
canPullPartial()
Permission for owner to call pullFromLockerPartial()
. See ZivoeLocker.sol
decay()
Returns the amount remaining after a decay.
Returns
rmul()
Multiplies two variables and returns value, truncated by RAY precision.
Returns
rpow()
rpow(uint256 x, uint256 n, uint256 b)
, used for exponentiation in drip, is a fixed-point arithmetic function that raises x to the power n. It is implemented in Solidity assembly as a repeated squaring algorithm. x and the returned value are to be interpreted as fixed-point integers with scaling factor b. For example, if b == 100, this specifies two decimal digits of precision and the normal decimal value 2.1 would be represented as 210; rpow(210, 2, 100) returns 441 (the two-decimal digit fixed-point representation of 2.1^2 = 4.41). In the current implementation, 10^27 is passed for b, making x and the rpow result both of type RAY in standard MCD fixed-point terminology. rpow's formal invariants include "no overflow" as well as constraints on gas usage.
Returns
pushToLocker()
Allocates ZVE from the DAO to this locker for emissions.
forwardEmissions()
Forwards $ZVE available for distribution.
Emits the EmissionsForwarded() event.
updateDistributionRatioBIPS()
Updates the distribution between rewards contract, in BIPS.
Emits the UpdatedDistributionRatioBIPS() event.
updateExponentialDecayPerSecond()
Updates the exponentialDecayPerSecond variable with provided input.
Emits the UpdatedExponentialDecayPerSecond() event.
UpdatedDistributionRatioBIPS()
Emitted during updateDistributionRatioBIPS()
EmissionsForwarded()
Emitted during forwardEmissions()
UpdatedExponentialDecayPerSecond()
Emitted during updateExponentialDecayPerSecond()
Type | Name | Description |
---|---|---|
Type | Name | Description |
---|---|---|
Type | Name | Description |
---|---|---|
Type | Name | Description |
---|---|---|
Type | Name | Description |
---|---|---|
Type | Name | Description |
---|---|---|
Type | Name | Description |
---|---|---|
Type | Name | Description |
---|---|---|
Type | Name | Description |
---|---|---|
Type | Name | Description |
---|---|---|
Type | Indexed | Name | Description |
---|---|---|---|
Type | Indexed | Name | Description |
---|---|---|---|
Type | Indexed | Name | Description |
---|---|---|---|
address
GBL
The ZivoeGlobals contract.
uint256
exponentialDecayPerSecond
The rate of decay per second.
uint256
lastDistribution
The block.timestamp value of last distribution.
uint256[3]
distributionRatioBIPS
Determines distribution between rewards contract, in BIPS.
distributionRatioBIPS[0] => stZVE
distributionRatioBIPS[1] => stSTT
distributionRatioBIPS[2] => stJTT
uint256
BIPS
Private constant, 10000
uint256
RAY
Private constant, 10**27
uint256
top
The amount decaying.
uint256
dur
The seconds of decay.
uint256
n/a
The amount remaining after a decay.
uint256
x
First value to multiply.
uint256
y
Second value to multiply.
uint256
z
Resulting value of x * y, truncated by RAY precision.
uint256
x
The base value.
uint256
n
The power to raise "x" by.
uint256
b
The scaling factor, a.k.a. resulting precision of "z".
uint256
z
Resulting value of x^n, scaled by factor b.
address
asset
The asset to push to this locker (in this case $ZVE).
uint256
amount
The amount of $ZVE to push to this locker.
bytes
data
Accompanying transaction data.
uint256[3]
_distributionRatioBIPS
The updated values for the state variable distributionRatioBIPS.
uint256
_exponentialDecayPerSecond
The updated value for exponentialDecayPerSecond state variable.
uint256[3]
False
oldRatios
The old distribution ratios.
uint256[3]
False
newRatios
The new distribution ratios.
uint256
False
stZVE
The amount of $ZVE emitted to the $ZVE rewards contract.
uint256
False
stJTT
The amount of $ZVE emitted to the $zJTT rewards contract.
uint256
False
stSTT
The amount of $ZVE emitted to the $zSTT rewards contract.
uint256
False
oldValue
The old value of exponentialDecayPerSecond.
uint256
False
newValue
The new value of exponentialDecayPerSecond.