import type { Address, PublicClient, WalletClient } from 'viem'; /** * UniswapV2Pair_json ABI * * This ABI is typed using viem's type system for full type safety. */ export declare const UniswapV2Pair_jsonAbi: readonly [{ readonly inputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "value"; readonly type: "uint256"; }]; readonly name: "Approval"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount0"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount1"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "Burn"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount0"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount1"; readonly type: "uint256"; }]; readonly name: "Mint"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount0In"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount1In"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount0Out"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount1Out"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "Swap"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint112"; readonly name: "reserve0"; readonly type: "uint112"; }, { readonly indexed: false; readonly internalType: "uint112"; readonly name: "reserve1"; readonly type: "uint112"; }]; readonly name: "Sync"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "value"; readonly type: "uint256"; }]; readonly name: "Transfer"; readonly type: "event"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "DOMAIN_SEPARATOR"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "MINIMUM_LIQUIDITY"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "PERMIT_TYPEHASH"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "allowance"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "value"; readonly type: "uint256"; }]; readonly name: "approve"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "burn"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amount0"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount1"; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "decimals"; readonly outputs: readonly [{ readonly internalType: "uint8"; readonly name: ""; readonly type: "uint8"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "factory"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "getReserves"; readonly outputs: readonly [{ readonly internalType: "uint112"; readonly name: "_reserve0"; readonly type: "uint112"; }, { readonly internalType: "uint112"; readonly name: "_reserve1"; readonly type: "uint112"; }, { readonly internalType: "uint32"; readonly name: "_blockTimestampLast"; readonly type: "uint32"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_token0"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_token1"; readonly type: "address"; }]; readonly name: "initialize"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "kLast"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "mint"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "liquidity"; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "name"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "nonces"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "value"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly internalType: "uint8"; readonly name: "v"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "r"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "s"; readonly type: "bytes32"; }]; readonly name: "permit"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "price0CumulativeLast"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "price1CumulativeLast"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "skim"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amount0Out"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount1Out"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "bytes"; readonly name: "data"; readonly type: "bytes"; }]; readonly name: "swap"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "symbol"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly []; readonly name: "sync"; readonly outputs: readonly []; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "token0"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "token1"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: true; readonly inputs: readonly []; readonly name: "totalSupply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly payable: false; readonly stateMutability: "view"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "value"; readonly type: "uint256"; }]; readonly name: "transfer"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly constant: false; readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "value"; readonly type: "uint256"; }]; readonly name: "transferFrom"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly payable: false; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; /** * Type-safe ABI for UniswapV2Pair_json */ export type UniswapV2Pair_jsonAbi = typeof UniswapV2Pair_jsonAbi; /** * Contract instance type for UniswapV2Pair_json */ export type UniswapV2Pair_jsonContract = any; /** * UniswapV2Pair_json Contract Class * * Provides a class-based API similar to TypeChain for interacting with the contract. * * @example * ```typescript * import { createPublicClient, createWalletClient, http } from 'viem'; * import { mainnet } from 'viem/chains'; * import { UniswapV2Pair_json } from 'UniswapV2Pair_json'; * * const publicClient = createPublicClient({ chain: mainnet, transport: http() }); * const walletClient = createWalletClient({ chain: mainnet, transport: http() }); * * const contract = new UniswapV2Pair_json('0x...', { publicClient, walletClient }); * * // Read functions * const result = await contract.balanceOf('0x...'); * * // Write functions * const hash = await contract.transfer('0x...', 1000n); * * // Simulate transactions (dry-run) * const simulation = await contract.simulate.transfer('0x...', 1000n); * console.log('Gas estimate:', simulation.request.gas); * * // Watch events * const unwatch = contract.watch.Transfer((event) => { * console.log('Transfer event:', event); * }); * ``` */ export declare class UniswapV2Pair_json { private contract; private contractAddress; private publicClient; constructor(address: Address, clients: { publicClient: PublicClient; walletClient?: WalletClient; }); /** * Get the contract address */ get address(): Address; /** * Get the underlying viem contract instance */ getContract(): UniswapV2Pair_jsonContract; /** * DOMAIN_SEPARATOR * view */ DOMAIN_SEPARATOR(): Promise<`0x${string}`>; /** * MINIMUM_LIQUIDITY * view */ MINIMUM_LIQUIDITY(): Promise; /** * PERMIT_TYPEHASH * view */ PERMIT_TYPEHASH(): Promise<`0x${string}`>; /** * allowance * view */ allowance(arg0: `0x${string}`, arg1: `0x${string}`): Promise; /** * balanceOf * view */ balanceOf(arg0: `0x${string}`): Promise; /** * decimals * view */ decimals(): Promise; /** * factory * view */ factory(): Promise<`0x${string}`>; /** * getReserves * view */ getReserves(): Promise<[bigint, bigint, bigint]>; /** * kLast * view */ kLast(): Promise; /** * name * view */ name(): Promise; /** * nonces * view */ nonces(arg0: `0x${string}`): Promise; /** * price0CumulativeLast * view */ price0CumulativeLast(): Promise; /** * price1CumulativeLast * view */ price1CumulativeLast(): Promise; /** * symbol * view */ symbol(): Promise; /** * token0 * view */ token0(): Promise<`0x${string}`>; /** * token1 * view */ token1(): Promise<`0x${string}`>; /** * totalSupply * view */ totalSupply(): Promise; /** * approve * nonpayable * @param options Optional transaction parameters (value, gas, nonce, etc.) */ approve(spender: `0x${string}`, value: bigint, options?: { accessList?: import('viem').AccessList; authorizationList?: import('viem').AuthorizationList; chain?: import('viem').Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise<`0x${string}`>; /** * burn * nonpayable * @param options Optional transaction parameters (value, gas, nonce, etc.) */ burn(to: `0x${string}`, options?: { accessList?: import('viem').AccessList; authorizationList?: import('viem').AuthorizationList; chain?: import('viem').Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise<`0x${string}`>; /** * initialize * nonpayable * @param options Optional transaction parameters (value, gas, nonce, etc.) */ initialize(_token0: `0x${string}`, _token1: `0x${string}`, options?: { accessList?: import('viem').AccessList; authorizationList?: import('viem').AuthorizationList; chain?: import('viem').Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise<`0x${string}`>; /** * mint * nonpayable * @param options Optional transaction parameters (value, gas, nonce, etc.) */ mint(to: `0x${string}`, options?: { accessList?: import('viem').AccessList; authorizationList?: import('viem').AuthorizationList; chain?: import('viem').Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise<`0x${string}`>; /** * permit * nonpayable * @param options Optional transaction parameters (value, gas, nonce, etc.) */ permit(owner: `0x${string}`, spender: `0x${string}`, value: bigint, deadline: bigint, v: bigint, r: `0x${string}`, s: `0x${string}`, options?: { accessList?: import('viem').AccessList; authorizationList?: import('viem').AuthorizationList; chain?: import('viem').Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise<`0x${string}`>; /** * skim * nonpayable * @param options Optional transaction parameters (value, gas, nonce, etc.) */ skim(to: `0x${string}`, options?: { accessList?: import('viem').AccessList; authorizationList?: import('viem').AuthorizationList; chain?: import('viem').Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise<`0x${string}`>; /** * swap * nonpayable * @param options Optional transaction parameters (value, gas, nonce, etc.) */ swap(amount0Out: bigint, amount1Out: bigint, to: `0x${string}`, data: `0x${string}`, options?: { accessList?: import('viem').AccessList; authorizationList?: import('viem').AuthorizationList; chain?: import('viem').Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise<`0x${string}`>; /** * sync * nonpayable * @param options Optional transaction parameters (value, gas, nonce, etc.) */ sync(options?: { accessList?: import('viem').AccessList; authorizationList?: import('viem').AuthorizationList; chain?: import('viem').Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise<`0x${string}`>; /** * transfer * nonpayable * @param options Optional transaction parameters (value, gas, nonce, etc.) */ transfer(to: `0x${string}`, value: bigint, options?: { accessList?: import('viem').AccessList; authorizationList?: import('viem').AuthorizationList; chain?: import('viem').Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise<`0x${string}`>; /** * transferFrom * nonpayable * @param options Optional transaction parameters (value, gas, nonce, etc.) */ transferFrom(from: `0x${string}`, to: `0x${string}`, value: bigint, options?: { accessList?: import('viem').AccessList; authorizationList?: import('viem').AuthorizationList; chain?: import('viem').Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise<`0x${string}`>; /** * Simulate contract write operations (dry-run without sending transaction) * * @example * const result = await contract.simulate.transfer('0x...', 1000n); * console.log('Gas estimate:', result.request.gas); * console.log('Would succeed:', result.result); */ get simulate(): { /** * Simulate approve * Returns gas estimate and result without sending transaction * @param options Optional transaction parameters (value, gas, nonce, etc.) */ approve(spender: `0x${string}`, value: bigint, options?: { accessList?: import("viem").AccessList; authorizationList?: import("viem").AuthorizationList; chain?: import("viem").Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise; /** * Simulate burn * Returns gas estimate and result without sending transaction * @param options Optional transaction parameters (value, gas, nonce, etc.) */ burn(to: `0x${string}`, options?: { accessList?: import("viem").AccessList; authorizationList?: import("viem").AuthorizationList; chain?: import("viem").Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise<[bigint, bigint]>; /** * Simulate initialize * Returns gas estimate and result without sending transaction * @param options Optional transaction parameters (value, gas, nonce, etc.) */ initialize(_token0: `0x${string}`, _token1: `0x${string}`, options?: { accessList?: import("viem").AccessList; authorizationList?: import("viem").AuthorizationList; chain?: import("viem").Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise; /** * Simulate mint * Returns gas estimate and result without sending transaction * @param options Optional transaction parameters (value, gas, nonce, etc.) */ mint(to: `0x${string}`, options?: { accessList?: import("viem").AccessList; authorizationList?: import("viem").AuthorizationList; chain?: import("viem").Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise; /** * Simulate permit * Returns gas estimate and result without sending transaction * @param options Optional transaction parameters (value, gas, nonce, etc.) */ permit(owner: `0x${string}`, spender: `0x${string}`, value: bigint, deadline: bigint, v: bigint, r: `0x${string}`, s: `0x${string}`, options?: { accessList?: import("viem").AccessList; authorizationList?: import("viem").AuthorizationList; chain?: import("viem").Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise; /** * Simulate skim * Returns gas estimate and result without sending transaction * @param options Optional transaction parameters (value, gas, nonce, etc.) */ skim(to: `0x${string}`, options?: { accessList?: import("viem").AccessList; authorizationList?: import("viem").AuthorizationList; chain?: import("viem").Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise; /** * Simulate swap * Returns gas estimate and result without sending transaction * @param options Optional transaction parameters (value, gas, nonce, etc.) */ swap(amount0Out: bigint, amount1Out: bigint, to: `0x${string}`, data: `0x${string}`, options?: { accessList?: import("viem").AccessList; authorizationList?: import("viem").AuthorizationList; chain?: import("viem").Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise; /** * Simulate sync * Returns gas estimate and result without sending transaction * @param options Optional transaction parameters (value, gas, nonce, etc.) */ sync(options?: { accessList?: import("viem").AccessList; authorizationList?: import("viem").AuthorizationList; chain?: import("viem").Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise; /** * Simulate transfer * Returns gas estimate and result without sending transaction * @param options Optional transaction parameters (value, gas, nonce, etc.) */ transfer(to: `0x${string}`, value: bigint, options?: { accessList?: import("viem").AccessList; authorizationList?: import("viem").AuthorizationList; chain?: import("viem").Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise; /** * Simulate transferFrom * Returns gas estimate and result without sending transaction * @param options Optional transaction parameters (value, gas, nonce, etc.) */ transferFrom(from: `0x${string}`, to: `0x${string}`, value: bigint, options?: { accessList?: import("viem").AccessList; authorizationList?: import("viem").AuthorizationList; chain?: import("viem").Chain | null; dataSuffix?: `0x${string}`; gas?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint; nonce?: number; value?: bigint; }): Promise; }; /** * Watch contract events * * @example * // Watch all Transfer events * const unwatch = contract.watch.Transfer((event) => { * console.log('Transfer:', event); * }); * * // Stop watching * unwatch(); */ get watch(): { /** * Watch Approval events * @param callback Function to call when event is emitted * @param filter Optional filter for indexed parameters * @returns Unwatch function to stop listening */ Approval: (callback: (event: { owner: `0x${string}`; spender: `0x${string}`; value: bigint; }) => void, filter?: { owner: `0x${string}`; spender: `0x${string}`; }) => () => void; /** * Watch Burn events * @param callback Function to call when event is emitted * @param filter Optional filter for indexed parameters * @returns Unwatch function to stop listening */ Burn: (callback: (event: { sender: `0x${string}`; to: `0x${string}`; amount0: bigint; amount1: bigint; }) => void, filter?: { sender: `0x${string}`; to: `0x${string}`; }) => () => void; /** * Watch Mint events * @param callback Function to call when event is emitted * @param filter Optional filter for indexed parameters * @returns Unwatch function to stop listening */ Mint: (callback: (event: { sender: `0x${string}`; amount0: bigint; amount1: bigint; }) => void, filter?: { sender: `0x${string}`; }) => () => void; /** * Watch Swap events * @param callback Function to call when event is emitted * @param filter Optional filter for indexed parameters * @returns Unwatch function to stop listening */ Swap: (callback: (event: { sender: `0x${string}`; to: `0x${string}`; amount0In: bigint; amount1In: bigint; amount0Out: bigint; amount1Out: bigint; }) => void, filter?: { sender: `0x${string}`; to: `0x${string}`; }) => () => void; /** * Watch Sync events * @param callback Function to call when event is emitted * @param filter Optional filter for indexed parameters * @returns Unwatch function to stop listening */ Sync: (callback: (event: { reserve0: bigint; reserve1: bigint; }) => void) => () => void; /** * Watch Transfer events * @param callback Function to call when event is emitted * @param filter Optional filter for indexed parameters * @returns Unwatch function to stop listening */ Transfer: (callback: (event: { from: `0x${string}`; to: `0x${string}`; value: bigint; }) => void, filter?: { from: `0x${string}`; to: `0x${string}`; }) => () => void; }; }