Retirar Fundos Restantes
Esta função é usada para retirar fundos que estão presos em custódia e não podem ser sacados devido ao funcionamento de custódia com liberações múltiplas, já que disputas nesse caso são tratadas ao nível do marco (milestone).
Em contas de custódia com liberação única, este endpoint não é necessário porque as disputas são tratadas ao nível da conta de custódia, então se houver qualquer saldo remanescente no contrato, uma disputa é aberta e o saldo restante é retirado.
Cabeçalhos
Content-Type
application/json
x-api-key
<token>
Open API
ID (address) that identifies the escrow contract
CAZ6UQX7...Address of the user defined to resolve disputes in an escrow
GDISPUTE...XYZThis endpoint returns an unsigned transaction in XDR format. This XDR is then used to sign the transaction using the “/helper/send-transaction” endpoint.
Bad request
Unauthorized access
Too Many Requests
Possible errors:
- Escrow not found
- None of the amounts to be transferred should be less or equal than 0
- Only the dispute resolver can execute this function
- All milestones must be released or dispute-resolved before withdrawing remaining funds
- The total amount to be transferred cannot be zero
- Insufficient funds for resolution
- An unexpected error occurred
POST /escrow/multi-release/withdraw-remaining-funds HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 188
{
"contractId": "CAZ6UQX7...",
"disputeResolver": "GDISPUTE1234567890...",
"distributions": [
{
"address": "GAPPROVER1234567890...",
"amount": 150
},
{
"address": "GRECEIVER1234567890...",
"amount": 850
}
]
}{
"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 signatário
const { address } = await kit.getAddress();
const response = await http.post(
"/escrow/multi-release/withdraw-remaining-funds",
{
// corpo solicitado para o endpoint
},
);
// Obter o hash da transação não assinada
const { unsignedTransaction } = response.data;
// Assinar a transação pelo wallet
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?