Руководство по интеграции
### Риски неограниченных аппрувов (Infinite Approvals)
Стандартный паттерн вызова `approve(spender, uint256_max)` позволяет смарт-контракту тратить любые объемы токенов с кошелька пользователя в будущем. В случае компрометации смарт-контракта (или наличия в нем бэкдора), злоумышленник может мгновенно опустошить баланс кошелька.
### Защита аппрувов
1. **Ограниченные разрешения (Exact Amount Approval)**: Бот должен отправлять транзакцию `approve` ровно на сумму совершаемой транзакции обмена.
2. **Автоматический отзыв (Revocation)**: Сразу после совершения обмена необходимо вызывать `approve(spender, 0)` для сброса лимита авторизации.
### Защита от фронтраннинга через Flashbots
1. **Приватные транзакции (Private Relays)**: Чтобы скрыть транзакции обмена (swap) от публичного мемпула (где их могут перехватить боты фронтраннеры или сэндвичи), транзакция отправляется в виде приватного бандла напрямую валидаторам через RPC релей Flashbots `https://relay.flashbots.net`.
2. **Лимит цены газа (Gas Price Cap)**: Для избежания переплаты в моменты экстремального проскальзывания мемпула, бот должен отменять транзакции при цене базового газа выше `120 Gwei`.
Стандартный паттерн вызова `approve(spender, uint256_max)` позволяет смарт-контракту тратить любые объемы токенов с кошелька пользователя в будущем. В случае компрометации смарт-контракта (или наличия в нем бэкдора), злоумышленник может мгновенно опустошить баланс кошелька.
### Защита аппрувов
1. **Ограниченные разрешения (Exact Amount Approval)**: Бот должен отправлять транзакцию `approve` ровно на сумму совершаемой транзакции обмена.
2. **Автоматический отзыв (Revocation)**: Сразу после совершения обмена необходимо вызывать `approve(spender, 0)` для сброса лимита авторизации.
### Защита от фронтраннинга через Flashbots
1. **Приватные транзакции (Private Relays)**: Чтобы скрыть транзакции обмена (swap) от публичного мемпула (где их могут перехватить боты фронтраннеры или сэндвичи), транзакция отправляется в виде приватного бандла напрямую валидаторам через RPC релей Flashbots `https://relay.flashbots.net`.
2. **Лимит цены газа (Gas Price Cap)**: Для избежания переплаты в моменты экстремального проскальзывания мемпула, бот должен отменять транзакции при цене базового газа выше `120 Gwei`.