Actualizar escrow

Este endpoint te permite cambiar las propiedades de un escrow siempre que se cumpla una serie de requisitos, que se mencionarán en esta sección.

Requisitos para usar:

  1. Solo la entidad con el rol de plataforma tiene permisos para ejecutar este endpoint

  2. No puedes cambiar las propiedades de un escrow que ya tiene un hito aprobado

  3. No puedes cambiar las propiedades de un escrow que ya tiene fondos

  4. No puedes cambiar las propiedades de un escrow que está en disputa.

Encabezados

Nombre
Valor

Content-Type

application/json

x-api-key

<token>

Roles:

Nombre
Tipo
Descripción

aprobador

cadena

Dirección de la entidad que requiere el servicio.

proveedorDeServicio

cadena

Dirección de la entidad que presta el servicio.

direccionPlataforma

cadena

Dirección de la entidad que posee el escrow

firmanteDeLiberacion

cadena

Dirección del usuario encargado de liberar los fondos del escrow al proveedor de servicio.

resolutorDeDisputas

cadena

Dirección encargada de resolver disputas dentro del escrow.

receptor

cadena

Dirección donde se enviarán los ingresos del escrow

Hito:

Nombre
Tipo
Descripción

descripción

cadena

Texto que describe la función del hito.

estado

cadena

Estado del hito. Ej: Aprobado, En disputa, etc...

aprobado

booleano

Indicador que señala si un hito ha sido aprobado por el aprobador.

Indicadores

Nombre
Tipo
Descripción

en disputa

booleano

Indicador que señala que un escrow está en disputa.

liberado

booleano

Indicador que señala que los fondos del escrow ya han sido liberados.

resuelto

booleano

Indicador que señala que un escrow disputado ya ha sido resuelto.

Trustline

Nombre
Tipo
Descripción

dirección

cadena

Dirección pública que establece permiso para aceptar y usar un token específico.

Open API

put
Autorizaciones
Cuerpo
signerstringRequerido

Entity that signs the transaction that deploys and initializes the escrow

Example: GSIGN...XYZ
contractIdstringRequerido

ID (address) that identifies the escrow contract

Example: CAZ6UQX7...
escrowall ofRequerido

Escrow data to update

Respuestas
200

This endpoint returns an unsigned transaction in XDR format. This XDR is then used to sign the transaction using the “/helper/send-transaction” endpoint.

application/json
put
/escrow/single-release/update-escrow
PUT /escrow/single-release/update-escrow HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 846

{
  "signer": "GAPPROVER1234567890...",
  "contractId": "CAZ6UQX7...",
  "isActive": true,
  "escrow": {
    "signer": "GAPPROVER1234567890...",
    "engagementId": "ENG12345",
    "title": "Project Title",
    "description": "This is a detailed description of the project.",
    "roles": {
      "approver": "GAPPROVER1234567890...",
      "serviceProvider": "GAPPROVER1234567890...",
      "platformAddress": "GAPPROVER1234567890...",
      "releaseSigner": "GAPPROVER1234567890...",
      "disputeResolver": "GAPPROVER1234567890...",
      "receiver": "GAPPROVER1234567890..."
    },
    "amount": 1000,
    "platformFee": 50,
    "milestones": [
      {
        "description": "test1",
        "status": "pending",
        "evidence": "Any evidence that the milestone is completed"
      },
      {
        "description": "test2",
        "status": "pending",
        "evidence": "Any evidence that the milestone is completed"
      }
    ],
    "flags": {
      "disputed": false,
      "released": false,
      "resolved": false
    },
    "trustline": {
      "address": "GAPPROVER1234567890..."
    }
  }
}
{
  "status": "SUCCESS",
  "unsignedTransaction": "AAAAAgAAAAAtWsgedQ...."
}

¿Qué devuelve este Endpoint?

Este endpoint devuelve la transacción sin firmar para que la transacción pueda ser firmada mediante la cartera del cliente.

Ejemplo de uso:

import axios from "axios";

const http = axios.create({
  baseURL: "https://dev.api.trustlesswork.com",
  timeout: 10000,
  headers: {
    "Content-Type": "application/json",
    "x-api-key": tu_api_key,
  },
});

export const useExample = async () => {
    // Obtener la dirección del firmante
    const { address } = await kit.getAddress();

    const response = await http.put(
      "/escrow/single-release/update-escrow",
      {
        // body solicitado para el endpoint
      },
    ); 
    
    // Obtener el hash de la transacción sin firmar
    const { unsignedTransaction } = response.data;

    // Firmar la transacción con la cartera
    const { signedTxXdr } = await signTransaction(unsignedTransaction, {
      address,
      networkPassphrase: WalletNetwork.TESTNET,
    });

    // Enviar la transacción a la Red Stellar
    const tx = await http.post("/helper/send-transaction", {
      signedXdr: signedTxXdr,
    });

    const { data } = tx;

    return data;
}

Última actualización

¿Te fue útil?