Retirar fondos restantes
Esta función se usa para retirar fondos que están atrapados en escrow y no pueden retirarse debido a la forma en que funciona el escrow de liberación múltiple, ya que las disputas en este caso se manejan a nivel de hito.
En las cuentas de escrow de liberación única, este endpoint no es necesario porque las disputas se manejan a nivel de la cuenta de escrow, por lo que si queda algún saldo en el contrato, se abre una disputa y se retira el saldo restante.
Encabezados
Tipo de contenido
application/json
x-api-key
<token>
API Abierta
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...."
}
¿Qué devuelve este endpoint?
Este endpoint devuelve la transacción sin firmar para que la transacción pueda ser firmada por medio de la cartera del cliente.
Ejemplo 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": tu_api_key,
},
});
export const useExample = async () => {
// Obtener la dirección del firmante
const { address } = await kit.getAddress();
const response = await http.post(
"/escrow/multi-release/withdraw-remaining-funds",
{
// cuerpo solicitado para el endpoint
},
);
// Obtener el hash de la transacción sin firmar
const { unsignedTransaction } = response.data;
// Firmar la transacción con la cartera
const { signedTxXdr } = await signTransaction(unsignedTransaction, {
address,
networkPassphrase: WalletNetwork.TESTNET,
});
// Enviar la transacción a la red Stellar
const tx = await http.post("/helper/send-transaction", {
signedXdr: signedTxXdr,
});
const { data } = tx;
return data;
}Última actualización
¿Te fue útil?