@funkit/connect
Version:
Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.
42 lines (41 loc) • 1.58 kB
TypeScript
import { type CheckoutHistoryItem, type CheckoutState } from '@funkit/api-base';
import type { ApiFunkitCheckoutActionParams } from '@funkit/utils';
import type { Address, Hex } from 'viem';
import type { MergedMultiStepDirectExecution } from '../domains/checkoutNotifications';
export type PurifiedCheckoutHistoryItem = {
depositAddr?: Address;
directExecution: boolean;
id: Hex;
fromAmountBaseUnit: string;
fromChainId: string;
fromTokenAddress: Address;
state: CheckoutState;
toAmountBaseUnit: string;
toChainId: string;
toTokenAddress: Address;
createdTimeMs: number;
updatedTimeMs: number;
additionalActions: ApiFunkitCheckoutActionParams[];
isWithdrawal: boolean;
/**
* Customer-specific, presentation-only metadata. Kept in its own bag so
* customer concepts don't leak onto the shared top-level shape. Only present
* when there's something to surface for the item's customer.
*/
customerMetadata?: {
/**
* For Lighter withdrawal direct executions: which route was used.
* `'secure'` is Lighter's native bridge to mainnet (recorded as
* `EXTERNALLY_FULFILLED`); `'fast'` routes through Fun + Relay.
*/
lighterWithdrawalType?: 'fast' | 'secure';
};
} & ({
depositAddr: Address;
directExecution: false;
} | {
depositAddr?: never;
directExecution: true;
txHashes: Hex[];
});
export declare const purifyCheckoutHistoryItem: (item: CheckoutHistoryItem | MergedMultiStepDirectExecution) => PurifiedCheckoutHistoryItem;