Skip to content
LogoLogo

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);

Returns

NameTypeDescription
<none>bool

machine

Address of the machine, set during migration.

function machine() external view returns (address);

Returns

NameTypeDescription
<none>address

riskManager

Address of the risk manager.

function riskManager() external view returns (address);

Returns

NameTypeDescription
<none>address

whitelistMode

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

function whitelistMode() external view returns (bool);

Returns

NameTypeDescription
<none>bool

isWhitelistedUser

User => Whitelisting status.

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

Parameters

NameTypeDescription
useraddress

Returns

NameTypeDescription
<none>bool

depositToken

Address of the deposit token.

function depositToken() external view returns (address);

Returns

NameTypeDescription
<none>address

accountingToken

Address of the accounting token.

function accountingToken() external view returns (address);

Returns

NameTypeDescription
<none>address

shareToken

Address of the share token.

function shareToken() external view returns (address);

Returns

NameTypeDescription
<none>address

shareLimit

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

function shareLimit() external view returns (uint256);

Returns

NameTypeDescription
<none>uint256

maxDeposit

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

function maxDeposit() external view returns (uint256);

Returns

NameTypeDescription
<none>uint256

totalAssets

Total amount of deposit tokens managed by the vault.

function totalAssets() external view returns (uint256);

Returns

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

Returns

NameTypeDescription
<none>uint256

previewRedeem

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

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

Parameters

NameTypeDescription
sharesuint256The amount of shares to be redeemed.

Returns

NameTypeDescription
<none>uint256

deposit

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

function deposit(uint256 assets, address receiver, uint256 minShares, bytes32 referralKey)
        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.
referralKeybytes32The optional identifier used to track a referral source.

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.

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.

setRiskManager

Sets the risk manager address.

function setRiskManager(address newRiskManager) external;

Parameters

NameTypeDescription
newRiskManageraddressThe address of the new risk manager.

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, bytes32 indexed referralKey
    );

Parameters

NameTypeDescription
senderaddress
receiveraddress
assetsuint256
sharesuint256
referralKeybytes32

MigrateToMachine

event MigrateToMachine(address indexed machine);

Parameters

NameTypeDescription
machineaddress

Redeem

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

Parameters

NameTypeDescription
owneraddress
receiveraddress
assetsuint256
sharesuint256

RiskManagerChanged

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

Parameters

NameTypeDescription
oldRiskManageraddress
newRiskManageraddress

ShareLimitChanged

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

Parameters

NameTypeDescription
oldShareLimituint256
newShareLimituint256

UserWhitelistingChanged

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

Parameters

NameTypeDescription
useraddress
whitelistedbool

WhitelistModeChanged

event WhitelistModeChanged(bool indexed enabled);

Parameters

NameTypeDescription
enabledbool

Structs

PreDepositVaultInitParams

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

Properties

NameTypeDescription
initialShareLimituint256
initialWhitelistModebool
initialRiskManageraddress
initialAuthorityaddress