Atualizar Escrow

Este endpoint permite que você altere as propriedades de um escrow desde que uma série de requisitos seja atendida, os quais serão mencionados nesta seção.

Requisitos para usar:

  1. Apenas a entidade com o papel de plataforma tem permissão para executar este endpoint

  2. Você não pode alterar as propriedades de um escrow que já possui um marco aprovado

  3. Você não pode alterar as propriedades de um escrow que já possui fundos

  4. Você não pode alterar as propriedades de um escrow que está em disputa.

Cabeçalhos

Nome
Valor

Content-Type

application/json

x-api-key

<token>

Funções:

Nome
Tipo
Descrição

aprovador

string

Endereço da entidade que requisita o serviço.

prestadorDeServiço

string

Endereço da entidade que fornece o serviço.

endereçoDaPlataforma

string

Endereço da entidade que possui o escrow

assinanteDeLiberação

string

Endereço do usuário responsável por liberar os fundos do escrow para o prestador de serviço.

resolvedorDeDisputa

string

Endereço responsável por resolver disputas dentro do escrow.

recebedor

string

Endereço para onde os recursos do escrow serão enviados

Marco:

Nome
Tipo
Descrição

descrição

string

Texto descrevendo a função do marco.

status

string

Status do marco. Ex: Aprovado, Em disputa, etc...

aprovado

booleano

Indicador que sinaliza se um marco foi aprovado pelo aprovador.

Sinalizadores

Nome
Tipo
Descrição

contestada

booleano

Indicador que sinaliza que um escrow está em disputa.

liberado

booleano

Indicador que sinaliza que os fundos em escrow já foram liberados.

resolvido

booleano

Indicador que sinaliza que um escrow disputado já foi resolvido.

Trustline

Nome
Tipo
Descrição

endereço

string

Endereço público estabelecendo permissão para aceitar e usar um token específico.

Open API

put
Autorizações
Corpo
signerstringObrigatório

Entity that signs the transaction that deploys and initializes the escrow

Example: GSIGN...XYZ
contractIdstringObrigatório

ID (address) that identifies the escrow contract

Example: CAZ6UQX7...
escrowall ofObrigatório

Escrow data to update

Respostas
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...."
}

O que este Endpoint retorna?

Este endpoint retorna a transação não assinada para que a transação possa ser assinada por meio da carteira do cliente.

Exemplo 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 () => {
    // Obter o endereço do assinante
    const { address } = await kit.getAddress();

    const response = await http.put(
      "/escrow/single-release/update-escrow",
      {
        // corpo solicitado para o endpoint
      },
    ); 
    
    // Obter o hash da transação não assinada
    const { unsignedTransaction } = response.data;

    // Assinar a transação pela carteira
    const { signedTxXdr } = await signTransaction(unsignedTransaction, {
      address,
      networkPassphrase: WalletNetwork.TESTNET,
    });

    // Enviar a transação para a Rede Stellar
    const tx = await http.post("/helper/send-transaction", {
      signedXdr: signedTxXdr,
    });

    const { data } = tx;

    return data;
}

Atualizado

Isto foi útil?