IWithdrawalManager
Inherits: IWithdrawalManagerStorage
Functions
initialize
Initializes the Withdrawal Manager.
Function is invoked by the proxy contract when the Withdrawal Manager Contract is added to the PoolAddressesProvider of the market.
function initialize(IPoolAddressesProvider provider_, uint256 cycleDuration_, uint256 windowDuration_) external;
Parameters
provider_
IPoolAddressesProvider
The address of the PoolAddressesProvider.
cycleDuration_
uint256
The total duration of a withdrawal cycle.
windowDuration_
uint256
The duration of the withdrawal window.
setExitConfig
Pool admin sets a new configuration for the withdrawal manager.
function setExitConfig(uint256 cycleDuration_, uint256 windowDuration_) external;
Parameters
cycleDuration_
uint256
The total duration of a withdrawal cycle.
windowDuration_
uint256
The total duration of a withdrawal window.
addShares
Add more shares for withdrawal.
function addShares(uint256 shares_, address owner_) external;
Parameters
shares_
uint256
The amount of shares to add.
owner_
address
The owner of the shares.
removeShares
Remove shares from withdrawal.
function removeShares(uint256 shares_, address owner_) external returns (uint256 sharesReturned_);
Parameters
shares_
uint256
The amount of shares to remove from withdrawal.
owner_
address
The owner of the shares.
processExit
Process the exit of requested shares of a owner.
function processExit(
uint256 requestedShares_,
address owner_
)
external
returns (uint256 redeemableShares_, uint256 resultingAssets_);
Parameters
requestedShares_
uint256
The amount of shares to redeem.
owner_
address
The owner of the shares.
Returns
redeemableShares_
uint256
The amount of redeemable shares.
resultingAssets_
uint256
The corresponding amount of assets with the redeemable shares.
isInExitWindow
Checks if the owner has a withdrawal request in the exit window.
function isInExitWindow(address owner_) external view returns (bool isInExitWindow_);
Parameters
owner_
address
The owner address to check.
Returns
isInExitWindow_
bool
True if the owner has a withdrawal request in the exit window.
lockedLiquidity
Gets the total amount of liquidity locked in the current cycle.
function lockedLiquidity() external view returns (uint256 lockedLiquidity_);
Returns
lockedLiquidity_
uint256
The total amount of liquidity locked in the current cycle.
previewRedeem
Previews the amount of shares and assets that can be redeemed.
function previewRedeem(
address owner_,
uint256 shares_
)
external
view
returns (uint256 redeemableShares_, uint256 resultingAssets_);
Parameters
owner_
address
The owner of the shares.
shares_
uint256
The amount of shares to redeem.
Returns
redeemableShares_
uint256
The amount of redeemable shares.
resultingAssets_
uint256
The corresponding amount of assets with the redeemable shares.
getCycleConfig
Gets the configuration of a config id.
function getCycleConfig(uint256 configId_) external view returns (WithdrawalManager.CycleConfig memory config_);
Parameters
configId_
uint256
The id of the config.
Returns
config_
WithdrawalManager.CycleConfig
The config.
getConfigAtId
Gets the configuration of a given cycle id.
function getConfigAtId(uint256 cycleId_) external view returns (WithdrawalManager.CycleConfig memory config_);
Parameters
cycleId_
uint256
The cycle id.
Returns
config_
WithdrawalManager.CycleConfig
The configuration used at the cycle id.
getCurrentConfig
Gets the configuration of the current cycle id.
function getCurrentConfig() external view returns (WithdrawalManager.CycleConfig memory config_);
Returns
config_
WithdrawalManager.CycleConfig
The configuration used at the current cycle id.
getCurrentCycleId
Gets the current cycle id.
function getCurrentCycleId() external view returns (uint256 cycleId_);
Returns
cycleId_
uint256
The id of the current cycle.
getWindowStart
Gets the starting time of a window for a given cycle id.
function getWindowStart(uint256 cycleId_) external view returns (uint64 windowStart_);
Parameters
cycleId_
uint256
The id of the cycle.
Returns
windowStart_
uint64
The starting time of the window.
getWindowAtId
Gets the start and end time of a window for a given cycle id.
function getWindowAtId(uint256 cycleId_) external view returns (uint64 windowStart_, uint64 windowEnd_);
Parameters
cycleId_
uint256
The id of the cycle.
Returns
windowStart_
uint64
The starting time of the window.
windowEnd_
uint64
The ending time of the window.
getRedeemableAmounts
Gets the redeemable amount of an owner based in the current cycle.
function getRedeemableAmounts(
uint256 lockedShares_,
address owner_
)
external
view
returns (uint256 redeemableShares_, uint256 resultingAssets_);
Parameters
lockedShares_
uint256
The amount of locked shares under the owner.
owner_
address
The address of the owner.
Returns
redeemableShares_
uint256
The amount of redeemable shares.
resultingAssets_
uint256
The corresponding amount of assets with the redeemable shares.
Events
Initialized
Emitted when a withdrawal manager is initialized.
event Initialized(address poolAddressesProvider_, uint256 cycleDuration_, uint256 windowDuration_);
Parameters
poolAddressesProvider_
address
The address of the PoolAddressesProvider.
cycleDuration_
uint256
The duration of a withdrawal cycle.
windowDuration_
uint256
The duration of the withdrawal window.
ConfigurationUpdated
Emitted when the configuration of the withdrawal manager is updated.
event ConfigurationUpdated(
uint256 indexed configId_,
uint64 initialCycleId_,
uint64 initialCycleTime_,
uint64 cycleDuration_,
uint64 windowDuration_
);
Parameters
configId_
uint256
The id of the configuration.
initialCycleId_
uint64
The id of the initial cycle.
initialCycleTime_
uint64
The starting time of the initial cycle.
cycleDuration_
uint64
The duration of a withdrawal cycle.
windowDuration_
uint64
The duration of the withdrawal window.
WithdrawalCancelled
Emitted when a withdrawal is cancelled.
event WithdrawalCancelled(address indexed account_);
Parameters
account_
address
The account whose withdrawal is cancelled.
WithdrawalProcessed
Emitted when a withdrawal is processed.
event WithdrawalProcessed(address indexed account_, uint256 sharesToRedeem_, uint256 assetsToWithdraw_);
Parameters
account_
address
The account whose withdrawal is processed.
sharesToRedeem_
uint256
The amount of shares to redeem.
assetsToWithdraw_
uint256
The amount of assets to withdraw.
WithdrawalUpdated
Emitted when a withdrawal is updated.
event WithdrawalUpdated(address indexed account_, uint256 lockedShares_, uint64 windowStart_, uint64 windowEnd_);
Parameters
account_
address
The account whose withdrawal is updated.
lockedShares_
uint256
The new amount of locked shares.
windowStart_
uint64
The new starting time of the withdrawal window.
windowEnd_
uint64
The new ending time of the withdrawal window.
Last updated