Configuration
Configuration options and settings for @tetherto/wdk-protocol-swap-velora-evm
Swap Service Configuration
The VeloraProtocolEvm accepts a configuration object that defines fee controls and behavior:
import VeloraProtocolEvm from '@tetherto/wdk-protocol-swap-velora-evm'
import { WalletAccountEvm } from '@tetherto/wdk-wallet-evm'
// Create wallet account first
const account = new WalletAccountEvm(seedPhrase, "0'/0/0", {
provider: 'https://ethereum-rpc.publicnode.com'
})
// Create swap service with configuration
const swapProtocol = new VeloraProtocolEvm(account, {
swapMaxFee: 200000000000000n // Optional: Max swap fee in wei
})Account Configuration
The swap service uses the wallet account configuration for network access and signing. The account must expose an EVM-compatible JSON-RPC URL or EIP-1193 provider; a generic interface type does not make a non-EVM account compatible with this module:
import { WalletAccountEvm, WalletAccountReadOnlyEvm } from '@tetherto/wdk-wallet-evm'
// Full access account
const account = new WalletAccountEvm(
seedPhrase,
"0'/0/0",
{
provider: 'https://ethereum-rpc.publicnode.com'
}
)
// Read-only account (quotes only)
const readOnly = new WalletAccountReadOnlyEvm(
'0xYourAddress',
{
provider: 'https://ethereum-rpc.publicnode.com'
}
)
// Create swap service
const swapProtocol = new VeloraProtocolEvm(account, {
swapMaxFee: 200000000000000n
})Configuration Options
Swap Max Fee
The swapMaxFee option sets an upper bound for total gas costs to prevent excessive fees.
Type: bigint (optional)
Unit: Wei
Examples:
const config = {
// Cap total gas fee to 0.0002 ETH (in wei)
swapMaxFee: 200000000000000n,
}
// Usage example
try {
const result = await swapProtocol.swap({
tokenIn: '0xdAC17F958D2ee523a2206206994597C13D831ec7', // USDt (6 decimals)
tokenOut: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', // WETH (18 decimals)
tokenInAmount: 1000000n
})
} catch (error) {
if (error.message.includes('max fee')) {
console.error('Swap stopped: Fee too high')
}
}ERC‑4337 (Account Abstraction) Configuration
When using ERC‑4337 smart accounts (@tetherto/wdk-wallet-evm-erc-4337), you can override fee behavior per swap and specify a paymaster token:
import { WalletAccountEvmErc4337 } from '@tetherto/wdk-wallet-evm-erc-4337'
const aa = new WalletAccountEvmErc4337(seedPhrase, "0'/0/0", {
chainId: 1,
provider: 'https://ethereum-rpc.publicnode.com',
bundlerUrl: 'YOUR_BUNDLER_URL',
paymasterUrl: 'YOUR_PAYMASTER_URL',
paymasterAddress: 'YOUR_PAYMASTER_ADDRESS',
safeModulesVersion: '0.3.0',
paymasterToken: {
address: '0xdAC17F958D2ee523a2206206994597C13D831ec7'
}
})
const swapAA = new VeloraProtocolEvm(aa, { swapMaxFee: 200000000000000n })
const result = await swapAA.swap({
tokenIn: '0xTokenIn',
tokenOut: '0xTokenOut',
tokenInAmount: 1000000n
}, {
paymasterToken: {
address: '0xdAC17F958D2ee523a2206206994597C13D831ec7'
},
swapMaxFee: 200000000000000n // Per‑swap override
})Per-call ERC‑4337 Config
The second argument to swap() and quoteSwap() accepts ERC‑4337 wallet config overrides only when the protocol uses the concrete WalletAccountEvmErc4337 or WalletAccountReadOnlyEvmErc4337 class, respectively. Use it to switch paymaster token, sponsorship policy, or native-coin fee behavior for a single call. swap() also accepts swapMaxFee as a per-swap fee cap. Standard EVM accounts use one ordinary EVM transaction and do not apply these per-call ERC‑4337 overrides.
Type: partial ERC‑4337 wallet config (optional)
Example:
const result = await swapAA.swap({
tokenIn: '0xdAC17F...ec7',
tokenOut: '0xC02a...6Cc2', // WETH
tokenInAmount: 1000000n
}, {
paymasterToken: {
address: '0xdAC17F958D2ee523a2206206994597C13D831ec7'
},
swapMaxFee: 200000000000000n
})Network Support
velora supports multiple EVM networks (e.g., Ethereum, Polygon, Arbitrum). Ensure your account is configured with a valid provider for the target network.
// Ethereum Mainnet
const eth = new WalletAccountEvm(seedPhrase, "0'/0/0", {
provider: 'https://ethereum-rpc.publicnode.com'
})
// Polygon
const polygon = new WalletAccountEvm(seedPhrase, "0'/0/0", {
provider: 'https://polygon-bor-rpc.publicnode.com'
})Swap Options
When calling swap, provide the swap parameters:
const swapOptions = {
tokenIn: '0xTokenIn', // ERC‑20 to sell
tokenOut: '0xTokenOut', // ERC‑20 to buy
tokenInAmount: 1000000n, // exact input (base units)
// OR
// tokenOutAmount: 1000000n, // exact output (base units)
to: '0xRecipient' // optional recipient (defaults to your address)
}
const result = await swapProtocol.swap(swapOptions)Parameters
tokenIn(string): ERC‑20 address to selltokenOut(string): ERC‑20 address to buytokenInAmount(bigint, optional): exact input amount in token base unitstokenOutAmount(bigint, optional): exact output amount in token base unitsto(string, optional): recipient address (defaults to account address)
Note: Use either
tokenInAmountORtokenOutAmount, not both.
Node.js Quickstart
Get started with WDK in a Node.js environment
WDK velora Swap Protocol API
Get started with WDK's velora Swap Protocol API
WDK velora Swap Protocol Usage
Get started with WDK's velora Swap Protocol usage