// 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 IApprovewthd {
  coopname: IName
  withdraw_hash: IChecksum256
  approved_statement: IDocument2
}

export interface IAuthwthd {
  coopname: IName
  hash: IChecksum256
  authorization: IDocument2
}

export interface ICompletedpst {
  coopname: IName
  deposit_hash: IChecksum256
}

export interface ICompletewthd {
  coopname: IName
  withdraw_hash: IChecksum256
}

export interface ICreatedpst {
  coopname: IName
  username: IName
  deposit_hash: IChecksum256
  quantity: IAsset
}

export interface ICreatewthd {
  coopname: IName
  username: IName
  withdraw_hash: IChecksum256
  quantity: IAsset
  statement: IDocument2
}

export interface IDeclinedpst {
  coopname: IName
  deposit_hash: IChecksum256
  reason: string
}

export interface IDeclinewthd {
  coopname: IName
  withdraw_hash: IChecksum256
  reason: string
}

export interface IDeposit {
  id: IUint64
  coopname: IName
  username: IName
  deposit_hash: IChecksum256
  quantity: IAsset
  status: IName
  created_at: ITimePointSec
}

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

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 IWithdraw {
  id: IUint64
  username: IName
  coopname: IName
  withdraw_hash: IChecksum256
  status: IName
  quantity: IAsset
  statement: IDocument2
  approved_statement: IDocument2
  authorization: IDocument2
  created_at: ITimePointSec
}

