UNPKG

lisk-framework

Version:

Lisk blockchain application platform

51 lines (50 loc) 3.59 kB
/// <reference types="node" /> import { ImmutableMethodContext, MethodContext } from '../../state_machine'; import { BaseMethod } from '../base_method'; import { InteroperabilityMethod, ModuleConfig } from './types'; import { SupplyStoreData } from './stores/supply'; import { NamedRegistry } from '../named_registry'; import { InternalMethod } from './internal_method'; interface MethodConfig extends ModuleConfig { ownChainID: Buffer; } export declare class TokenMethod extends BaseMethod { private readonly _moduleName; private _config; private _interoperabilityMethod; private _internalMethod; constructor(stores: NamedRegistry, events: NamedRegistry, moduleName: string); init(config: MethodConfig): void; addDependencies(interoperabilityMethod: InteroperabilityMethod, internalMethod: InternalMethod): void; isNativeToken(tokenID: Buffer): boolean; getTokenIDLSK(): Buffer; userSubstoreExists(methodContext: ImmutableMethodContext, address: Buffer, tokenID: Buffer): Promise<boolean>; getAvailableBalance(methodContext: ImmutableMethodContext, address: Buffer, tokenID: Buffer): Promise<bigint>; getLockedAmount(methodContext: ImmutableMethodContext, address: Buffer, tokenID: Buffer, module: string): Promise<bigint>; getEscrowedAmount(methodContext: ImmutableMethodContext, escrowChainID: Buffer, tokenID: Buffer): Promise<bigint>; isTokenIDAvailable(methodContext: ImmutableMethodContext, tokenID: Buffer): Promise<boolean>; initializeToken(methodContext: MethodContext, tokenID: Buffer): Promise<void>; mint(methodContext: MethodContext, address: Buffer, tokenID: Buffer, amount: bigint): Promise<void>; burn(methodContext: MethodContext, address: Buffer, tokenID: Buffer, amount: bigint): Promise<void>; initializeUserAccount(methodContext: MethodContext, address: Buffer, tokenID: Buffer): Promise<void>; initializeEscrowAccount(methodContext: MethodContext, chainID: Buffer, tokenID: Buffer): Promise<void>; transfer(methodContext: MethodContext, senderAddress: Buffer, recipientAddress: Buffer, tokenID: Buffer, amount: bigint): Promise<void>; transferCrossChain(methodContext: MethodContext, senderAddress: Buffer, receivingChainID: Buffer, recipientAddress: Buffer, tokenID: Buffer, amount: bigint, messageFee: bigint, data: string): Promise<void>; lock(methodContext: MethodContext, address: Buffer, module: string, tokenID: Buffer, amount: bigint): Promise<void>; unlock(methodContext: MethodContext, address: Buffer, module: string, tokenID: Buffer, amount: bigint): Promise<void>; payMessageFee(methodContext: MethodContext, payFromAddress: Buffer, receivingChainID: Buffer, fee: bigint): Promise<void>; isTokenSupported(methodContext: ImmutableMethodContext, tokenID: Buffer): Promise<boolean>; supportAllTokens(methodContext: MethodContext): Promise<void>; removeAllTokensSupport(methodContext: MethodContext): Promise<void>; supportAllTokensFromChainID(methodContext: MethodContext, chainID: Buffer): Promise<void>; removeAllTokensSupportFromChainID(methodContext: MethodContext, chainID: Buffer): Promise<void>; supportTokenID(methodContext: MethodContext, tokenID: Buffer): Promise<void>; removeSupport(methodContext: MethodContext, tokenID: Buffer): Promise<void>; getTotalSupply(context: MethodContext): Promise<{ totalSupply: (SupplyStoreData & { tokenID: Buffer; })[]; }>; escrowSubstoreExists(methodContext: MethodContext, chainID: Buffer, tokenID: Buffer): Promise<boolean>; } export {};