// Generated by eosio-abi2ts 1.2.2 - eosio::abi/1.2

export type IAsset = string
export type IName = string
export type IChecksum256 = string
export type IPublicKey = string
export type ISignature = string
export type ITimePointSec = string
export type IUint32 = number
export type IUint64 = number | string

export interface IAdd {
  coopname: IName
  account_id: IUint64
  quantity: IAsset
  comment: string
  hash: IChecksum256
  username: IName
}

export interface IAuth {
  coopname: IName
  writeoff_hash: IChecksum256
}

export interface IBlock {
  coopname: IName
  account_id: IUint64
  quantity: IAsset
  comment: string
  hash: IChecksum256
  username: IName
}

export interface IComplete {
  coopname: IName
  writeoff_hash: IChecksum256
}

export interface ICreate {
  coopname: IName
  username: IName
  account_id: IUint64
  quantity: IAsset
  reason: string
  document: IDocument2
  writeoff_hash: IChecksum256
}

export interface IDecline {
  coopname: IName
  writeoff_hash: IChecksum256
  reason: string
}

export interface IDocument2 {
  version: string
  hash: IChecksum256
  doc_hash: IChecksum256
  meta_hash: IChecksum256
  meta: string
  signatures: ISignatureInfo[]
}

export interface ILaccount {
  id: IUint64
  name: string
  available: IAsset
  blocked: IAsset
  writeoff: IAsset
}

export interface IMigrate {
}

export interface ISignatureInfo {
  id: IUint32
  signed_hash: IChecksum256
  signer: IName
  public_key: IPublicKey
  signature: ISignature
  signed_at: ITimePointSec
  meta: string
}

export interface ISub {
  coopname: IName
  account_id: IUint64
  quantity: IAsset
  comment: string
  hash: IChecksum256
  username: IName
}

export interface IUnblock {
  coopname: IName
  account_id: IUint64
  quantity: IAsset
  comment: string
  hash: IChecksum256
  username: IName
}

export interface IWriteoff {
  coopname: IName
  account_id: IUint64
  quantity: IAsset
  comment: string
  hash: IChecksum256
  username: IName
}

export interface IWriteoffOp {
  id: IUint64
  coopname: IName
  username: IName
  account_id: IUint64
  quantity: IAsset
  reason: string
  document: IDocument2
  writeoff_hash: IChecksum256
  status: IName
}

export interface IWriteoffcnsl {
  coopname: IName
  account_id: IUint64
  quantity: IAsset
  comment: string
  hash: IChecksum256
  username: IName
}

