@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
100 lines • 3.44 kB
TypeScript
import type { Account, AccountLike, Operation } from "@ledgerhq/types-live";
import type { CryptoOrTokenCurrency } from "@ledgerhq/types-cryptoassets";
import type { Transaction, TransactionStatus } from "../../generated/types";
import type { FlowStatus, FlowStatusActions, FlowStepConfig, FlowConfig } from "../wizard/types";
export declare const SEND_FLOW_STEP: {
readonly RECIPIENT: "RECIPIENT";
readonly RECENT_HISTORY: "RECENT_HISTORY";
readonly AMOUNT: "AMOUNT";
readonly CUSTOM_FEES: "CUSTOM_FEES";
readonly COIN_CONTROL: "COIN_CONTROL";
readonly SIGNATURE: "SIGNATURE";
readonly CONFIRMATION: "CONFIRMATION";
};
export type SendFlowStep = (typeof SEND_FLOW_STEP)[keyof typeof SEND_FLOW_STEP];
export type BaseSendStepConfig = FlowStepConfig<SendFlowStep> & Readonly<{
addressInput?: boolean;
showTitle?: boolean;
height?: "fixed" | "hug";
}>;
export type BaseSendFlowConfig = FlowConfig<SendFlowStep, BaseSendStepConfig>;
export type SendFlowUiConfig = Readonly<{
hasMemo: boolean;
memoType?: string;
memoMaxLength?: number;
memoMaxValue?: number;
memoOptions?: readonly string[];
recipientSupportsDomain: boolean;
hasFeePresets: boolean;
hasCustomFees: boolean;
hasCoinControl: boolean;
}>;
export type Memo = {
value: string;
type?: string;
};
export type RecipientData = Readonly<{
address?: string;
ensName?: string;
memo?: Memo;
destinationTag?: string;
}>;
export type SendFlowTransactionState = Readonly<{
transaction: Transaction | null;
status: TransactionStatus;
bridgeError: Error | null;
bridgePending: boolean;
}>;
export type SendFlowAccountState = Readonly<{
account: AccountLike | null;
parentAccount: Account | null;
currency: CryptoOrTokenCurrency | null;
}>;
export type SendFlowOperationResult = Readonly<{
optimisticOperation: Operation | null;
transactionError: Error | null;
signed: boolean;
}>;
export type SendFlowState = Readonly<{
account: SendFlowAccountState;
transaction: SendFlowTransactionState;
recipient: RecipientData | null;
operation: SendFlowOperationResult;
isLoading: boolean;
flowStatus: FlowStatus;
}>;
export type SendFlowTransactionActions = Readonly<{
setTransaction: (tx: Transaction) => void;
updateTransaction: (updater: (tx: Transaction) => Transaction) => void;
setRecipient: (recipient: RecipientData) => void;
setAccount: (account: AccountLike, parentAccount?: Account | null) => void;
}>;
export type SendFlowOperationActions = Readonly<{
onOperationBroadcasted: (operation: Operation) => void;
onTransactionError: (error: Error) => void;
onSigned: () => void;
onRetry: () => void;
}>;
export type SendFlowInitParams = Readonly<{
account?: AccountLike;
parentAccount?: Account;
recipient?: string;
amount?: string;
memo?: string;
fromMAD?: boolean;
}>;
export type SendFlowBusinessContext = Readonly<{
state: SendFlowState;
transaction: SendFlowTransactionActions;
operation: SendFlowOperationActions;
status: FlowStatusActions;
uiConfig: SendFlowUiConfig;
recipientSearch: Readonly<{
value: string;
setValue: (value: string) => void;
clear: () => void;
}>;
close: () => void;
setAccountAndNavigate: (account: AccountLike, parentAccount?: Account) => void;
}>;
//# sourceMappingURL=types.d.ts.map