Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions README.es-ES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# aave-unwind

## Contrato

[`Unwind.sol`](./src/Unwind.sol) puede ser utilizado por los usuarios para deshacer sus posiciones apalancadas mediante:
1. Un flashloan del activo de deuda/prestado desde Balancer/Aave-v3.
2. El pago de la deuda con los activos obtenidos del flashloan.
3. El retiro del colateral liberado.
4. El intercambio (dumping) del colateral liberado por el activo de la deuda.
5. El pago del flashloan utilizando el colateral intercambiado.

Esto permite a los usuarios deshacer sus posiciones apalancadas sin tener que pasar por múltiples ciclos de transacciones de retiro de colateral, intercambio y pago de deuda, utilizando flashloans.

Nota: Los usuarios deben aprobar su aToken de colateral al contrato para que este pueda ejecutar `tranferFrom` del usuario y retirar el colateral.

Al finalizar la transacción `Unwind.unwind`, todos los activos restantes de colateral y tokens de deuda son devueltos al usuario.

---

Se puede escribir un contrato y script similar para aumentar el apalancamiento. Quizás sea algo para el futuro si encuentro un uso personal para ese caso. Los nuevos usuarios también pueden usar herramientas como DefiSaver o los DSAs de InstaDapp para abrir/cerrar posiciones apalancadas. Personalmente, necesité este script para una posición existente en una EOA.

---

Este repositorio puede servir como un buen ejemplo de cómo integrar y utilizar flashloans de forma segura con las verificaciones pertinentes en los callbacks, forge FFI en los scripts, y también, en general, cómo puedes usar los scripts de forge para orquestar acciones desde tus EOAs.

## Script

[`Unwind.s.sol`](./script/Unwind.s.sol) puede ser utilizado por los usuarios para deshacer sus posiciones como una serie de transacciones necesarias y codificación de calldata, etc. Contiene código para utilizar los agregadores [OpenOcean](https://openocean.finance) y [Odos](https://odos.xyz) y sus APIs para determinar las rutas de intercambio óptimas para los outputs del swap de colateral. Se pueden integrar más agregadores de manera similar.

```bash
forge script ./script/Unwind.s.sol --rpc-url ... --private-key ... --broadcast
```