Update Escrow
This endpoint allows you to change the properties of an escrow as long as a series of requirements are met, which will be mentioned in this section.
Requirements to use:
Only the entity with the platform role has permissions to execute this endpoint
You cannot change the properties of an escrow which already has an approved milestone
You cannot change the properties of an escrow which already has funds
You cannot change the properties of an escrow which is in dispute.
Headers
Content-Type
application/json
Authorization
Bearer <token>
Roles:
approver
string
Address of the entity requiring the service.
serviceProvider
string
Address of the entity providing the service.
plataformAddress
string
Address of the entity that owns the escrow
releaseSigner
string
Address of the user in charge of releasing the escrow funds to the service provider.
disputeResolver
string
Address in charge of resolving disputes within the escrow.
receiver
string
Address where escrow proceeds will be sent to
Milestone:
description
string
Text describing the function of the milestone.
status
string
Milestone status. Ex: Approved, In dispute, etc...
approvedFlag
boolean
Flag indicating whether a milestone has been approved by the approver.
Flags
disputed
boolean
Flag indicating that an escrow is in dispute.
released
boolean
Flag indicating that escrow funds have already been released.
resolved
boolean
Flag indicating that a disputed escrow has already been resolved.
Trustline
address
string
Public address establishing permission to accept and use a specific token.
decimals
number
Number of decimals into which the token is divided.
Open API
Entity that signs the transaction that deploys and initializes the escrow
GSIGN...XYZ
ID (address) that identifies the escrow contract
CAZ6UQX7...
Escrow data to update
Possible errors:
- Escrow not found
- Only the platform address should be able to execute this function
- You can't change the escrow properties after the milestone is approved
- Escrow has funds
- Escrow has been opened for dispute resolution
- An unexpected error occurred
PUT /escrow/single-release/update-escrow HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 871
{
"signer": "GAPPROVER1234567890...",
"contractId": "CAZ6UQX7...",
"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": true,
"resolved": false
},
"receiverMemo": 456789,
"trustline": {
"address": "GAPPROVER1234567890...",
"decimals": 10000000
}
}
}
{
"status": "SUCCESS",
"unsignedTransaction": "AAAAAgAAAAAtWsgedQ...."
}
What this Endpoint returns?
This endpoint returns the transaction unsigned so that the transaction can be signed by means of a customer wallet.
Use Example:
import axios from "axios";
const http = axios.create({
baseURL: "https://dev.api.trustlesswork.com",
timeout: 10000,
headers: {
"Content-Type": "application/json",
Authorization: `Bearer your_api_key`,
},
});
export const useExample = async () => {
// Get the signer address
const { address } = await kit.getAddress();
const response = await http.put(
"/escrow/single-release/update-escrow",
{
// body requested for the endpoint
},
);
// Get the unsigned transaction hash
const { unsignedTransaction } = response.data;
// Sign the transaction by wallet
const { signedTxXdr } = await signTransaction(unsignedTransaction, {
address,
networkPassphrase: WalletNetwork.TESTNET,
});
// Send the transaction to Stellar Network
const tx = await http.post("/helper/send-transaction", {
signedXdr: signedTxXdr,
});
const { data } = tx;
return data;
}
Last updated
Was this helpful?