UNPKG

airgap-coin-lib

Version:

The airgap-coin-lib is a protocol agnostic library to prepare, sign and broadcast cryptocurrency transactions.

87 lines (86 loc) 7.04 kB
/// <reference types="node" /> import BigNumber from '../../dependencies/src/bignumber.js-9.0.0/bignumber'; import { AirGapTransactionStatus, IAirGapTransaction } from '../../interfaces/IAirGapTransaction'; import { SignedSubstrateTransaction } from '../../serializer/schemas/definitions/signed-transaction-substrate'; import { UnsignedSubstrateTransaction } from '../../serializer/schemas/definitions/unsigned-transaction-substrate'; import { RawSubstrateTransaction } from '../../serializer/types'; import { ProtocolSymbols } from '../../utils/ProtocolSymbols'; import { DelegateeDetails, DelegationDetails, DelegatorDetails, ICoinDelegateProtocol } from '../ICoinDelegateProtocol'; import { CurrencyUnit, FeeDefaults } from '../ICoinProtocol'; import { ICoinSubProtocol } from '../ICoinSubProtocol'; import { NonExtendedProtocol } from '../NonExtendedProtocol'; import { SubstrateAccountId } from './helpers/data/account/SubstrateAddress'; import { SubstratePayee } from './helpers/data/staking/SubstratePayee'; import { SubstrateStakingActionType } from './helpers/data/staking/SubstrateStakingActionType'; import { SubstrateTransactionType } from './helpers/data/transaction/SubstrateTransaction'; import { SubstrateProtocolOptions } from './SubstrateProtocolOptions'; import { SubstrateTransactionCursor, SubstrateTransactionResult } from './SubstrateTypes'; export declare abstract class SubstrateProtocol extends NonExtendedProtocol implements ICoinDelegateProtocol { readonly options: SubstrateProtocolOptions; abstract symbol: string; abstract name: string; abstract marketSymbol: string; abstract feeSymbol: string; abstract decimals: number; abstract feeDecimals: number; abstract identifier: ProtocolSymbols; abstract feeDefaults: FeeDefaults; abstract units: CurrencyUnit[]; abstract standardDerivationPath: string; supportsHD: boolean; addressIsCaseSensitive: boolean; addressValidationPattern: string; addressPlaceholder: string; protected defaultValidator?: string; constructor(options: SubstrateProtocolOptions); getBlockExplorerLinkForAddress(address: string): Promise<string>; getBlockExplorerLinkForTxId(txId: string): Promise<string>; getPublicKeyFromMnemonic(mnemonic: string, derivationPath: string, password?: string): Promise<string>; getPrivateKeyFromMnemonic(mnemonic: string, derivationPath: string, password?: string): Promise<Buffer>; getPublicKeyFromHexSecret(secret: string, derivationPath: string): Promise<string>; getPrivateKeyFromHexSecret(secret: string, derivationPath: string): Promise<Buffer>; getAddressFromPublicKey(publicKey: string): Promise<string>; getAddressesFromPublicKey(publicKey: string): Promise<string[]>; getTransactionsFromPublicKey(publicKey: string, limit: number, cursor?: SubstrateTransactionCursor): Promise<SubstrateTransactionResult>; getTransactionsFromAddresses(addresses: string[], limit: number, cursor?: SubstrateTransactionCursor): Promise<SubstrateTransactionResult>; signWithPrivateKey(privateKey: Buffer, rawTransaction: RawSubstrateTransaction): Promise<string>; getTransactionDetails(transaction: UnsignedSubstrateTransaction): Promise<IAirGapTransaction[]>; getTransactionDetailsFromSigned(transaction: SignedSubstrateTransaction): Promise<IAirGapTransaction[]>; getBalanceOfAddresses(addresses: string[]): Promise<string>; getAvailableBalanceOfAddresses(addresses: string[]): Promise<string>; getBalanceOfPublicKey(publicKey: string): Promise<string>; getBalanceOfPublicKeyForSubProtocols(publicKey: string, subProtocols: ICoinSubProtocol[]): Promise<string[]>; estimateMaxTransactionValueFromPublicKey(publicKey: string, recipients: string[], fee?: string): Promise<string>; estimateFeeDefaultsFromPublicKey(publicKey: string, recipients: string[], values: string[], data?: any): Promise<FeeDefaults>; prepareTransactionFromPublicKey(publicKey: string, recipients: string[], values: string[], fee: string, data?: any): Promise<RawSubstrateTransaction>; broadcastTransaction(encoded: string): Promise<string>; getDefaultDelegatee(): Promise<string>; getCurrentDelegateesForPublicKey(publicKey: string): Promise<string[]>; getCurrentDelegateesForAddress(address: string): Promise<string[]>; getDelegateeDetails(address: string): Promise<DelegateeDetails>; isPublicKeyDelegating(publicKey: string): Promise<boolean>; isAddressDelegating(address: string): Promise<boolean>; getDelegatorDetailsFromPublicKey(publicKey: string): Promise<DelegatorDetails>; getDelegatorDetailsFromAddress(address: string): Promise<DelegatorDetails>; getDelegationDetailsFromPublicKey(publicKey: string, delegatees: string[]): Promise<DelegationDetails>; getDelegationDetailsFromAddress(address: string, delegatees: string[]): Promise<DelegationDetails>; prepareDelegatorActionFromPublicKey(publicKey: string, type: SubstrateStakingActionType, data?: any): Promise<RawSubstrateTransaction[]>; prepareDelegation(publicKey: string, tip: string | number | BigNumber, targets: string[] | string, controller?: string, value?: string | number | BigNumber, payee?: string | SubstratePayee): Promise<RawSubstrateTransaction[]>; prepareRebondNominate(publicKey: string, tip: string | number | BigNumber, targets: string[] | string, value: string | number | BigNumber): Promise<RawSubstrateTransaction[]>; prepareCancelDelegation(publicKey: string, tip: string | number | BigNumber, value?: string | number | BigNumber): Promise<RawSubstrateTransaction[]>; prepareChangeValidator(publicKey: string, tip: string | number | BigNumber, targets: string[] | string): Promise<RawSubstrateTransaction[]>; prepareUnbond(publicKey: string, tip: string | number | BigNumber, value: string | number | BigNumber): Promise<RawSubstrateTransaction[]>; prepareRebond(publicKey: string, tip: string | number | BigNumber, value: string | number | BigNumber): Promise<RawSubstrateTransaction[]>; prepareBondExtra(publicKey: string, tip: string | number | BigNumber, value: string | number | BigNumber): Promise<RawSubstrateTransaction[]>; prepareRebondExtra(publicKey: string, tip: string | number | BigNumber, value: string | number | BigNumber): Promise<RawSubstrateTransaction[]>; prepareWithdrawUnbonded(publicKey: string, tip: string | number | BigNumber): Promise<RawSubstrateTransaction[]>; estimateMaxDelegationValueFromAddress(address: string): Promise<string>; getFutureRequiredTransactions(accountId: SubstrateAccountId, intention: 'check' | 'transfer' | 'delegate'): Promise<[SubstrateTransactionType, any][]>; private getTransactionDetailsFromEncoded; signMessage(message: string, keypair: { publicKey: string; privateKey: Buffer; }): Promise<string>; verifyMessage(message: string, signature: string, publicKey: string): Promise<boolean>; getTransactionStatuses(transactionHashes: string[]): Promise<AirGapTransactionStatus[]>; }