UNPKG

@funded-labs/dab-js

Version:
67 lines (66 loc) 2.44 kB
import { ActorSubclass } from '@dfinity/agent'; import { Principal } from '@dfinity/principal'; import { Metadata } from '../../interfaces/token'; import { BurnResult } from '../../interfaces/xtc'; import { TxnResult } from '../../interfaces/drc_20'; import { Result } from '../../interfaces/dip_20'; import { BaseMethodsExtendedActor } from '../../utils/actorFactory'; interface TimeStamp { timestamp_nanos: bigint; } export interface SendOpts { fee?: bigint; memo?: string; from_subaccount?: number; to_subaccount?: Uint8Array | number[]; created_at_time?: TimeStamp; } export declare type SendResponse = { height: string; } | { amount: string; } | { transactionId: string; }; export interface SendParams { to: string; from: string; amount: bigint; opts?: any; } export interface BurnParams { to: Principal; amount: string; } export interface ApproveParams { spender: Principal; amount: bigint; nonce?: bigint; } export interface BalanceResponse { value: string; decimals: number; error?: string; } export declare type ApproveResponse = Result | TxnResult; interface AddedMehtodsToken { send: ({ to, from, amount }: SendParams) => Promise<SendResponse>; getMetadata: () => Promise<Metadata>; getBalance: (user: Principal) => Promise<BalanceResponse>; burnXTC: ({ to, amount }: BurnParams) => Promise<BurnResult>; getDecimals: () => Promise<number>; approve: ({ spender, amount, nonce, }: ApproveParams) => Promise<ApproveResponse>; } export declare type TokenServiceExtended<T> = BaseMethodsExtendedActor<T> & AddedMehtodsToken; export interface InternalTokenMethods { send: (actor: ActorSubclass<any>, { to, from, amount }: SendParams) => Promise<SendResponse>; getMetadata: (actor: ActorSubclass<any>) => Promise<Metadata>; getBalance: (actor: ActorSubclass<any>, user: Principal) => Promise<BalanceResponse>; burnXTC: (actor: ActorSubclass<any>, { to, amount }: BurnParams) => Promise<BurnResult>; getDecimals: (actor: ActorSubclass<any>) => Promise<number>; approve: (actor: ActorSubclass<any>, { spender, amount, nonce }: ApproveParams) => Promise<Result | TxnResult>; } export declare const getDecimalsFromMetadata: (metadata: Metadata) => number; export declare const parseAmountToSend: (amount: string, decimals: number) => bigint; declare const _default: InternalTokenMethods; export default _default;