export interface AmlDecisionDetails { // Array of AML decisions made for this account. Possibly // contains only the most recent decision if "history" was // not set to 'true'. aml_history: AmlDecisionDetail[]; // Array of KYC attributes obtained for this account. kyc_attributes: KycDetail[]; } type AmlOfficerPublicKeyP = string; export interface AmlDecisionDetail { // What was the justification given? justification: string; // What is the new AML state. new_state: Integer; // When was this decision made? decision_time: Timestamp; // What is the new AML decision threshold (in monthly transaction volume)? new_threshold: Amount; // Who made the decision? decider_pub: AmlOfficerPublicKeyP; } export interface KycDetail { // Name of the configuration section that specifies the provider // which was used to collect the KYC details provider_section: string; // The collected KYC data. NULL if the attribute data could not // be decrypted (internal error of the exchange, likely the // attribute key was changed). attributes?: Object; // Time when the KYC data was collected collection_time: Timestamp; // Time when the validity of the KYC data will expire expiration_time: Timestamp; } interface Timestamp { // Seconds since epoch, or the special // value "never" to represent an event that will // never happen. t_s: number | "never"; } type PaytoHash = string; type Integer = number; type Amount = string; export interface AmlRecords { // Array of AML records matching the query. records: AmlRecord[]; } interface AmlRecord { // Which payto-address is this record about. // Identifies a GNU Taler wallet or an affected bank account. h_payto: PaytoHash; // What is the current AML state. current_state: AmlState; // Monthly transaction threshold before a review will be triggered threshold: Amount; // RowID of the record. rowid: Integer; } export enum AmlState { normal = 0, pending = 1, frozen = 2, }