UNPKG

lisk-framework

Version:

Lisk blockchain application platform

31 lines (30 loc) 1.58 kB
/// <reference types="node" /> import { MethodContext, ImmutableMethodContext } from '../../state_machine/types'; import { JSONObject } from '../../types'; import { CCMsg } from '../interoperability'; export type FeeTokenID = Buffer; export interface ModuleConfig { feeTokenID: Buffer; minFeePerByte: number; maxBlockHeightZeroFeePerByte: number; feePoolAddress?: Buffer; } export type ModuleConfigJSON = JSONObject<ModuleConfig>; export interface TokenMethod { transfer(methodContext: MethodContext, senderAddress: Buffer, generatorAddress: Buffer, id: Buffer, amount: bigint): Promise<void>; burn(methodContext: MethodContext, senderAddress: Buffer, id: FeeTokenID, amount: bigint): Promise<void>; getAvailableBalance(methodContext: ImmutableMethodContext, address: Buffer, tokenID: Buffer): Promise<bigint>; 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>; userSubstoreExists(methodContext: ImmutableMethodContext, address: Buffer, tokenID: Buffer): Promise<boolean>; } export interface GetFeeTokenIDResponse { tokenID: string; } export interface GetMinFeePerByteResponse { minFeePerByte: number; } export interface InteroperabilityMethod { getMessageFeeTokenID(methodContext: ImmutableMethodContext, chainID: Buffer): Promise<Buffer>; getMessageFeeTokenIDFromCCM(methodContext: ImmutableMethodContext, ccm: CCMsg): Promise<Buffer>; }