UpshiftDocs

EVMAdapter

EVM adapter for the Upshift SDK — vault deposits, redemptions, allowances, previews, and SwapRouter flows for both ethers and viem signers.

Generated from @augustdigital/sdk 9.3.0

This page is produced from the SDK's TSDoc on every release. To correct it, edit the TSDoc in the SDK repository — an edit here is overwritten by the next release.

EVM Adapter for August SDK

EVM Adapter for August SDK Supports both ethers Signer/Wallet and wagmi/viem WalletClient

Example

To access the EVM adapter instance

const sdk = new AugustSDK()
sdk.evm.vaultRedeem()

Constructors

Constructor

new default(signer?): default

Parameters

ParameterType
signer?any

Returns

default

Methods

allowance()

allowance(options): Promise<bigint>

Read the ERC-20 allowance an owner has granted the vault. Defaults to the vault's underlying asset; pass asset to override.

Parameters

ParameterType
optionsIAllowanceOptions

Returns

Promise<bigint>

Allowance as a raw bigint.

Example

const raw = await augustSdk.evm.allowance({ vault, owner });

approve()

approve(options): Promise<ApproveResult>

Approve a vault to spend a deposit token, returning a discriminated ApproveResult so callers can tell sent from sufficient (existing allowance covers) and native (no allowance applies). Prefer this over vaultApprove for new integrations.

Parameters

ParameterType
optionsIContractWriteOptions

Returns

Promise<ApproveResult>

Example

const r = await augustSdk.evm.approve({
  target: vaultAddress,
  wallet: walletAddress,
  amount: '100',
  wait: true,
});
if (r.kind === 'sent') console.log('approve tx', r.hash);

balanceOf()

balanceOf(options): Promise<bigint>

Read an ERC-20 token balance.

Parameters

ParameterType
optionsIBalanceOfOptions

Returns

Promise<bigint>

Balance as a raw bigint.

Example

const raw = await augustSdk.evm.balanceOf({ asset: usdcAddress, owner });

claimWithdrawal()

claimWithdrawal(options): Promise<string>

Claim a previously-requested queued withdrawal on an EVM-2 (Tokenized Vault V2) vault, once its withdrawal epoch has passed. EVM-2 only — v1/v0 vaults use EVMAdapter.vaultRedeem instead.

Parameters

ParameterTypeDescription
optionsIClaimWithdrawalOptionsIClaimWithdrawalOptions: target / wallet plus the year / month / day tuple returned by vaultRequestRedeem.

Returns

Promise<string>

Claim transaction hash.

Throws

AugustValidationError on invalid inputs or a non-EVM-2 vault.

Throws

AugustSDKError on RPC / contract revert.

Example

const { year, month, day } = await augustSdk.evm.vaultRequestRedeem({
  target: vaultAddress,
  wallet: walletAddress,
  amount: '10',
});
await augustSdk.evm.claimWithdrawal({
  target: vaultAddress,
  wallet: walletAddress,
  year,
  month,
  day,
  wait: true,
});

depositNative()

depositNative(options): Promise<string>

Deposit the chain's native asset (ETH / AVAX / etc.) into a vault by routing through the MultiAssetNativeDepositWrapper. The wrapper handles native-to-wrapped conversion and the subsequent vault deposit in a single transaction.

Parameters

