@airgap/coinlib-core
Version:
The @airgap/coinlib-core is a protocol agnostic library to prepare, sign and broadcast cryptocurrency transactions.
41 lines (40 loc) • 1.66 kB
TypeScript
import { ICoinProtocol } from './ICoinProtocol';
export interface DelegateeDetails {
name?: string;
status?: any;
address: string;
}
export interface DelegatorAction {
type: any;
args?: string[];
}
export interface DelegatorDetails {
address: string;
balance: string;
delegatees: string[];
availableActions?: DelegatorAction[];
rewards?: DelegatorReward[];
}
export interface DelegatorReward {
index: number;
amount: string;
collected?: boolean;
timestamp: number;
}
export interface DelegationDetails {
delegator: DelegatorDetails;
delegatees: DelegateeDetails[];
}
export interface ICoinDelegateProtocol extends ICoinProtocol {
getDefaultDelegatee(): Promise<string>;
getCurrentDelegateesForPublicKey(publicKey: string, data?: any): Promise<string[]>;
getCurrentDelegateesForAddress(address: string, data?: any): Promise<string[]>;
getDelegateeDetails(address: string, data?: any): Promise<DelegateeDetails>;
isPublicKeyDelegating(publicKey: string, data?: any): Promise<boolean>;
isAddressDelegating(address: string, data?: any): Promise<boolean>;
getDelegatorDetailsFromPublicKey(publicKey: string, data?: any): Promise<DelegatorDetails>;
getDelegatorDetailsFromAddress(address: string, data?: any): Promise<DelegatorDetails>;
getDelegationDetailsFromPublicKey(publicKey: string, delegatees: string[], data?: any): Promise<DelegationDetails>;
getDelegationDetailsFromAddress(address: string, delegatees: string[], data?: any): Promise<DelegationDetails>;
prepareDelegatorActionFromPublicKey(publicKey: string, type: any, data?: any): Promise<any[]>;
}