airgap-coin-lib
Version:
The airgap-coin-lib is a protocol agnostic library to prepare, sign and broadcast cryptocurrency transactions.
111 lines (110 loc) • 3.75 kB
TypeScript
import BigNumber from '../../dependencies/src/bignumber.js-9.0.0/bignumber';
export interface CosmosNodeInfo {
protocol_version: {
p2p: string;
block: string;
app: string;
};
id: string;
listen_addr: string;
network: string;
version: string;
channels: string;
moniker: string;
other: {
tx_index: string;
rpc_address: string;
};
}
export interface CosmosAccount {
type: string;
value: CosmosAccountValue;
}
export interface CosmosAccountValue {
account_number: string;
address: string;
coins: CosmosAccountCoin[];
sequence: string;
public_key?: string;
}
export interface CosmosAccountCoin {
denom: string;
amount: string;
}
export interface CosmosDelegation {
delegator_address: string;
validator_address: string;
shares: string;
balance: string;
}
export interface CosmosUnbondingDelegation {
delegator_address: string;
validator_address: string;
entries: {
creation_height: string;
completion_time: string;
initial_balance: string;
balance: string;
}[];
}
export interface CosmosValidator {
operator_address: string;
consensus_pubkey: string;
jailed: boolean;
status: number;
tokens: string;
delegator_shares: string;
description: CosmosValidatorDescription;
unbonding_height: string;
unbonding_time: string;
commission: CosmosValidatorCommission;
min_self_delegation: string;
}
export interface CosmosValidatorDescription {
moniker: string;
identity: string;
website: string;
details: string;
}
export interface CosmosValidatorCommission {
commission_rates: CosmosValidatorCommissionRate;
update_time: string;
}
export interface CosmosValidatorCommissionRate {
rate: string;
max_rate: string;
max_change_rate: string;
}
export interface CosmosBroadcastSignedTransactionResponse {
txhash: string;
height: number;
}
export interface CosmosRewardDetails {
validator_address: string;
reward: {
denom: string;
amount: number;
}[];
}
export declare class CosmosNodeClient {
readonly baseURL: string;
useCORSProxy: boolean;
constructor(baseURL: string, useCORSProxy?: boolean);
fetchBalance(address: string, totalBalance?: boolean): Promise<BigNumber>;
fetchNodeInfo(): Promise<CosmosNodeInfo>;
broadcastSignedTransaction(transaction: string): Promise<string>;
fetchAccount(address: string): Promise<CosmosAccount>;
fetchDelegations(address: string, filterEmpty?: boolean): Promise<CosmosDelegation[]>;
fetchTotalDelegatedAmount(address: string): Promise<BigNumber>;
fetchValidator(address: string): Promise<CosmosValidator>;
fetchValidators(): Promise<CosmosValidator[]>;
fetchSelfDelegation(validatorAddress: string): Promise<CosmosDelegation>;
fetchUnbondingDelegations(delegatorAddress: string): Promise<CosmosUnbondingDelegation[]>;
fetchTotalUnbondingAmount(address: string): Promise<BigNumber>;
fetchRewardDetails(delegatorAddress: string): Promise<CosmosRewardDetails[]>;
fetchTotalReward(delegatorAddress: string): Promise<BigNumber>;
fetchRewardForDelegation(delegatorAddress: string, validatorAddress: string): Promise<BigNumber>;
withdrawAllDelegationRewards(delegatorAddress: string, chainID: string, accountNumber: string, sequence: string, gas: BigNumber, fee: BigNumber, memo: string, simulate?: boolean): Promise<string>;
withdrawDelegationRewards(delegatorAddress: string, validatorAdress: string, chainID: string, accountNumber: string, sequence: string, gas: BigNumber, fee: BigNumber, memo: string, simulate?: boolean): Promise<string>;
private url;
}