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
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
| Parameter | Type |
|---|---|
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
| Parameter | Type |
|---|---|
options | IAllowanceOptions |
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
| Parameter | Type |
|---|---|
options | IContractWriteOptions |
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
| Parameter | Type |
|---|---|
options | IBalanceOfOptions |
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
| Parameter | Type | Description |
|---|---|---|
options | IClaimWithdrawalOptions | IClaimWithdrawalOptions: 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
| Parameter | Type | Description |
|---|---|---|
options | INativeDepositOptions | INativeDepositOptions: 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
| Parameter | Type | Description |
|---|---|---|
options | ISwapRouterNativeDepositOptions | ISwapRouterNativeDepositOptions. |
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
| Parameter | Type | Description |
|---|---|---|
options | ISwapRouterDirectDepositOptions | ISwapRouterDirectDepositOptions. |
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
| Parameter | Type |
|---|---|
options | IGetBurnableAmountByReceiverOptions |
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
| Parameter | Type |
|---|---|
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
| Parameter | Type |
|---|---|
options | IGetIdleLiquidityOptions |
Returns
Promise<bigint>
Idle liquidity as a raw bigint.
Example
const idle = await augustSdk.evm.getIdleLiquidity({ vault });getRemainingAllocations()
getRemainingAllocations(
options):Promise<INormalizedNumber>
Parameters
| Parameter | Type |
|---|---|
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
| Parameter | Type |
|---|---|
options | IWithdrawalDateOptions |
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
| Parameter | Type |
|---|---|
options | IWithdrawalDateOptions |
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
| Parameter | Type | Description |
|---|---|---|
options | ISwapRouterDepositResultOptions | ISwapRouterDepositResultOptions. |
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
| Parameter | Type |
|---|---|
options | IGetWithdrawalEpochOptions |
Returns
Promise<IWithdrawalEpoch>
IWithdrawalEpoch.
Example
const epoch = await augustSdk.evm.getWithdrawalEpoch({ vault });isWhitelisted()
isWhitelisted(
options):Promise<boolean>
Parameters
| Parameter | Type |
|---|---|
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
| Parameter | Type |
|---|---|
options | ILagDurationOptions |
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
| Parameter | Type |
|---|---|
options | IMaxDepositOptions |
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
| Parameter | Type |
|---|---|
options | IPreviewDepositOptions |
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
| Parameter | Type |
|---|---|
options | IPreviewRedeemOptions |
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
| Parameter | Type |
|---|---|
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
| Parameter | Type | Description |
|---|---|---|
signer | any | Either 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
| Parameter | Type | Description |
|---|---|---|
options | ISwapAndDepositOptions | ISwapAndDepositOptions. |
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
| Parameter | Type | Description |
|---|---|---|
options | ISwapRouterDepositOptions | ISwapRouterDepositOptions. |
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
| Parameter | Type | Description |
|---|---|---|
options | IContractWriteOptions | { 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
| Parameter | Type |
|---|---|
options | IContractWriteOptions |
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
| Parameter | Type | Description |
|---|---|---|
options | IContractWriteOptions | IContractWriteOptions. 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
| Parameter | Type | Description |
|---|---|---|
options | IContractWriteOptions & object | IContractWriteOptions 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
| Parameter | Type | Description |
|---|---|---|
options | IContractWriteOptions | IContractWriteOptions. 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
| Parameter | Type | Description |
|---|---|---|
tokenizedVault | ITokenizedVault | Vault metadata from backend |
options | IVaultBaseOptions | RPC 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
| Parameter | Type | Description |
|---|---|---|
tokenizedVault | ITokenizedVault | Vault metadata from backend |
options | IVaultBaseOptions | RPC configuration and chain details |
Returns
Promise<IVault>
Formatted vault object or null if closed/invisible
AugustApi
API reference for the AugustApi class (sdk.apiModule) — read-only backend reads: transparency dashboard, unrealized PnL, governance, fee config, and the authenticated loan-book and risk endpoints.
SolanaAdapter
Solana adapter for the Upshift SDK — Anchor-based vault deposits, redemptions, and balance/state reads over a configurable RPC connection.