UNPKG

@runonflux/aa-schnorr-multisig-sdk

Version:

Account Abstraction Schnorr Multi-Signatures SDK

105 lines (104 loc) 3.12 kB
import type { Address, Hash } from "viem"; export type Hex = `0x${string}`; export type EmptyHex = `0x`; export type PromiseOrValue<T> = T | Promise<T>; export type BigNumberish = string | bigint | number; export type BytesLike = Uint8Array | string; export interface UserOperationCallData { target: Address; data: Hex; value?: bigint; } export interface UserOperationRequest { sender: string; nonce: Hex; initCode: Hex | EmptyHex; callData: Hex; callGasLimit: Hex; verificationGasLimit: Hex; preVerificationGas: Hex; maxFeePerGas: Hex; maxPriorityFeePerGas: Hex; paymasterAndData: Hex | EmptyHex; signature: Hex; } export interface UserOperationEstimateGasResponse { preVerificationGas: BigNumberish; verificationGasLimit: BigNumberish; callGasLimit: BigNumberish; } export interface UserOperationResponse extends UserOperationRequest { entryPoint: Address; blockNumber: BigNumberish; blockHash: Hash; transactionHash: Hash; } export interface UserOperationReceiptLog { blockHash: Hash; blockNumber: BigNumberish; transactionIndex: BigNumberish; address: Address; logIndex: BigNumberish; data: Hex; removed: boolean; topics: string[]; transactionHash: Hash; } export interface UserOperationReceiptObject { blockHash: Hash; blockNumber: BigNumberish; transactionIndex: BigNumberish; transactionHash: Hash; from: Address; to: Address; cumulativeGasUsed: BigNumberish; gasUsed: BigNumberish; contractAddress: Address; logs: UserOperationReceiptLog[]; logsBloom: Hex; root: Hex; status: number; effectiveGasPrice: BigNumberish; type: string; } export interface UserOperationReceipt { userOpHash: Hash; entryPoint: Address; sender: Address; nonce: BigNumberish; paymaster?: Address; actualGasCost: BigNumberish; actualGasUsed: BigNumberish; success: boolean; reason?: string; logs: string[]; receipt: UserOperationReceiptObject; } export interface UserOperationStruct { sender: PromiseOrValue<string>; nonce: PromiseOrValue<BigNumberish>; initCode: PromiseOrValue<BytesLike | "0x">; callData: PromiseOrValue<BytesLike>; callGasLimit?: PromiseOrValue<BigNumberish>; verificationGasLimit?: PromiseOrValue<BigNumberish>; preVerificationGas?: PromiseOrValue<BigNumberish>; maxFeePerGas?: PromiseOrValue<BigNumberish>; maxPriorityFeePerGas?: PromiseOrValue<BigNumberish>; paymasterAndData: PromiseOrValue<BytesLike | "0x">; signature: PromiseOrValue<BytesLike>; } export interface UserOperationTxData { request: UserOperationRequest; opHash: Hex; } export interface GasEstimatorLimits { callGasLimit?: number; preVerificationGas?: number; verificationGasLimit?: number; } export interface GasEstimatorMax { maxFeePerGas?: number; maxPriorityFeePerGas?: number; } export type BatchUserOperationCallData = UserOperationCallData[]; export type UserOperationOverrides = Pick<UserOperationStruct, "maxFeePerGas" | "maxPriorityFeePerGas">;