UNPKG

@broxus/js-bridge-essentials

Version:

Bridge JavaScript Essentials library

53 lines (52 loc) 2.68 kB
import { AbstractStore, type Forceable, type ObjectLiteral, type Silentable, type Syncable, type TokenLikeModel, type TokenRaw } from '@broxus/js-core'; import { Address } from '@ton/ton'; import { type ProviderRpcClient } from 'everscale-inpage-provider'; import { TonTokenUtils } from '../../models/ton-token/TonTokenUtils'; import { TonTokenWallet, type TonTokenWalletCreateOptions } from '../../models/ton-token-wallet'; export interface TonTokenCtorOptions { watchDebounceDelay?: number; } export interface TonTokenData extends Omit<TokenRaw<Address>, 'tags'> { rootOwnerAddress?: Address; tags?: Set<string>; totalSupply?: string; } export interface TonTokenState { isSyncing?: boolean; } export interface TonTokenCtorData extends Omit<TonTokenData, 'address'> { address: Address | string; } export interface TonTokenCreateOptions extends TonTokenCtorOptions, Syncable { } export declare class TonToken<T extends TonTokenData | ObjectLiteral = TonTokenData> extends AbstractStore<T & TonTokenData, TonTokenState> implements TokenLikeModel<Address> { protected readonly _connection: ProviderRpcClient; protected readonly options?: Readonly<TonTokenCtorOptions> | undefined; static Utils: typeof TonTokenUtils; static Wallet: typeof TonTokenWallet; constructor(_connection: ProviderRpcClient, data: TonTokenCtorData['address'] | Readonly<T & TonTokenCtorData>, options?: Readonly<TonTokenCtorOptions> | undefined); static create<V extends TonTokenCtorData | ObjectLiteral = TonTokenCtorData>(connection: ProviderRpcClient, data: TonTokenCtorData['address'] | Readonly<V & TonTokenCtorData>, options?: TonTokenCreateOptions): Promise<TonToken<V>>; sync(options?: Forceable & Silentable): Promise<void>; wallet(ownerAddress: Address | string, options?: TonTokenWalletCreateOptions): Promise<TonTokenWallet>; walletOf(ownerAddress: Address | string): Promise<Address>; balance(ownerAddress: Address | string): Promise<string | undefined>; get root(): string; get address(): TonTokenData['address']; get chainId(): TonTokenData['chainId']; get decimals(): TonTokenData['decimals']; get icon(): TonTokenData['logoURI']; get name(): TonTokenData['name']; get symbol(): TonTokenData['symbol']; get rootOwnerAddress(): TonTokenData['rootOwnerAddress']; get totalSupply(): TonTokenData['totalSupply']; get isSyncing(): TonTokenState['isSyncing']; /** * Get value by the given key * @param {K extends keyof T & string} key */ get<K extends keyof T & string>(key: K): T[K]; /** * Returns copy of the current token */ clone(): TonToken<T>; }