/// import { BlockAssets, MethodContext, ImmutableMethodContext } from '../../state_machine'; import { JSONObject } from '../../types'; export interface ModuleConfig { tokenID: Buffer; brackets: ReadonlyArray; offset: number; distance: number; rewardReductionFactorBFT: bigint; } export type ModuleConfigJSON = JSONObject; export interface TokenMethod { mint(methodContext: MethodContext, address: Buffer, id: Buffer, amount: bigint): Promise; userSubstoreExists(methodContext: ImmutableMethodContext, address: Buffer, tokenID: Buffer): Promise; } export interface RandomMethod { isSeedRevealValid(methodContext: ImmutableMethodContext, generatorAddress: Buffer, assets: BlockAssets): Promise; } export interface BFTMethod { impliesMaximalPrevotes(methodContext: ImmutableMethodContext): Promise; } export interface DefaultReward { reward: string; } export interface InflationRate { tokenID: string; rate: string; }