@funded-labs/dab-js
Version:
JS adapter for DAB
67 lines (66 loc) • 2.44 kB
TypeScript
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;