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. Si un escrow tiene fondos, lo único que la plataforma puede hacer es agregar más hitos. Las otras propiedades no pueden modificarse bajo ninguna circunstancia.

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.

proveedorDeServicios

cadena

Dirección de la entidad que ofrece el servicio.

platformAddress

cadena

Dirección de la entidad que posee el escrow

firmanteDeLiberacion

cadena

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

resolutorDeDisputas

cadena

Dirección encargada de resolver disputas dentro del escrow.

receptor

cadena

Dirección a la que se enviarán los fondos 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 en disputa 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.

API Abierta

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 por medio de la billetera 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": your_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",
      {
        // cuerpo solicitado para el endpoint
      },
    ); 
    
    // Obtener el hash de la transacción sin firmar
    const { unsignedTransaction } = response.data;

    // Firmar la transacción con la billetera
    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?