Router
The Router contract routes deposit/redeem requests by assigning operation contracts.
Note that the Router contract only supports wrapped UST and wrapped aUST for deposits and redemptions. For operations that involve non-UST stablecoins, interactions should be made via the ConversionPool contracts.

Functions

init

Initiates a deposit/redeem operation.
function init(
IOperation.Type _type,
address _operator,
uint256 _amount,
address _swapper,
address _swapDest,
bool _autoFinish
) external;
interface IOperation {
enum Type {NEUTRAL, DEPOSIT, REDEEM}
}
Name
Type
Description
_type
IOperation.Type
Operation type. Can be either of deposit or redeem (withdraw)
_operator
address
Address of operation requester
_amount
uint256
Amount of wrapped UST/aUST used in operation
_swapper
address
Swapper contract that defines logic for swapping tokens
_swapDest
address
Address of token to receive post-operation
_autoFinish
bool
Indicator to signal whether to have the corresponding finish operation automated

finish

Finishes a deposit/redeem operation.
function finish(address _operation) external;
Name
Type
Description
_operation
address
Address of Operation contract to call finish

depositStable

Deposits the specified amount of wrapped UST.
function depositStable(uint256 _amount) external;
Name
Type
Description
_amount
uint256
Amount of wrapped UST to deposit

depositStable

Deposits the specified amount of wrapped UST. Returns resulting wrapped aUST to the specified address.
function depositStable(address _operator, uint256 _amount) external;
Name
Type
Description
_operator
address
Address to receive resulting wrapped aUST
_amount
uint256
Amount of wrapped UST to deposit

depositStable

Deposits the specified amount of wrapped UST. Swaps resulting wrapped aUST to the specified token (_swapDest) using logic defined in the specified swapper contract (_swapper), and returns tokens to the specified address (_operator).
function depositStable(
address _operator,
uint256 _amount,
address _swapper,
address _swapDest
) external;
Name
Type
Description
_operator
address
Address to receive resulting tokens
_amount
uint256
Amount of wrapped UST to deposit
_swapper
address
Swapper contract that defines logic for swapping tokens
_swapDest
address
Address of token to receive post-deposit

initDepositStable

Initiates a deposit request for the specified amount of wrapped UST.
function initDepositStable(uint256 _amount) external;
Name
Type
Description
_amount
uint256
Amount of wrapped UST to deposit

initDepositStable

Initiates a deposit request for the specified amount of wrapped UST. Swaps resulting wrapped aUST to the specified token.
function initDepositStable(
uint256 _amount,
address _swapper,
address _swapDest
) external;
Name
Type
Description
_amount
uint256
Amount to wrapped UST to deposit
_swapper
address
Swapper contract that defines logic for swapping tokens
_swapDest
address
Address of token to receive post-deposit

finishDepositStable

Finishes deposit operation for the specified Operation contract.
function finishDepositStable(address _operation) external;
Name
Type
Description
_operation
address
Address of Operation contract to call finish

redeemStable

Redeems (withdraws) the specified amount of wrapped aUST.
function redeemStable(uint256 _amount) external;
Name
Type
Description
_amount
uint256
Amount of wrapped aUST to redeem

redeemStable

Redeems the specified amount of wrapped aUST. Returns resulting wrapped UST to the specified address.
function redeemStable(address _operator, uint256 _amount) external;
Name
Type
Description
_operator
address
Address to receive resulting wrapped UST
_amount
uint256
Amount of wrapped aUST to redeem

redeemStable

Redeems the specified amount of wrapped aUST. Swaps resulting wrapped UST to the specified token (_swapDest) using logic defined in the specified swapper contract (_swapper), and returns tokens to the specified address (_operator).
function redeemStable(
address _operator,
uint256 _amount,
address _swapper,
address _swapDest
) external;
Name
Type
Description
_operator
address
Address to receive resulting tokens
_amount
uint256
Amount of wrapped aUST to redeem
_swapper
address
Swapper contract that defines logic for swapping tokens
_swapDest
address
Address of token to receive post-redemption

initRedeemStable

Initiates a redemption for the specified amount of wrapped aUST.
function initRedeemStable(uint256 _amount) external;
Name
Type
Description
_amount
uint256
Amount of wrapped aUST to redeem

initRedeemStable

Initiates a stablecoin redemption. Swaps resulting wrapped UST to the specified token (_swapDest) using logic defined in the specified swapper contract (_swapper), and returns tokens to the specified address (_operator).
function initRedeemStable(
uint256 _amount,
address _swapper,
address _swapDest
) external;
Name
Type
Description
_amount
uint256
Amount of aUST tokens to redeem
_swapper
address
Swapper contract that defines logic for swapping tokens
_swapDest
address
Address of token to receive post-redemption

finishRedeemStable

Finishes a redeem operation for the specified Operation contract.
function finishRedeemStable(address _operation) external;
Name
Type
Description
_operation
address
Address of Operation contract to call finish