UNPKG

@broxus/js-core

Version:

MobX-based JavaScript Core library

87 lines (86 loc) 4.93 kB
import { type Address, type DelayedMessageExecution, type ProviderRpcClient, type SendInternalParams, type Subscriber } from 'everscale-inpage-provider'; import { type SmartContractWatchCallback, SmartContractModel } from '../../core'; import { type VaultTokenWalletAcceptNativeAbiParams, type VaultTokenWalletBurnAbiParams, type VaultTokenWalletDestroyAbiParams, type VaultTokenWalletTransferAbiParams, type VaultTokenWalletTransferToWalletAbiParams, VaultTokenWalletUtils } from '../../models/vault-token-wallet/VaultTokenWalletUtils'; import { type Forceable, type Silentable, type Syncable, type Watchable } from '../../types'; export type VaultTokenWalletCtorOptions = { watchDebounceDelay?: number; }; export type VaultTokenWalletCreateConfig = { address: Address | string; } | { ownerAddress: Address | string; tokenAddress: Address | string; }; export interface VaultTokenWalletCreateOptions extends Syncable, VaultTokenWalletCtorOptions, Watchable { watchCallback?: VoidFunction; } export interface VaultTokenWalletData { balance?: string | undefined; ownerAddress?: Address; tokenAddress?: Address; } export declare class VaultTokenWallet extends SmartContractModel<VaultTokenWalletData> { protected readonly _connection: ProviderRpcClient; protected readonly options?: Readonly<VaultTokenWalletCtorOptions> | undefined; protected readonly _provider?: ProviderRpcClient | undefined; static Utils: typeof VaultTokenWalletUtils; /** * @param {ProviderRpcClient} _connection * Standalone RPC client that doesn't require connection to the TVM wallet provider * @param {Address | string} address * VaultTokenWallet root address * @param {Readonly<VaultTokenWalletCtorOptions>} [options] * (optional) VaultTokenWallet Smart Contract Model options * @param {ProviderRpcClient} [_provider] * (optional) RPC provider that require connection to the TVM wallet */ constructor(_connection: ProviderRpcClient, address: Address | string, options?: Readonly<VaultTokenWalletCtorOptions> | undefined, _provider?: ProviderRpcClient | undefined); /** * @param {ProviderRpcClient} connection * Standalone RPC client that doesn't require connection to the TVM wallet provider * @param {Readonly<VaultTokenWalletCreateConfig>} config * VaultTokenWallet Smart Contract Model config * @param {Readonly<VaultTokenWalletCreateOptions>} [options] * (optional) VaultTokenWallet Smart Contract Model options * @param {ProviderRpcClient} [provider] * (optional) RPC provider that require connection to the TVM wallet */ static create(connection: ProviderRpcClient, config: Readonly<VaultTokenWalletCreateConfig>, options?: Readonly<VaultTokenWalletCreateOptions>, provider?: ProviderRpcClient): Promise<VaultTokenWallet>; sync(options?: Forceable & Silentable): Promise<void>; watch(callback?: SmartContractWatchCallback<VaultTokenWalletData>): Promise<Subscriber>; unwatch(): Promise<void>; /** * Accept Native - makes the transaction via token wallet contract to send message * @param {VaultTokenWalletAcceptNativeAbiParams} params * @param {Partial<SendInternalParams>} [args] */ acceptNative(params: VaultTokenWalletAcceptNativeAbiParams, args?: Partial<SendInternalParams>): Promise<DelayedMessageExecution>; /** * Transfer - makes the transaction via token wallet contract to send message * @param {VaultTokenWalletTransferAbiParams} params * @param {Partial<SendInternalParams>} [args] */ transfer(params: VaultTokenWalletTransferAbiParams, args?: Partial<SendInternalParams>): Promise<DelayedMessageExecution>; /** * Transfer to wallet - makes the transaction via token wallet contract to send message to a * token wallet * @param {VaultTokenWalletTransferToWalletAbiParams} params * @param {Partial<SendInternalParams>} [args] */ transferToWallet(params: VaultTokenWalletTransferToWalletAbiParams, args?: Partial<SendInternalParams>): Promise<DelayedMessageExecution>; /** * Burns assets in favor of the address specified in callbackTo * @param {VaultTokenWalletBurnAbiParams} params * @param {Partial<SendInternalParams>} [args] */ burn(params: VaultTokenWalletBurnAbiParams, args?: Partial<SendInternalParams>): Promise<DelayedMessageExecution>; /** * Burns assets in favor of the address specified in callbackTo * @param {VaultTokenWalletDestroyAbiParams} params * @param {Partial<SendInternalParams>} [args] */ destroy(params: VaultTokenWalletDestroyAbiParams, args?: Partial<SendInternalParams>): Promise<DelayedMessageExecution>; get balance(): VaultTokenWalletData['balance']; get ownerAddress(): VaultTokenWalletData['ownerAddress']; get tokenAddress(): VaultTokenWalletData['tokenAddress']; }