ERC20Allocator
Methods
CONTRACT_ADMIN_ROLE
function CONTRACT_ADMIN_ROLE() external view returns (bytes32)
a role used with a subset of governor permissions for this contract only
Returns
Name | Type | Description |
---|
_0 | bytes32 | undefined |
MAX_RATE_LIMIT_PER_SECOND
function MAX_RATE_LIMIT_PER_SECOND() external view returns (uint256)
maximum rate limit per second governance can set for this contract
Returns
Name | Type | Description |
---|
_0 | uint256 | undefined |
allPSMs
function allPSMs(address) external view returns (address token, uint248 targetBalance, int8 decimalsNormalizer)
map the psm address to the corresponding target balance information excess tokens past target balance will be pulled from the PSM if PSM has less than the target balance, tokens will be sent to the PSM
Parameters
Name | Type | Description |
---|
_0 | address | undefined |
Returns
Name | Type | Description |
---|
token | address | undefined |
targetBalance | uint248 | undefined |
decimalsNormalizer | int8 | undefined |
buffer
function buffer() external view returns (uint256)
the amount of action used before hitting limit
replenishes at rateLimitPerSecond per second up to bufferCap
Returns
Name | Type | Description |
---|
_0 | uint256 | undefined |
bufferCap
function bufferCap() external view returns (uint128)
the cap of the buffer that can be used at once
Returns
Name | Type | Description |
---|
_0 | uint128 | undefined |
bufferStored
function bufferStored() external view returns (uint224)
the buffer at the timestamp of lastBufferUsedTime
Returns
Name | Type | Description |
---|
_0 | uint224 | undefined |
checkActionAllowed
function checkActionAllowed(address pcvDeposit) external view returns (bool)
returns whether an action is allowed returns false when paused
Parameters
Name | Type | Description |
---|
pcvDeposit | address | undefined |
Returns
Name | Type | Description |
---|
_0 | bool | undefined |
checkDripCondition
function checkDripCondition(address pcvDeposit) external view returns (bool)
function that returns whether the amount of tokens held are below the target and funds should flow from PCV Deposit -> PSM returns false when paused
Parameters
Name | Type | Description |
---|
pcvDeposit | address | pcv deposit whose corresponding peg stability module to check drip condition |
Returns
Name | Type | Description |
---|
_0 | bool | undefined |
checkSkimCondition
function checkSkimCondition(address pcvDeposit) external view returns (bool)
function that returns whether the amount of tokens held are above the target and funds should flow from PSM -> PCV Deposit returns false when paused
Parameters
Name | Type | Description |
---|
pcvDeposit | address | undefined |
Returns
Name | Type | Description |
---|
_0 | bool | undefined |
connectDeposit
function connectDeposit(address psm, address pcvDeposit) external nonpayable
function to connect deposit to a PSM this then allows the pulling of funds between the deposit and the PSM permissionlessly as defined by the target balance set in allPSM's this function does not check if the pcvDepositToPSM has already been connected as only the governor can call and create, and overwriting with the same data (no op) is fine
Parameters
Name | Type | Description |
---|
psm | address | peg stability module |
pcvDeposit | address | deposit to connect to psm |
connectPSM
function connectPSM(address psm, uint248 targetBalance, int8 decimalsNormalizer) external nonpayable
connect a new PSM
Parameters
Name | Type | Description |
---|
psm | address | Peg Stability Module to add |
targetBalance | uint248 | target amount of tokens for the PSM to hold |
decimalsNormalizer | int8 | decimal normalizer to ensure buffer is depleted and replenished properly |
core
function core() external view returns (contract ICore)
address of the Core contract referenced
Returns
Name | Type | Description |
---|
_0 | contract ICore | ICore implementation address |
deleteDeposit
function deleteDeposit(address pcvDeposit) external nonpayable
delete an existing deposit
Parameters
Name | Type | Description |
---|
pcvDeposit | address | PCV Deposit to remove connection to PSM |
disconnectPSM
function disconnectPSM(address psm) external nonpayable
disconnect an existing deposit from the allocator
Parameters
Name | Type | Description |
---|
psm | address | Peg Stability Module to remove from allocation |
doAction
function doAction(address pcvDeposit) external nonpayable
does an action if any are available
Parameters
Name | Type | Description |
---|
pcvDeposit | address | whose corresponding peg stability module action will be run on |
drip
function drip(address pcvDeposit) external nonpayable
push ERC20 tokens to PSM by pulling from a PCV deposit flow of funds: PCV Deposit -> PSM
Parameters
Name | Type | Description |
---|
pcvDeposit | address | to pull funds from and send to corresponding PSM |
editPSMTargetBalance
function editPSMTargetBalance(address psm, uint248 targetBalance) external nonpayable
edit an existing PSM
Parameters
Name | Type | Description |
---|
psm | address | Peg Stability Module for this deposit |
targetBalance | uint248 | target amount of tokens for the PSM to hold cannot manually change the underlying token, as this is pulled from the PSM underlying token is immutable in both pcv deposit and |
getAdjustedAmount
function getAdjustedAmount(uint256 amountToDrip, int8 decimalsNormalizer) external pure returns (uint256 adjustedAmountToDrip)
function to get the adjusted amount out
Parameters
Name | Type | Description |
---|
amountToDrip | uint256 | the amount to adjust |
decimalsNormalizer | int8 | the amount of decimals to adjust amount by |
Returns
Name | Type | Description |
---|
adjustedAmountToDrip | uint256 | undefined |
getDripDetails
function getDripDetails(address psm, contract PCVDeposit pcvDeposit) external view returns (uint256 amountToDrip, uint256 adjustedAmountToDrip)
return the amount that can be dripped to a given PSM
Parameters
Name | Type | Description |
---|
psm | address | peg stability module to check drip amount on |
pcvDeposit | contract PCVDeposit | pcv deposit to drip from returns amount that can be dripped, adjusted amount to drip and target reverts if not drip eligbile |
Returns
Name | Type | Description |
---|
amountToDrip | uint256 | undefined |
adjustedAmountToDrip | uint256 | undefined |
getSkimDetails
function getSkimDetails(address pcvDeposit) external view returns (uint256 amountToSkim, uint256 adjustedAmountToSkim)
return the amount that can be skimmed off a given PSM
Parameters
Name | Type | Description |
---|
pcvDeposit | address | pcv deposit whose corresponding psm will have skim amount checked returns amount that can be skimmed, adjusted amount to skim and target to send proceeds reverts if not skim eligbile |
Returns
Name | Type | Description |
---|
amountToSkim | uint256 | undefined |
adjustedAmountToSkim | uint256 | undefined |
isContractAdmin
function isContractAdmin(address _admin) external view returns (bool)
returns whether a given address has the admin role for this contract
Parameters
Name | Type | Description |
---|
_admin | address | undefined |
Returns
Name | Type | Description |
---|
_0 | bool | undefined |
lastBufferUsedTime
function lastBufferUsedTime() external view returns (uint32)
the last time the buffer was used by the contract
Returns
Name | Type | Description |
---|
_0 | uint32 | undefined |
pause
function pause() external nonpayable
set pausable methods to paused
paused
function paused() external view returns (bool)
Returns true if the contract is paused, and false otherwise.
Returns
Name | Type | Description |
---|
_0 | bool | undefined |
pcvDepositToPSM
function pcvDepositToPSM(address) external view returns (address)
map the pcv deposit address to a peg stability module
Parameters
Name | Type | Description |
---|
_0 | address | undefined |
Returns
Name | Type | Description |
---|
_0 | address | undefined |
rateLimitPerSecond
function rateLimitPerSecond() external view returns (uint128)
the rate per second for this contract
Returns
Name | Type | Description |
---|
_0 | uint128 | undefined |
setBufferCap
function setBufferCap(uint128 newBufferCap) external nonpayable
set the buffer cap
Parameters
Name | Type | Description |
---|
newBufferCap | uint128 | undefined |
setContractAdminRole
function setContractAdminRole(bytes32 newContractAdminRole) external nonpayable
sets a new admin role for this contract
Parameters
Name | Type | Description |
---|
newContractAdminRole | bytes32 | undefined |
setRateLimitPerSecond
function setRateLimitPerSecond(uint128 newRateLimitPerSecond) external nonpayable
set the rate limit per second
Parameters
Name | Type | Description |
---|
newRateLimitPerSecond | uint128 | undefined |
skim
function skim(address pcvDeposit) external nonpayable
pull ERC20 tokens from PSM and send to PCV Deposit if the amount of tokens held in the PSM is above the target balance.
Parameters
Name | Type | Description |
---|
pcvDeposit | address | deposit to send excess funds to |
sweep
function sweep(address token, address to, uint256 amount) external nonpayable
sweep target token, this shouldn't ever be needed as this contract does not hold tokens
Parameters
Name | Type | Description |
---|
token | address | to sweep |
to | address | recipient |
amount | uint256 | of token to be sent |
targetBalance
function targetBalance(address psm) external view returns (uint256)
returns the target balance for a given PSM
Parameters
Name | Type | Description |
---|
psm | address | undefined |
Returns
Name | Type | Description |
---|
_0 | uint256 | undefined |
unpause
function unpause() external nonpayable
set pausable methods to unpaused
vcon
function vcon() external view returns (contract IERC20)
address of the Tribe contract referenced by Core
Returns
Name | Type | Description |
---|
_0 | contract IERC20 | IERC20 implementation address |
vconBalance
function vconBalance() external view returns (uint256)
vcon balance of contract
Returns
Name | Type | Description |
---|
_0 | uint256 | vcon amount held |
volt
function volt() external view returns (contract IVolt)
address of the Fei contract referenced by Core
Returns
Name | Type | Description |
---|
_0 | contract IVolt | IFei implementation address |
voltBalance
function voltBalance() external view returns (uint256)
volt balance of contract
Returns
Name | Type | Description |
---|
_0 | uint256 | volt amount held |
Events
BufferCapUpdate
event BufferCapUpdate(uint256 oldBufferCap, uint256 newBufferCap)
event emitted when buffer cap is updated
Parameters
Name | Type | Description |
---|
oldBufferCap | uint256 | undefined |
newBufferCap | uint256 | undefined |
BufferReplenished
event BufferReplenished(uint256 amountReplenished, uint256 bufferRemaining)
event emitted when buffer gets replenished
Parameters
Name | Type | Description |
---|
amountReplenished | uint256 | undefined |
bufferRemaining | uint256 | undefined |
BufferUsed
event BufferUsed(uint256 amountUsed, uint256 bufferRemaining)
event emitted when buffer gets eaten into
Parameters
Name | Type | Description |
---|
amountUsed | uint256 | undefined |
bufferRemaining | uint256 | undefined |
ContractAdminRoleUpdate
event ContractAdminRoleUpdate(bytes32 indexed oldContractAdminRole, bytes32 indexed newContractAdminRole)
Parameters
Name | Type | Description |
---|
oldContractAdminRole indexed | bytes32 | undefined |
newContractAdminRole indexed | bytes32 | undefined |
CoreUpdate
event CoreUpdate(address indexed oldCore, address indexed newCore)
Parameters
Name | Type | Description |
---|
oldCore indexed | address | undefined |
newCore indexed | address | undefined |
DepositConnected
event DepositConnected(address psm, address pcvDeposit)
emitted when a psm is connected to a PCV Deposit
Parameters
Name | Type | Description |
---|
psm | address | undefined |
pcvDeposit | address | undefined |
DepositDeleted
event DepositDeleted(address deposit)
emitted when an existing deposit is deleted
Parameters
Name | Type | Description |
---|
deposit | address | undefined |
Dripped
event Dripped(uint256 amount, address target)
event emitted when tokens are sent to the pullTarget from the pushTarget
Parameters
Name | Type | Description |
---|
amount | uint256 | undefined |
target | address | undefined |
PSMConnected
event PSMConnected(address psm, address token, uint248 targetBalance, int8 decimalsNormalizer)
emitted when a new PSM is connected
Parameters
Name | Type | Description |
---|
psm | address | undefined |
token | address | undefined |
targetBalance | uint248 | undefined |
decimalsNormalizer | int8 | undefined |
PSMDeleted
event PSMDeleted(address psm)
emitted when a PSM is deleted
Parameters
Name | Type | Description |
---|
psm | address | undefined |
PSMTargetBalanceUpdated
event PSMTargetBalanceUpdated(address psm, uint248 targetBalance)
emitted when an existing PSM is updated
Parameters
Name | Type | Description |
---|
psm | address | undefined |
targetBalance | uint248 | undefined |
Paused
event Paused(address account)
Parameters
Name | Type | Description |
---|
account | address | undefined |
RateLimitPerSecondUpdate
event RateLimitPerSecondUpdate(uint256 oldRateLimitPerSecond, uint256 newRateLimitPerSecond)
event emitted when rate limit per second is updated
Parameters
Name | Type | Description |
---|
oldRateLimitPerSecond | uint256 | undefined |
newRateLimitPerSecond | uint256 | undefined |
Skimmed
event Skimmed(uint256 amount, address target)
event emitted when tokens are sent to the pushTarget from the pullTarget
Parameters
Name | Type | Description |
---|
amount | uint256 | undefined |
target | address | undefined |
Unpaused
event Unpaused(address account)
Parameters
Name | Type | Description |
---|
account | address | undefined |