@airgap/etherlink
Version:
The @airgap/etherlink package is an implementation of the ICoinProtocol interface from @airgap/coinlib-core.
67 lines (66 loc) • 2.45 kB
TypeScript
import { Address } from './address';
import { Amount } from './amount';
import { BaseCursor } from './base/cursor';
import { Sealed } from './base/sealed';
import { ProtocolNetwork } from './protocol';
import { AirGapUIAlert } from './ui/alert';
import { AirGapUIText } from './ui/text';
export declare type TransactionType = 'unsigned' | 'signed';
interface BaseTransaction<_Type extends TransactionType> extends Sealed<_Type> {
}
export interface UnsignedTransaction extends BaseTransaction<'unsigned'> {
}
export interface SignedTransaction extends BaseTransaction<'signed'> {
}
export interface AirGapTransaction<_Units extends string = string, _FeeUnits extends string = _Units> {
from: string[];
to: string[];
isInbound: boolean;
amount: Amount<_Units>;
fee: Amount<_FeeUnits>;
network: ProtocolNetwork;
timestamp?: number;
status?: AirGapTransactionStatus;
type?: string | {
name: string;
[key: string]: string;
};
uiAlerts?: AirGapUIAlert[];
arbitraryData?: string | [AirGapUIText, string];
json?: any;
extra?: any;
}
export interface TransactionCursor extends BaseCursor {
}
export interface AirGapTransactionsWithCursor<_Cursor extends TransactionCursor = TransactionCursor, _Units extends string = string, _FeeUnits extends string = _Units> {
transactions: AirGapTransaction<_Units, _FeeUnits>[];
cursor: _Cursor;
}
export interface TransactionDetails<_Units extends string = string> {
to: Address;
amount: Amount<_Units>;
arbitraryData?: string;
}
export interface TransactionSimpleConfiguration {
arbitraryData?: string;
keepMinBalance?: boolean;
assetId?: number;
}
export interface TransactionFullConfiguration<_FeeUnits extends string = string> extends TransactionSimpleConfiguration {
fee?: Amount<_FeeUnits>;
}
interface BaseTransactionStatus<_Type extends string> extends Sealed<_Type> {
hash?: string;
block?: string;
}
interface AppliedTransactionStatus extends BaseTransactionStatus<'applied'> {
}
interface FailedTransactionStatus extends BaseTransactionStatus<'failed'> {
}
interface UnknownTransactionStatus extends BaseTransactionStatus<'unknown'> {
}
interface CustomTransactionStatus extends BaseTransactionStatus<'custom'> {
name: string;
}
export declare type AirGapTransactionStatus = AppliedTransactionStatus | FailedTransactionStatus | UnknownTransactionStatus | CustomTransactionStatus;
export {};