@airgap/etherlink
Version:
The @airgap/etherlink package is an implementation of the ICoinProtocol interface from @airgap/coinlib-core.
58 lines (57 loc) • 1.75 kB
TypeScript
import { Amount } from './amount';
import { FeeDefaults } from './fee';
export interface ProtocolMetadata<_Units extends string = string, _FeeUnits extends string = _Units> {
name: string;
identifier: string;
units: ProtocolUnitsMetadata<_Units>;
mainUnit: _Units;
fee?: ProtocolFeeMetadata<_FeeUnits>;
account: ProtocolAccountMetadata;
transaction?: ProtocolTransactionMetadata<_Units>;
}
export declare type ProtocolUnitsMetadata<_Units extends string = string> = {
[key in _Units]: {
symbol: ProtocolSymbol;
decimals: number;
};
};
export interface ProtocolSymbol {
value: string;
market?: string;
asset?: string;
}
export interface ProtocolFeeMetadata<_FeeUnits extends string = string> {
defaults?: FeeDefaults<_FeeUnits>;
units?: ProtocolUnitsMetadata<_FeeUnits>;
mainUnit?: _FeeUnits;
}
export interface ProtocolAccountMetadata {
standardDerivationPath: string;
address?: {
isCaseSensitive?: boolean;
placeholder?: string;
regex?: string;
};
}
export interface ProtocolTransactionMetadata<_Units extends string = string> {
arbitraryData?: ProtocolTransactionArbitraryDataMetadata | {
root?: ProtocolTransactionArbitraryDataMetadata;
inner?: ProtocolTransactionArbitraryDataMetadata;
};
minBalance?: {
amount: Amount<_Units>;
name?: string;
};
}
export interface ProtocolTransactionArbitraryDataMetadata {
name: string;
maxLength?: number;
regex?: string;
}
export declare type ProtocolNetworkType = 'mainnet' | 'testnet' | 'custom';
export interface ProtocolNetwork {
name: string;
type: ProtocolNetworkType;
rpcUrl: string;
blockExplorerUrl: string;
}