Change Milestone Status
Responsible for changing the milestone status of an escrow through the service provider.
Headers
Name
Value
Content-Type
application/json
Authorization
Bearer <token>
Open API
post
Body
contractIdstringRequiredExample:
ID (address) that identifies the escrow contract
CAZ6UQX7...
milestoneIndexstringRequiredExample:
milestone within the group of milestones in the escrow
1
newEvidencestringRequiredExample:
New value for the evidence property within the escrow milestone
Evidence
newStatusstringRequiredExample:
New value for the status property within the escrow milestone
Completed
serviceProviderstringRequiredExample:
Address of the entity providing the service
Completed
Responses
201
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
400
Bad request
401
Unauthorized access
429
Too Many Requests
500
Possible errors:
- Escrow not found
- Only the service provider can change milestone status
- Invalid milestone index
- Escrow initialized without milestone
- An unexpected error occurred
application/json
post
POST /escrow/single-release/change-milestone-status HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 177
{
"contractId": "CAZ6UQX7...",
"milestoneIndex": "1",
"newEvidence": "Any evidence that the milestone is completed",
"newStatus": "Completed",
"serviceProvider": "GAPPROVER1234567890..."
}
{
"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.post(
"/escrow/single-release/change-milestone-status",
{
// 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?