export interface Option {
    endPoint: string,
    apiKey: string,
    apiSecret?: string,
    eventDrivenMode?: boolean,
  }
  
export interface RequestResponse {
    id: string,
    status: string,
    callbackURL: string,
  }
export interface Transaction {
  from: string,
  to: string,
  chainId: number, 
  data: string,
  gas?: string,
  gasLimit?: string,
  gasPrice?: number,
  maxFeePerGas?: number,
  maxPriorityFeePerGas?: number,
  nonce?: number,
  type: number, // e.g. -/2
  value: string,
  method?: string,
  
}

export interface SignData {
  from: string,
  chainId: number, 
  method?: string,
  data: string,  
  type?: number, // e.g. -/2
  sourceImage?: string, 
  sourceName?: string, 
  sourceUrl?: string,
}

export interface Address {
  chain: string,
  address: string,
  pubkey: string,
  status: string
}
export interface CommunityUser {
  id: string,
  externalUserId: string,
  username: string,
  projectId: string,
  addresses: Address[]
}

export interface Network {
  chainid: number,
  name: string,
  network: string,
  addressReference: string,
}

export const enum CHAIN {
  ETH = 'ETH',
  SOL = 'SOL',
  TRON = 'TRON',
  TON = 'TON',
}