ISLAYVaultV2
Inherits: IERC20Metadata, IERC4626, IERC7540Operator, IERC7540Redeem
Interface defining the functionality of the SLAYVault contract
This interface extends ERC20Metadata, ERC4626, and ERC7540 interfaces to provide a comprehensive vault implementation with asynchronous redemption capabilities
Functions
delegated
Returns the address where the vault is delegated to
This address is the SatLayer operator that is delegated to manage the vault This address cannot withdraw assets from the vault See https://build.satlayer.xyz/architecture/operators for more information
function delegated() external view returns (address);
Returns
Name | Type | Description |
---|---|---|
<none> | address | The address of the delegated operator |
totalActiveStaked
Returns the amount of tokenized shares that are actively staked in the vault. This amount will exclude any tokens that are pending redeem, pending withdrawal or donation of shares token. For slashed amount, they are underlying assets, not shares, so they are not included in this amount. They will be reflected in the exchange rate of the vault.
function totalActiveStaked() external view returns (uint256);
Returns
Name | Type | Description |
---|---|---|
<none> | uint256 | Total tokens actively staked in the vault |
lockSlashing
Moves assets from the vault to the router contract as part of the slashing process
Only callable by the router contract. This function is used during the slashing process to transfer assets from the vault to the router for penalty distribution
function lockSlashing(uint256 amount) external;
Parameters
Name | Type | Description |
---|---|---|
amount | uint256 | The amount of underlying asset to move to the router |
Events
SlashingLocked
Emitted when assets are locked for slashing
event SlashingLocked(uint256 amount);
Parameters
Name | Type | Description |
---|---|---|
amount | uint256 | The amount of assets locked for slashing |
Errors
EnforcedPause
The operation failed because the contract is paused
error EnforcedPause();
ExpectedWhitelisted
The operation failed because the contract is not whitelisted
error ExpectedWhitelisted();
ZeroAmount
The operation failed because the amount specified is zero
error ZeroAmount();
MustClaimAll
The operation failed because all assets must be withdrawn at once
error MustClaimAll();
ExceededMaxRedeemable
The operation failed because assets to withdraw exceed the maximum redeemable amount
error ExceededMaxRedeemable();
WithdrawalDelayHasNotPassed
The operation failed because the withdrawal delay period has not yet passed
error WithdrawalDelayHasNotPassed();
NotControllerOrOperator
The operation failed because the caller is not the controller or an approved operator
error NotControllerOrOperator();
PreviewNotSupported
The operation failed because preview functions are not supported for asynchronous flows
error PreviewNotSupported();
WithdrawRequestNotFound
The operation failed because the specified withdraw request was not found
error WithdrawRequestNotFound();
NotRouter
The operation failed because the caller is not the router contract
error NotRouter();
Structs
RedeemRequestStruct
Struct representing a redeem request.
struct RedeemRequestStruct {
uint256 shares;
uint256 claimableAt;
}