PSM
Peg Stability Contract.
Contract for swapping stable token for VAI token and vice versa to maintain the peg stability between them.
Solidity API
BASIS_POINTS_DIVISOR
The divisor used to convert fees to basis points.
MANTISSA_ONE
The mantissa value representing 1 (used for calculations).
ONE_DOLLAR
The value representing one dollar in the stable token.
VAI
VAI token contract.
STABLE_TOKEN_ADDRESS
The address of the stable token contract.
oracle
The address of ResilientOracle contract wrapped in its interface.
venusTreasury
The address of the Venus Treasury contract.
feeIn
The incoming stableCoin fee. (Fee for swapStableForVAI).
feeOut
The outgoing stableCoin fee. (Fee for swapVAIForStable).
vaiMintCap
The maximum amount of VAI that can be minted through this contract.
vaiMinted
The total amount of VAI minted through this contract.
isPaused
A flag indicating whether the contract is currently paused or not.
initialize
Initializes the contract via Proxy Contract with the required parameters.
Parameters
Name | Type | Description |
---|---|---|
accessControlManager_ | address | The address of the AccessControlManager contract. |
venusTreasury_ | address | The address where fees will be sent. |
oracleAddress_ | address | The address of the ResilientOracle contract. |
feeIn_ | uint256 | The percentage of fees to be applied to a stablecoin -> VAI swap. |
feeOut_ | uint256 | The percentage of fees to be applied to a VAI -> stablecoin swap. |
vaiMintCap_ | uint256 | The cap for the total amount of VAI that can be minted. |
swapVAIForStable
Swaps VAI for a stable token.
Parameters
Name | Type | Description |
---|---|---|
receiver | address | The address where the stablecoin will be sent. |
stableTknAmount | uint256 | The amount of stable tokens to receive. |
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256 | The amount of VAI received and burnt from the sender. |
swapStableForVAI
Swaps stable tokens for VAI with fees.
Parameters
Name | Type | Description |
---|---|---|
receiver | address | The address that will receive the VAI tokens. |
stableTknAmount | uint256 | The amount of stable tokens to be swapped. |
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256 | Amount of VAI minted to the sender. |
pause
Pause the PSM contract.
resume
Resume the PSM contract.
setFeeIn
Set the fee percentage for incoming swaps.
Parameters
Name | Type | Description |
---|---|---|
feeIn_ | uint256 | The new fee percentage for incoming swaps. |
setFeeOut
Set the fee percentage for outgoing swaps.
Parameters
Name | Type | Description |
---|---|---|
feeOut_ | uint256 | The new fee percentage for outgoing swaps. |
setVenusTreasury
Set the address of the Venus Treasury contract.
Parameters
Name | Type | Description |
---|---|---|
venusTreasury_ | address | The new address of the Venus Treasury contract. |
setOracle
Set the address of the ResilientOracle contract.
Parameters
Name | Type | Description |
---|---|---|
oracleAddress_ | address | The new address of the ResilientOracle contract. |
previewSwapVAIForStable
Calculates the amount of VAI that would be burnt from the user.
Parameters
Name | Type | Description |
---|---|---|
stableTknAmount | uint256 | The amount of stable tokens to be received after the swap. |
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256 | The amount of VAI that would be taken from the user. |
previewSwapStableForVAI
Calculates the amount of VAI that would be sent to the receiver.
Parameters
Name | Type | Description |
---|---|---|
stableTknAmount | uint256 | The amount of stable tokens provided for the swap. |
Return Values
Name | Type | Description |
---|---|---|
[0] | uint256 | The amount of VAI that would be sent to the receiver. |
Last updated