Deploy
Deploy the escrow contract and define the escrow properties.
Headers
Content-Type
application/json
Authorization
Bearer <token>
Milestone
description
string
Text describing the function of the milestone
status
string (Default value: "peding")
Milestone status. Ex: Approved, In dispute, etc...
approvedFlag
boolean (Default value: false)
Flag indicating whether a milestone has been approved by the approver
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
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.
Initialize Escrow
Entity that signs the transaction that deploys and initializes the escrow
GABC...XYZ
Unique identifier for the escrow
ENG12345
Name of the escrow
Escrow Test
Text describing the function of the escrow
Escrow Test description
Roles that make up the escrow structure
Amount to be transferred upon completion of escrow milestones
1000
Commission that the platform will receive when the escrow is completed
5 -> 5%
Objectives to be completed to define the escrow as completed. (In this case it is not necessary to send the properties “approvedFlag” and “status” inside the objects of these milestones)
Information on the trustline that will manage the movement of funds in escrow
Field used to identify the recipient's address in transactions through an intermediary account. This value is included as a memo in the transaction and allows the funds to be correctly routed to the wallet of the specified recipient
123456
Possible errors:
- Amount cannot be zero
- Escrow already initialized
- An unexpected error occurred
POST /deployer/single-release HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 627
{
"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": "Initial phase of the project"
},
{
"description": "Completion of design work"
}
],
"trusline": {
"address": "GAPPROVER1234567890...",
"decimals": 10000000
},
"receiverMemo": 456789
}
{
"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();
// Execute the endpoint
const response = await http.post(
"/deployer/single-release",
{
// 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,
returnEscrowDataIsRequired: true,
});
const { data } = tx;
return data;
}
Last updated
Was this helpful?