ParameterTypeDescription
optionsINativeDepositOptionsINativeDepositOptions: wrapperAddress, amount (native, scaled by the chain's native decimals), optional receiver (defaults to the signer), and optional wait.

Returns

Promise<string>

The deposit TransactionResponse.

Throws

AugustValidationError on invalid inputs.

Throws

AugustSDKError on RPC / contract revert.

Example

const tx = await augustSdk.evm.depositNative({
  wrapperAddress: nativeWrapperAddress,
  amount: parseEther('1'),
  wait: true,
});

depositNativeViaSwapRouter()

depositNativeViaSwapRouter(options): Promise<string>

Deposit native ETH (or chain-native equivalent) into a vault via the SwapRouter. Only valid when the vault's reference asset is the chain's wrapped-native token — the SwapRouter wraps amount and deposits.

Parameters

ParameterTypeDescription
optionsISwapRouterNativeDepositOptionsISwapRouterNativeDepositOptions.

Returns

Promise<string>

The transaction hash of the depositNativeToken call.

depositViaSwapRouter()

depositViaSwapRouter(options): Promise<string>

Deposit a vault's reference asset through the SwapRouter — no swap. Use this when the caller already holds the reference asset but wants the origin/referral fee accounting that the SwapRouter path provides.

Parameters

ParameterTypeDescription
optionsISwapRouterDirectDepositOptionsISwapRouterDirectDepositOptions.

Returns

Promise<string>

The transaction hash of the deposit call.

getBurnableAmountByReceiver()

getBurnableAmountByReceiver(options): Promise<bigint>

Read how much of a withdrawal-epoch date's queue a receiver can currently claim, before calling EVMAdapter.claimWithdrawal.

Parameters

ParameterType
optionsIGetBurnableAmountByReceiverOptions

Returns

Promise<bigint>

Claimable amount as a raw bigint.

Example

const claimable = await augustSdk.evm.getBurnableAmountByReceiver({
  vault, receiver, year, month, day,
});

getDeposited()

getDeposited(options): Promise<INormalizedNumber>

Parameters

ParameterType
options{ vault: `0x${string}`; wallet: `0x${string}`; whitelist: `0x${string}`; }
options.vault`0x${string}`
options.wallet`0x${string}`
options.whitelist`0x${string}`

Returns

Promise<INormalizedNumber>

getIdleLiquidity()

getIdleLiquidity(options): Promise<bigint>

Read an EVM-2 vault's idle liquidity (getTotalAssets() - externalAssets()) — the balance available to an instant redemption without a synchronous recall from the settlement module.

Parameters

ParameterType
optionsIGetIdleLiquidityOptions

Returns

Promise<bigint>

Idle liquidity as a raw bigint.

Example

const idle = await augustSdk.evm.getIdleLiquidity({ vault });

getRemainingAllocations()

getRemainingAllocations(options): Promise<INormalizedNumber>

Parameters

ParameterType
options{ depositCapAmount?: bigint; vault: `0x${string}`; wallet: `0x${string}`; whitelist: `0x${string}`; }
options.depositCapAmount?bigint
options.vault`0x${string}`
options.wallet`0x${string}`
options.whitelist`0x${string}`

Returns

Promise<INormalizedNumber>

getRequirementByDate()

getRequirementByDate(options): Promise<bigint>

Read the total shares required to settle a withdrawal-epoch date's entire queue.

Parameters

ParameterType
optionsIWithdrawalDateOptions

Returns

Promise<bigint>

Required shares as a raw bigint.

Example

const shares = await augustSdk.evm.getRequirementByDate({ vault, year, month, day });

getScheduledTransactionsByDate()

getScheduledTransactionsByDate(options): Promise<IScheduledTransactionsByDate>

Read the scheduled queued-withdrawal volume for a withdrawal-epoch date.

Parameters

ParameterType
optionsIWithdrawalDateOptions

Returns

Promise<IScheduledTransactionsByDate>

IScheduledTransactionsByDate.

Example

const { totalTransactions, executionEpoch } =
  await augustSdk.evm.getScheduledTransactionsByDate({ vault, year, month, day });

getSwapRouterDepositResult()

getSwapRouterDepositResult(options): Promise<ISwapRouterDepositResult>

Resolves the real, post-execution outcome of a SwapRouter deposit from its mined receipt — the actual amount that reached the vault (and shares minted), decoded from the vault's own Deposit event, rather than the pre-trade quote shown before submission.

Parameters

ParameterTypeDescription
optionsISwapRouterDepositResultOptionsISwapRouterDepositResultOptions.

Returns

Promise<ISwapRouterDepositResult>

The decoded ISwapRouterDepositResult, or null if the receipt isn't found yet or carries no matching Deposit log.

Example

const hash = await augustSdk.evm.swapRouterDeposit({ ... });
const result = await augustSdk.evm.getSwapRouterDepositResult({ txHash: hash, vault });

getWithdrawalEpoch()

getWithdrawalEpoch(options): Promise<IWithdrawalEpoch>

Read an EVM-2 vault's current withdrawal epoch by named field (year/month/day/claimableEpoch).

Parameters

ParameterType
optionsIGetWithdrawalEpochOptions

Returns

Promise<IWithdrawalEpoch>

IWithdrawalEpoch.

Example

const epoch = await augustSdk.evm.getWithdrawalEpoch({ vault });

isWhitelisted()

isWhitelisted(options): Promise<boolean>

Parameters

ParameterType
options{ wallet: `0x${string}`; whitelist: `0x${string}`; }
options.wallet`0x${string}`
options.whitelist`0x${string}`

Returns

Promise<boolean>

lagDuration()

lagDuration(options): Promise<bigint>

Read an EVM-2 vault's queued-withdrawal lag, in seconds.

Parameters

ParameterType
optionsILagDurationOptions

Returns

Promise<bigint>

Lag duration as a raw bigint.

Example

const seconds = await augustSdk.evm.lagDuration({ vault });

maxDeposit()

maxDeposit(options): Promise<bigint>

Read the maximum deposit accepted by the vault for the supplied receiver. Useful for "vault is full" gates.

Parameters

ParameterType
optionsIMaxDepositOptions

Returns

Promise<bigint>

Max deposit as a raw bigint.

Example

const cap = await augustSdk.evm.maxDeposit({ vault });

previewDeposit()

previewDeposit(options): Promise<bigint>

Preview the share output of a deposit without broadcasting a transaction. See readPreviewDeposit for the routing details (EVM-1 vs EVM-2 multi-asset vaults).

Parameters

ParameterType
optionsIPreviewDepositOptions

Returns

Promise<bigint>

Shares minted in raw on-chain units (share-token decimals).

Example

const shares = await augustSdk.evm.previewDeposit({
  vault: '0x...',
  amount: 1_000_000n,
});

previewRedeem()

previewRedeem(options): Promise<bigint>

Preview the assets returned by redeeming a number of shares, without broadcasting a transaction.

Parameters

ParameterType
optionsIPreviewRedeemOptions

Returns

Promise<bigint>

Assets returned in raw on-chain units (asset decimals).

Example

const assets = await augustSdk.evm.previewRedeem({
  vault: '0x...',
  shares: 1_000_000_000_000_000_000n,
});

sendersWhitelistAddress()

sendersWhitelistAddress(options): Promise<`0x${string}`>

Parameters

ParameterType
options{ vault: `0x${string}`; }
options.vault`0x${string}`

Returns

Promise<`0x${string}`>

setSigner()

setSigner(signer): void

Set a new signer (supports both ethers and viem/wagmi)

Parameters

ParameterTypeDescription
signeranyEither an ethers Signer/Wallet or viem WalletClient

Returns

void

swapAndDeposit()

swapAndDeposit(options): Promise<string>

Swap one or more whitelisted ERC-20s into a vault's reference asset via the on-chain SwapRouter and deposit the proceeds. The router handles fee accrual, slippage protection, and the v1/v3 vs v2 deposit-interface branching. Approval is sent automatically for each swaps[i].tokenIn when the caller's allowance against the SwapRouter is below amountIn.

Parameters

ParameterTypeDescription
optionsISwapAndDepositOptionsISwapAndDepositOptions.

Returns

Promise<string>

The transaction hash of the swapAndDeposit call.

Throws

AugustValidationError on invalid inputs (bad chain, empty swaps).

Throws

AugustSDKError on RPC / contract revert.

Example

const quote = await fetchSwapQuote({
  chainId: 1, srcToken: WBTC, srcDecimals: 8,
  destToken: USDC, destDecimals: 6, amount: 100_000_000n,
  receiver: SWAP_ROUTER_ADDRESSES[1]!,
});
const hash = await augustSdk.evm.swapAndDeposit({
  chainId: 1, vault, receiver: wallet,
  swaps: [{ tokenIn: WBTC, tokenOut: USDC, amountIn: 100_000_000n,
    minAmountOut: quote.minAmountOut, router: quote.router, payload: quote.payload }],
});

swapRouterDeposit()

swapRouterDeposit(options): Promise<string>

Deposit into a vault through the on-chain SwapRouter, choosing the router path from depositAsset (direct deposit, native wrap, or a swap to the reference asset). The high-level, explicit counterpart to the SwapRouter branch inside vaultDeposit — the caller opts into the router deliberately, so a native-deposit vault is never accidentally swapped.

Reads the vault's reference asset + decimals on-chain, resolves the swap quote and fail-closes on aggregator/whitelist drift, and sends the ERC-20 approval to the SwapRouter when allowance is short.

Parameters

ParameterTypeDescription
optionsISwapRouterDepositOptionsISwapRouterDepositOptions.

Returns

Promise<string>

The transaction hash of the router deposit call.

Throws

AugustValidationError on unsupported chain, invalid address, zero amount, a native deposit into a non-wrapped-native vault, or quote drift.

Example

const hash = await augustSdk.evm.swapRouterDeposit({
  chainId: 1, vault, depositAsset: USDT, amount: '100', slippageBps: 50,
});

vaultAllowance()

vaultAllowance(options): Promise<INormalizedNumber>

Read the ERC-20 allowance the wallet has granted the vault to spend its underlying asset, returned as a normalized number. For the newer typed read that returns a raw bigint and accepts an explicit asset override, use EVMAdapter.allowance.

Only target (vault address) and wallet are read from options; the remaining IContractWriteOptions fields are ignored.

Parameters

ParameterTypeDescription
optionsIContractWriteOptions{ target, wallet } (other fields ignored).

Returns

Promise<INormalizedNumber>

Normalized allowance ({ raw, normalized }), or undefined when target / wallet fail address validation.

Example

const a = await augustSdk.evm.vaultAllowance({
  target: vaultAddress,
  wallet: walletAddress,
});
console.log(a?.normalized);

vaultApprove()

vaultApprove(options): Promise<string>

Parameters

ParameterType
optionsIContractWriteOptions

Returns

Promise<string>

vaultDeposit()

vaultDeposit(options): Promise<string>

Deposit into an August vault. Routes automatically: V1 single-asset vaults deposit the underlying directly; V2 multi-asset vaults route through the adapter for non-underlying depositAsset. If allowance is insufficient the method submits an approve transaction first (the approve step always waits for confirmation to close a race window, regardless of wait).

Parameters

ParameterTypeDescription
optionsIContractWriteOptionsIContractWriteOptions. target and wallet are required; pass amount, depositAsset (defaults to the vault's underlying), chainId, poolName, wait, and isDepositWithPermit as needed.

Returns

Promise<string>

The deposit TransactionResponse, or undefined if an approval-only path was taken and no deposit transaction was sent.

Throws

AugustValidationError on invalid inputs (bad address, bad amount).

Throws

AugustSDKError on RPC / contract revert during the deposit.

Example

const tx = await augustSdk.evm.vaultDeposit({
  target: vaultAddress,
  wallet: walletAddress,
  amount: '100',
  wait: true,
});

vaultRedeem()

vaultRedeem(options): Promise<string>

Claim assets from a matured redemption request on a dated-redemption (RWA-style) vault. The year, month, day, and receiverIndex tuple identifies which batch of the user's matured requests to redeem from — these are emitted at request-time and indexed by the subgraph.

For non-dated vaults that complete their redemption via instantRedeem, see EVMAdapter.vaultRequestRedeem with isInstantRedeem: true.

Parameters

ParameterTypeDescription
optionsIContractWriteOptions & objectIContractWriteOptions plus year / month / day / receiverIndex identifying the matured batch to claim.

Returns

Promise<string>

The redeem TransactionResponse.

Throws

AugustValidationError on invalid inputs.

Throws

AugustSDKError on RPC / contract revert.

Example

const tx = await augustSdk.evm.vaultRedeem({
  target: vaultAddress,
  wallet: walletAddress,
  amount: shareAmount,
  year: '2026',
  month: '06',
  day: '02',
  receiverIndex: '0',
  wait: true,
});

vaultRequestRedeem()

vaultRequestRedeem(options): Promise<string>

Submit a redemption request against a vault. Shares are escrowed and the underlying assets are released asynchronously by the protocol; callers collect the matured assets via EVMAdapter.vaultRedeem, or use the instant-redeem variant by setting isInstantRedeem: true.

Parameters

ParameterTypeDescription
optionsIContractWriteOptionsIContractWriteOptions. target, wallet, and amount (in shares) are required. Set isInstantRedeem: true to take the instant-redeem path when the vault supports it.

Returns

Promise<string>

The request TransactionResponse, or undefined if the request could not be built (validation failure).

Throws

AugustValidationError on invalid inputs.

Throws

AugustSDKError on RPC / contract revert.

Example

const tx = await augustSdk.evm.vaultRequestRedeem({
  target: vaultAddress,
  wallet: walletAddress,
  amount: shareAmount,
  wait: true,
});

Functions

getEvmVaultV1()

getEvmVaultV1(tokenizedVault, options): Promise<IVault>

Fetch EVM vault data for v1 vault contracts (legacy format). Queries on-chain state and combines with backend metadata.

Parameters

ParameterTypeDescription
tokenizedVaultITokenizedVaultVault metadata from backend
optionsIVaultBaseOptionsRPC configuration and chain details

Returns

Promise<IVault>

Formatted vault object or null if closed/invisible


getEvmVaultV2()

getEvmVaultV2(tokenizedVault, options): Promise<IVault>

Fetch EVM vault data for v2 vault contracts (current format). V2 vaults use separate contracts for vault, receipt token, and whitelist. Queries all three contracts and combines results.

Parameters

ParameterTypeDescription
tokenizedVaultITokenizedVaultVault metadata from backend
optionsIVaultBaseOptionsRPC configuration and chain details

Returns

Promise<IVault>

Formatted vault object or null if closed/invisible