Yield Reserve
Was this helpful?
Was this helpful?
Inherits: ReentrancyGuard, Ownable
Author: Sperax Foundation
This contract allows users to swap supported stable-coins for yield earned by the USDs protocol. It sends USDs to the Dripper contract for rebase and to the Buyback Contract for buyback.
Constructor of the YieldReserve contract.
Parameters
_buyback
address
Address of the Buyback contract.
_vault
address
Address of the Vault.
_oracle
address
Address of the Oracle.
_dripper
address
Address of the Dripper contract.
Swap function to be called by frontend users.
Parameters
_srcToken
address
Source/Input token.
_dstToken
address
Destination/Output token.
_amountIn
uint256
Input token amount.
_minAmountOut
uint256
Minimum output tokens expected.
Allow or disallow a specific token
for use as a source/input token.
Parameters
_token
address
Address of the token to be allowed or disallowed.
_isAllowed
bool
If set to true, the token will be allowed as a source/input token; otherwise, it will be disallowed.
Allow or disallow a specific token
for use as a destination/output token.
Reverts if caller is not owner.
Parameters
_token
address
Address of the token to be allowed or disallowed.
_isAllowed
bool
If set to true, the token will be allowed as a destination/output token; otherwise, it will be disallowed.
Emergency withdrawal function for unexpected situations.
Parameters
_token
address
Address of the asset to be withdrawn.
_receiver
address
Address of the receiver of tokens.
_amount
uint256
Amount of tokens to be withdrawn.
Set the percentage of newly minted USDs to be sent to the Buyback contract.
Reverts if caller is not owner.
The remaining USDs are sent to VaultCore for rebase.
Parameters
_toBuyback
uint256
The percentage of USDs sent to Buyback (e.g., 3000 for 30%).
Update the address of the Buyback contract.
Reverts if caller is not owner.
Parameters
_newBuyBack
address
New address of the Buyback contract.
Update the address of the Oracle contract.
Reverts if caller is not owner.
Parameters
_newOracle
address
New address of the Oracle contract.
Update the address of the Dripper contract.
Reverts if caller is not owner.
Parameters
_newDripper
address
New address of the Dripper contract.
Update the address of the VaultCore contract.
Reverts if caller is not owner.
Parameters
_newVault
address
New address of the VaultCore contract.
Swap allowed source token for allowed destination token.
Parameters
_srcToken
address
Source/Input token.
_dstToken
address
Destination/Output token.
_amountIn
uint256
Input token amount.
_minAmountOut
uint256
Minimum output tokens expected.
_receiver
address
Receiver of the tokens.
Mints USDs directly with the allowed collaterals for USDs.
Only collaterals configured in USDs vault are allowed to be used for minting.
Parameters
_token
address
Address of token to mint USDs with
Get an estimate of the output token amount for a given input token amount.
Parameters
_srcToken
address
Input token address.
_dstToken
address
Output token address.
_amountIn
uint256
Input amount of _srcToken.
Returns
uint256
Estimated output token amount.
Distributes USDs to the Buyback and Dripper contracts based on buybackPercentage.
Sends a portion of the USDs balance to the Buyback contract and the remaining to the Dripper contract for rebase.