Entities

Escrow

Contains both single-release and multiple-release types.

/**
 * Single Release Escrow
 */
export type SingleReleaseEscrow = {
  /**
   * Address of the user signing the contract transaction
   */
  signer: string;

  /**
   * ID (address) that identifies the escrow contract
   */
  contractId: string;

  /**
   * Unique identifier for the escrow
   */
  engagementId: string;

  /**
   * Name of the escrow
   */
  title: string;

  /**
   * Roles that make up the escrow structure
   */
  roles: Roles;

  /**
   * Text describing the function of the escrow
   */
  description: string;

  /**
   * Amount to be transferred upon completion of escrow milestones
   */
  amount: number;

  /**
   * Commission that the platform will receive when the escrow is completed
   */
  platformFee: number;

  /**
   * Amount of the token (XLM, USDC, EURC, etc) in the smart contract.
   */
  balance: number;

  /**
   * Objectives to be completed to define the escrow as completed
   */
  milestones: SingleReleaseMilestone[];

  /**
   * Flags validating certain escrow life states
   */
  flags?: Flags;

  /**
   * Information on the trustline that will manage the movement of funds in escrow
   */
  trustline: Trustline;
};

/**
 * Multi Release Escrow
 */
export type MultiReleaseEscrow = Omit<
  SingleReleaseEscrow,
  "milestones" | "flags" | "amount" | "roles"
> & {
  milestones: MultiReleaseMilestone[];
  roles: Omit<Roles, "receiver">;
};

Milestone

Contains both single-release and multiple-release types. Both of them based on the BaseMilestone.

Trustline

Flags

All the possible flags only in multi-release escrow.

Roles

Last updated

Was this helpful?