UNPKG

@account-kit/infra

Version:

adapters for @aa-sdk/core for interacting with alchemy services

80 lines (79 loc) 2.69 kB
import type { UserOperationStruct, UserOperationRequest, UserOperationOverrides, EntryPointVersion } from "@aa-sdk/core"; import type { Address, Hash, Hex } from "viem"; export declare enum SimulateAssetType { NATIVE = "NATIVE", ERC20 = "ERC20", ERC721 = "ERC721", ERC1155 = "ERC1155", /** * Special contracts that don't follow ERC 721/1155. Currently limited to * CryptoKitties and CryptoPunks. */ SPECIAL_NFT = "SPECIAL_NFT" } export declare enum SimulateChangeType { APPROVE = "APPROVE", TRANSFER = "TRANSFER" } export type SimulateUserOperationAssetChangesRequest = [ UserOperationStruct, entryPoint: Address, blockNumber?: Hash ]; export type SimulateUserOperationAssetChangesResponse = { changes: SimulateAssetChange[]; error?: SimulateAssetChangesError; }; export interface SimulateAssetChangesError extends Record<string, any> { message: string; } export interface SimulateAssetChange { assetType: SimulateAssetType; changeType: SimulateChangeType; from: Address; to: Address; rawAmount?: string; amount?: string; contactAddress: Address; tokenId?: string; decimals: number; symbol: string; name?: string; logo?: string; } export type RequestGasAndPaymasterAndDataRequest = [ { policyId: string | string[]; entryPoint: Address; erc20Context?: { tokenAddress: Address; permit?: Hex; maxTokenAmount?: BigInt; }; dummySignature: Hex; userOperation: UserOperationRequest; overrides?: UserOperationOverrides; } ]; export type RequestGasAndPaymasterAndDataResponse<TEntryPointVersion extends EntryPointVersion = EntryPointVersion> = Pick<UserOperationRequest, "callGasLimit" | "preVerificationGas" | "verificationGasLimit" | "maxFeePerGas" | "maxPriorityFeePerGas"> & (TEntryPointVersion extends "0.6.0" ? { paymasterAndData: UserOperationRequest<"0.6.0">["paymasterAndData"]; } : TEntryPointVersion extends "0.7.0" ? Pick<UserOperationRequest<"0.7.0">, "paymaster" | "paymasterData" | "paymasterVerificationGasLimit" | "paymasterPostOpGasLimit"> : never); export type RequestPaymasterTokenQuoteRequest = [ { policyId: string; entryPoint: Address; erc20Context?: { tokenAddress: Address; permit?: Hex; maxTokenAmount?: BigInt; }; dummySignature: Hex; userOperation: UserOperationRequest; overrides?: UserOperationOverrides; } ]; export type RequestPaymasterTokenQuoteResponse = { tokensPerEth: string; estimatedTokenAmount: string; estimatedUsd: number; };