Respostas

Entidade de Resposta do Escrow

import { Date, EscrowType, Status } from "./types";
import {
  Flags,
  MultiReleaseEscrow,
  MultiReleaseMilestone,
  Roles,
  SingleReleaseEscrow,
  SingleReleaseMilestone,
  Trustline,
} from "./types.entity";

/**
 * Resposta do Escrow como fund, release, change, etc ...
 */
export type EscrowRequestResponse = {
  /**
   * Status da solicitação
   */
  status: Status;

  /**
   * Transação não assinada
   */
  unsignedTransaction?: string;
};

/**
 * Resposta de Envio de Transação
 */
export type SendTransactionResponse = {
  /**
   * Status da solicitação
   */
  status: Status;

  /**
   * Mensagem da solicitação
   */
  message: string;
};

/**
 * Resposta de Inicialização do Escrow
 */
export type InitializeSingleReleaseEscrowResponse = EscrowRequestResponse & {
  /**
   * ID (endereço) que identifica o contrato escrow
   */
  contractId: string;

  /**
   * Dados do Escrow
   */
  escrow: SingleReleaseEscrow;

  /**
   * Mensagem da solicitação
   */
  message: string;
};

/**
 * Resposta de Inicialização de Escrow com Múltiplos Releases
 */
export type InitializeMultiReleaseEscrowResponse =
  InitializeSingleReleaseEscrowResponse & {
    /**
     * Dados do Escrow
     */
    escrow: MultiReleaseEscrow;
  };

/**
 * Resposta de Atualização do Escrow
 */
export type UpdateSingleReleaseEscrowResponse =
  InitializeSingleReleaseEscrowResponse;

/**
 * Resposta de Atualização de Escrow com Múltiplos Releases
 */
export type UpdateMultiReleaseEscrowResponse =
  InitializeMultiReleaseEscrowResponse;

/**
 * Resposta para Obter Saldos
 */
export type GetEscrowBalancesResponse = {
  /**
   * Endereço do escrow
   */
  address: string;

  /**
   * Saldo do escrow
   */
  balance: number;
};

/**
 * Resposta para Obter Escrows do Indexador
 */
export type GetEscrowsFromIndexerResponse = {
  signer?: string;
  contractId?: string;
  engagementId: string;
  title: string;
  roles: Roles;
  description: string;
  amount: number;
  platformFee: number;
  balance?: number;
  milestones:
    | SingleReleaseMilestone[]
    | (MultiReleaseMilestone[] & { disputeStartedBy: Roles });
  flags?: Flags;
  trustline: Trustline & { name: string };
  receiverMemo?: number;
  disputeStartedBy?: string;
  fundedBy?: string;
  isActive?: boolean;
  approverFunds?: string;
  receiverFunds?: string;
  user: string;
  createdAt: Date;
  updatedAt: Date;
  type: EscrowType;
};

/**
 * Resposta para atualizar escrow a partir do hash da transação
 */
export type UpdateFromTxHashResponse = {
  /**
   * Status da solicitação
   */
  status: "SUCCESS" | "FAILED";

  /**
   * Mensagem descrevendo o resultado
   */
  message: string;
};

Atualizado

Isto foi útil?