Deposit

Depositing to a Yelay Vault

To deposit assets into a Yelay vault using the vault’s native asset currency, follow these steps:

Deposit ERC20 into the vault

All action methods support an optional options parameter of type WriteOptions from @gud/drift for customizing transaction parameters (gas, nonce, etc.).

const vault = '0x1234';
const pool = 1234;
const amount = 1000000n; // Using bigint for amount

const allowance = await sdk.portfolio.getAllowance(vault);

if (allowance === 0n) {
	const approveTx = await sdk.actions.approve(vault, amount);
	// Note: Drift returns transaction hash, wait method depends on your adapter
}

const depositTx = await sdk.actions.deposit(vault, pool, amount);

// With optional WriteOptions
const depositTxWithOptions = await sdk.actions.deposit(vault, pool, amount, {
	gas: 300000n,
});

Where:

  • vault – One of the vaults set up by Yelay. Fetch vault addresses using sdk.vaults.getVaults(). (See the "Supportive Methods" chapter.)

  • poolId – One of the pools set up by the client within the vault.

Once the deposit is complete, the corresponding amount of ERC-1155 NFT shares is minted in the user’s wallet.

For example:

Deposit "on behalf" of another user (specifying shares receiver)

This function allows you to deposit tokens into a vault pool, but the resulting shares will be credited to a different address (receiver). This is useful for scenarios like depositing on behalf of users.

Depositing with any asset

  1. Depositing any ERC-20 Token

To deposit any ERC-20 token and swap it on the way, use the sdk.vaults.swapAndDeposit method:

Where:

  • vault – Address of the vault.

  • pool – Pool set up by the client within the vault.

  • amount – Deposit amount.

  • swapCallData – Swap arguments from 1inch.

  • swapTarget – Should match the asset of the vault.

  • tokenToSwap – ERC-20 token to be swapped before depositing.

Note:

  • This method requires obtaining a 1inch API key and retrieving swapCallData from it.

  • Users will incur swap costs when using this method.

Deposit ETH into the vault

Where:

  • vault – Address of the Yelay WETH vault on the given chain.

  • pool – ID of the pool where the user deposits.

  • amount – Amount of ETH to deposit.

This method leverages the VaultWrapper contract to handle ETH wrapping and depositing in a single transaction.

Note that it is not possible to do 'depositOnBehalf' with swapAndDeposit and depositEth. Contact @guilhermemussi on Telegram if you want this to be enabled.

Last updated