@broxus/js-core
Version:
MobX-based JavaScript Core library
87 lines (86 loc) • 4.93 kB
TypeScript
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'];
}