import type { Effect } from "effect"; import type { Abi, Address, Hash, Hex, TransactionReceipt } from "viem"; import type { ClientNotFoundError, ContractReadError, ContractWriteError, EventDecodeError, GasEstimationError, InsufficientFundsError, ReceiptTimeoutError, SimulationFailedError, TransactionFailedError, TransactionReplacedError, TransportError, UserRejectedError, WalletNotConnectedError, WrongNetworkError } from "../../core/index.js"; import type { DecodedEvent } from "../../events/index.js"; import type { GasPriceUnavailableError } from "../../gas/index.js"; import type { TxPolicy, TxState } from "../../tx/index.js"; import type { ContractEventName, ContractFunctionName, WriteParams } from "../../types/index.js"; export type WriteAndTrackParams> = WriteParams & { policy?: TxPolicy; }; export type WriteAndTrackResult = { hash: Hash; receipt: TransactionReceipt; events: DecodedEvent>[]; }; export type WriteAndTrackError = SimulationFailedError | ContractReadError | GasEstimationError | ContractWriteError | InsufficientFundsError | UserRejectedError | GasPriceUnavailableError | TransactionFailedError | TransactionReplacedError | ReceiptTimeoutError | ClientNotFoundError | TransportError | WalletNotConnectedError | WrongNetworkError | EventDecodeError; export type PipelineHooks = { readonly onSimulating?: () => Effect.Effect; readonly onEstimated?: (gas: bigint, nonce: number | bigint) => Effect.Effect; readonly onSigning?: () => Effect.Effect; readonly onSubmitted?: (hash: Hash) => Effect.Effect; readonly onReplaced?: (oldHash: Hash, newHash: Hash, reason: string) => Effect.Effect; readonly onMined?: (receipt: TransactionReceipt) => Effect.Effect; }; export type NonceReservation = { readonly nonce: number | bigint; readonly reserved: boolean; readonly markSubmitted: () => Effect.Effect; }; export type PreparedOverrides = { readonly type?: "legacy" | "eip1559" | "eip2930" | "eip4844" | "eip7702"; readonly gas: bigint; readonly nonce: number | bigint; readonly gasPrice?: bigint; readonly maxFeePerGas?: bigint; readonly maxPriorityFeePerGas?: bigint; readonly accessList?: readonly { address: Address; storageKeys: readonly Hex[]; }[]; }; export type PrepareResult = { readonly baseOverrides: PreparedOverrides; readonly finalGas: bigint; readonly txPreview: TxState["tx"]; }; //# sourceMappingURL=types.d.ts.map