EVMAdapter
SDK Reference / EVMAdapter
EVMAdapter
EVM Adapter for August SDK
Classes
default
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
signer?
any
Returns
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
options
IAllowanceOptions
Returns
Promise<bigint>
Allowance as a raw bigint.
Example
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
options
IContractWriteOptions
Returns
Promise<ApproveResult>
Example
balanceOf()
balanceOf(
options):Promise<bigint>
Read an ERC-20 token balance.
Parameters
options
IBalanceOfOptions
Returns
Promise<bigint>
Balance as a raw bigint.
Example
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
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
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
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
options
ISwapRouterDirectDepositOptions
ISwapRouterDirectDepositOptions.
Returns
Promise<string>
The transaction hash of the deposit call.
getDeposited()
getDeposited(
options):Promise<INormalizedNumber>
Parameters
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>
getRemainingAllocations()
getRemainingAllocations(
options):Promise<INormalizedNumber>
Parameters
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>
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
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
isWhitelisted()
isWhitelisted(
options):Promise<boolean>
Parameters
options
{ wallet: `0x${string}`; whitelist: `0x${string}`; }
options.wallet
`0x${string}`
options.whitelist
`0x${string}`
Returns
Promise<boolean>
maxDeposit()
maxDeposit(
options):Promise<bigint>
Read the maximum deposit accepted by the vault for the supplied receiver. Useful for "vault is full" gates.
Parameters
options
IMaxDepositOptions
Returns
Promise<bigint>
Max deposit as a raw bigint.
Example
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
options
IPreviewDepositOptions
Returns
Promise<bigint>
Shares minted in raw on-chain units (share-token decimals).
Example
previewRedeem()
previewRedeem(
options):Promise<bigint>
Preview the assets returned by redeeming a number of shares, without broadcasting a transaction.
Parameters
options
IPreviewRedeemOptions
Returns
Promise<bigint>
Assets returned in raw on-chain units (asset decimals).
Example
sendersWhitelistAddress()
sendersWhitelistAddress(
options):Promise<`0x${string}`>
Parameters
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
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
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
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
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
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
options
IContractWriteOptions
{ target, wallet } (other fields ignored).
Returns
Promise<INormalizedNumber>
Normalized allowance ({ raw, normalized }), or undefined when target / wallet fail address validation.
Example
vaultApprove()
vaultApprove(
options):Promise<string>
Parameters
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
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
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
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
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
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
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
tokenizedVault
ITokenizedVault
Vault metadata from backend
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
tokenizedVault
ITokenizedVault
Vault metadata from backend
Returns
Promise<IVault>
Formatted vault object or null if closed/invisible
Last updated