// 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 IUint64 = number | string

export interface IApprovewthd {
  coopname: IName
  withdraw_hash: IChecksum256
  approved_statement: IDocument
}

export interface IAuthwthd {
  coopname: IName
  withdraw_hash: IChecksum256
}

export interface ICompletedpst {
  coopname: IName
  deposit_hash: IChecksum256
}

export interface ICompletewthd {
  coopname: IName
  withdraw_hash: IChecksum256
  memo: string
}

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: IDocument
}

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 IDocument {
  hash: IChecksum256
  public_key: IPublicKey
  signature: ISignature
  meta: string
}

export interface IMigrate {
}

export interface IWithdraw {
  id: IUint64
  username: IName
  coopname: IName
  withdraw_hash: IChecksum256
  status: IName
  quantity: IAsset
  statement: IDocument
  approved_statement: IDocument
  authorization: IDocument
  created_at: ITimePointSec
}

