Entidades
Escrow
Contiene tipos de liberación única y de liberación múltiple.
/**
* Escrow de liberación única
*/
export type SingleReleaseEscrow = {
/**
* Dirección del usuario que firma la transacción del contrato
*/
signer: string;
/**
* ID (dirección) que identifica el contrato escrow
*/
contractId: string;
/**
* Identificador único para el escrow
*/
engagementId: string;
/**
* Nombre del escrow
*/
title: string;
/**
* Roles que conforman la estructura del escrow
*/
roles: Roles;
/**
* Texto que describe la función del escrow
*/
description: string;
/**
* Cantidad a transferir al completarse los hitos del escrow
*/
amount: number;
/**
* Comisión que la plataforma recibirá cuando el escrow se complete
*/
platformFee: number;
/**
* Cantidad del token (XLM, USDC, EURC, etc.) en el contrato inteligente.
*/
balance: number;
/**
* Objetivos a completar para definir el escrow como completado
*/
milestones: SingleReleaseMilestone[];
/**
* Flags que validan ciertos estados de vida del escrow
*/
flags?: Flags;
/**
* Información sobre la trustline que gestionará el movimiento de fondos en escrow
*/
trustline: Trustline;
};
/**
* Escrow de liberación múltiple
*/
export type MultiReleaseEscrow = Omit<
SingleReleaseEscrow,
"milestones" | "flags" | "amount" | "roles"
> & {
milestones: MultiReleaseMilestone[];
roles: Omit<Roles, "receiver">;
};Hito
Contiene tipos de liberación única y de liberación múltiple. Ambos basados en BaseMilestone.
/**
* Hito
*/
type BaseMilestone = {
/**
* 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;
};
/**
* Hito de liberación única
*/
export type SingleReleaseMilestone = BaseMilestone & {
/**
* Indicador de aprobado, solo si el escrow es de liberación única
*/
approved?: boolean;
};
/**
* Hito de liberación múltiple
*/
export type MultiReleaseMilestone = BaseMilestone & {
/**
* Cantidad a transferir al completarse este hito
*/
amount: number;
/**
* Dirección a la que se enviarán los fondos del hito
*/
receiver: string;
/**
* Flags que validan ciertos estados de vida del hito, solo si el escrow es de liberación múltiple
*/
flags?: Flags;
};Trustline
/**
* Trustline
*/
export interface Trustline {
/**
* Dirección pública que establece permiso para aceptar y usar un token específico.
*/
address: string;
}Flags
Todos los flags posibles solo en escrow de liberación múltiple.
/**
* Flags
*/
export type Flags = {
/**
* Indicador que indica que un escrow está en disputa.
*/
disputed?: boolean;
/**
* Indicador que indica que los fondos del escrow ya han sido liberados.
*/
released?: boolean;
/**
* Indicador que indica que un escrow en disputa ya ha sido resuelto.
*/
resolved?: boolean;
/**
* Indicador que indica si un hito ha sido aprobado por el aprobador.
*/
approved?: boolean;
};
Roles
/**
* Roles
*/
export type 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 fondos del escrow (En la versión “Multi-Release”,
este rol está a nivel de hito.)
*/
receiver: string;
};
/**
* Rol
*/
export type Role =
| "approver"
| "serviceProvider"
| "platformAddress"
| "releaseSigner"
| "disputeResolver"
| "receiver"
| "signer";Última actualización
¿Te fue útil?