Skip to main content

IPreDepositVault

Git Source

Functions

initialize

Initializer of the contract.

function initialize(
PreDepositVaultInitParams calldata params,
address shareToken,
address depositToken,
address accountingToken
) external;

Parameters

NameTypeDescription
paramsPreDepositVaultInitParamsThe initialization parameters.
shareTokenaddressThe address of the share token.
depositTokenaddressThe address of the deposit token.
accountingTokenaddressThe address of the accounting token.

migrated

True if the vault has migrated to a machine instance, false otherwise.

function migrated() external view returns (bool);

machine

Address of the machine, set during migration.

function machine() external view returns (address);

riskManager

Address of the risk manager.

function riskManager() external view returns (address);

whitelistMode

True if the vault is in whitelist mode, false otherwise.

function whitelistMode() external view returns (bool);

isWhitelistedUser

User => Whitelisting status.

function isWhitelistedUser(address user) external view returns (bool);

depositToken

Address of the deposit token.

function depositToken() external view returns (address);

accountingToken

Address of the accounting token.

function accountingToken() external view returns (address);

shareToken

Address of the share token.

function shareToken() external view returns (address);

shareLimit

Share token supply limit that cannot be exceeded by new deposits.

function shareLimit() external view returns (uint256);

maxDeposit

Maximum amount of deposit tokens that can currently be deposited in the vault.

function maxDeposit() external view returns (uint256);

totalAssets

Total amount of deposit tokens managed by the vault.

function totalAssets() external view returns (uint256);

previewDeposit

Amount of shares minted against a given amount of deposit tokens.

function previewDeposit(uint256 assets) external view returns (uint256);

Parameters

NameTypeDescription
assetsuint256The amount of deposit tokens to be deposited.

previewRedeem

Amount of deposit tokens that can be withdrawn against a given amount of shares.

function previewRedeem(uint256 assets) external view returns (uint256);

Parameters

NameTypeDescription
assetsuint256The amount of shares to be redeemed.

deposit

Deposits a given amount of deposit tokens and mints shares to the receiver.

function deposit(uint256 assets, address receiver, uint256 minShares) external returns (uint256);

Parameters

NameTypeDescription
assetsuint256The amount of deposit tokens to be deposited.
receiveraddressThe receiver of the shares.
minSharesuint256The minimum amount of shares to be minted.

Returns

NameTypeDescription
<none>uint256shares The amount of shares minted.

redeem

Burns exactly shares from caller and transfers the corresponding amount of deposit tokens to the receiver.

function redeem(uint256 shares, address receiver, uint256 minAssets) external returns (uint256);

Parameters

NameTypeDescription
sharesuint256The amount of shares to be redeemed.
receiveraddressThe receiver of withdrawn deposit tokens.
minAssetsuint256The minimum amount of deposit tokens to be transferred.

Returns

NameTypeDescription
<none>uint256assets The amount of deposit tokens transferred.

migrateToMachine

Migrates the pre-deposit vault to the machine.

function migrateToMachine() external;

setPendingMachine

Sets the machine address to migrate to.

function setPendingMachine(address machine) external;

Parameters

NameTypeDescription
machineaddressThe address of the machine.

setRiskManager

Sets the risk manager address.

function setRiskManager(address newRiskManager) external;

Parameters

NameTypeDescription
newRiskManageraddressThe address of the new risk manager.

setShareLimit

Sets the new share token supply limit that cannot be exceeded by new deposits.

function setShareLimit(uint256 newShareLimit) external;

Parameters

NameTypeDescription
newShareLimituint256The new share limit

setWhitelistedUsers

Whitelist or unwhitelist a list of users.

function setWhitelistedUsers(address[] calldata users, bool whitelisted) external;

Parameters

NameTypeDescription
usersaddress[]The addresses of the users to update.
whitelistedboolTrue to whitelist the users, false to unwhitelist.

setWhitelistMode

Sets the whitelist mode for the vault.

In whitelist mode, only whitelisted users can deposit.

function setWhitelistMode(bool enabled) external;

Parameters

NameTypeDescription
enabledboolTrue to enable whitelist mode, false to disable.

Events

Deposit

event Deposit(address indexed sender, address indexed receiver, uint256 assets, uint256 shares);

MigrateToMachine

event MigrateToMachine(address indexed machine);

Redeem

event Redeem(address indexed owner, address indexed receiver, uint256 assets, uint256 shares);

RiskManagerChanged

event RiskManagerChanged(address indexed oldRiskManager, address indexed newRiskManager);

ShareLimitChanged

event ShareLimitChanged(uint256 indexed oldShareLimit, uint256 indexed newShareLimit);

UserWhitelistingChanged

event UserWhitelistingChanged(address indexed user, bool indexed whitelisted);

WhitelistModeChanged

event WhitelistModeChanged(bool indexed enabled);

Structs

PreDepositVaultInitParams

struct PreDepositVaultInitParams {
uint256 initialShareLimit;
bool initialWhitelistMode;
address initialRiskManager;
address initialAuthority;
}