Skip to Content

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

NameTypeDescription
<none>addressThe 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

NameTypeDescription
<none>uint256Total 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

NameTypeDescription
amountuint256The amount of underlying asset to move to the router

Events

SlashingLocked

Emitted when assets are locked for slashing

event SlashingLocked(uint256 amount);

Parameters

NameTypeDescription
amountuint256The 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; }
Last updated on