Actualizar escrow

Publicación única

/**
 * Carga útil de actualización de escrow para publicación única
 */
export type UpdateSingleReleaseEscrowPayload = {
  /**
   * ID (address) que identifica el contrato escrow
   */
  contractId: string;

  /**
   * Datos del escrow
   */
  escrow: {
    /**
   * Identificador único del escrow
   */
    engagementId: string;

    /**
     * Nombre del escrow
     */
    title: string;

    /**
     * Roles que componen la estructura del escrow
     */
    roles: {
      /**
       * Dirección de la entidad que requiere el servicio.
       */
      approver: string;

      /**
       * Dirección de la entidad que presta el servicio.
       */
      serviceProvider: string;

      /**
       * Dirección de la entidad que posee el escrow
       */
      platformAddress: string;

      /**
       * Dirección del usuario encargado de liberar los fondos del escrow al proveedor del servicio.
       */
      releaseSigner: string;

      /**
       * Dirección encargada de resolver disputas dentro del escrow.
       */
      disputeResolver: string;

      /**
       * Dirección a la que se enviarán los ingresos del escrow
       */
      receiver: string;
    };

    /**
     * Texto que describe la función del escrow
     */
    description: string;

    /**
     * Monto que se transferirá al completarse los hitos del escrow
     */
    amount: number;

    /**
     * Comisión que la plataforma recibirá cuando el escrow se complete
     */
    platformFee: number;

    /**
     * Objetivos a completar para definir el escrow como completado
     */
    milestones: {
      /**
       * Texto que describe la función del hito.
       */
      description: string;

      /**
       * Estado del hito. Ej: Aprobado, En disputa, etc...
       */
      status?: string;

      /**
       * Evidencia del trabajo realizado por el proveedor del servicio.
       */
      evidence?: string;

      /**
       * Indicador de aprobado, solo si el escrow es de liberación única
       */
      approved?: boolean;
    }[];

    /**
     * Indicadores que validan ciertos estados de vida del escrow
     */
    flags?: {
      /**
       * Indicador que señala que un escrow está en disputa.
       */
      disputed?: boolean;

      /**
       * Indicador que señala que los fondos del escrow ya han sido liberados.
       */
      released?: boolean;

      /**
       * Indicador que señala que un escrow en disputa ya ha sido resuelto.
       */
      resolved?: boolean;

      /**
       * Indicador que señala si un hito ha sido aprobado por el aprobador.
       */
      approved?: boolean;
    };

    /**
     * Información sobre la trustline que gestionará el movimiento de fondos en escrow
     */
    trustline: {
      /**
       * Dirección pública que establece permiso para aceptar y usar un token específico.
       */
      address: string;
    };

    /**
     * Si el escrow está activo. Esto proviene de la BD, no de la cadena de bloques.
     */
    isActive?: boolean;
  };

  /**
   * Dirección del usuario que firma la transacción del contrato
   */
  signer: string;
};

Publicación múltiple

/**
 * Carga útil de actualización de escrow para publicación múltiple
 */
export type UpdateMultiReleaseEscrowPayload = {
  /**
   * ID (address) que identifica el contrato escrow
   */
  contractId: string;

  /**
   * Datos del escrow
   */
  escrow: {
    /**
     * Identificador único del escrow
     */
    engagementId: string;

    /**
     * Nombre del escrow
     */
    title: string;

    /**
     * Roles que componen la estructura del escrow (sin receiver, ya que cada hito tiene su propio receiver)
     */
    roles: {
      /**
       * Dirección de la entidad que requiere el servicio.
       */
      approver: string;

      /**
       * Dirección de la entidad que presta el servicio.
       */
      serviceProvider: string;

      /**
       * Dirección de la entidad que posee el escrow
       */
      platformAddress: string;

      /**
       * Dirección del usuario encargado de liberar los fondos del escrow al proveedor del servicio.
       */
      releaseSigner: string;

      /**
       * Dirección encargada de resolver disputas dentro del escrow.
       */
      disputeResolver: string;
    };

    /**
     * Texto que describe la función del escrow
     */
    description: string;

    /**
     * Comisión que la plataforma recibirá cuando el escrow se complete
     */
    platformFee: number;

    /**
     * Objetivos a completar para definir el escrow como completado
     */
    milestones: {
      /**
       * Texto que describe la función del hito.
       */
      description: string;

      /**
       * Estado del hito. Ej: Aprobado, En disputa, etc...
       */
      status?: string;

      /**
       * Evidencia del trabajo realizado por el proveedor del servicio.
       */
      evidence?: string;

      /**
       * Monto que se transferirá al completarse este hito
       */
      amount: number;

      /**
       * Dirección a la que se enviarán los ingresos del hito
       */
      receiver: string;

      /**
       * Indicadores que validan ciertos estados de vida del hito, solo si el escrow es de liberación múltiple
       */
      flags?: {
        /**
         * Indicador que señala que un escrow está en disputa.
         */
        disputed?: boolean;

        /**
         * Indicador que señala que los fondos del escrow ya han sido liberados.
         */
        released?: boolean;

        /**
         * Indicador que señala que un escrow en disputa ya ha sido resuelto.
         */
        resolved?: boolean;

        /**
         * Indicador que señala si un hito ha sido aprobado por el aprobador.
         */
        approved?: boolean;
      };
    }[];

    /**
     * Información sobre la trustline que gestionará el movimiento de fondos en escrow
     */
    trustline: {
      /**
       * Dirección pública que establece permiso para aceptar y usar un token específico.
       */
      address: string;
    };

    /**
     * Si el escrow está activo. Esto proviene de la BD, no de la cadena de bloques.
     */
    isActive?: boolean;
  };

  /**
   * Dirección del usuario que firma la transacción del contrato
   */
  signer: string;
};

Última actualización

¿Te fue útil?