This commit is contained in:
ZOMBIIIIIII
2026-06-11 12:03:51 +03:00
parent 399322973e
commit f8403eb9f6
23 changed files with 3998 additions and 6 deletions

View File

@@ -18,6 +18,9 @@ import btcProxyRoutes from './routes/btc-proxy.routes';
import pricesRoutes from './routes/prices.routes';
import tokensRoutes from './routes/tokens.routes';
import bridgeRoutes from './routes/bridge.routes';
import stakingRoutes from './routes/staking.routes';
import lpRoutes from './routes/lp.routes';
import approvalsRoutes from './routes/approvals.routes';
const app = express();
@@ -101,9 +104,26 @@ const protect = [authMiddleware, csrfMiddleware];
app.use('/api/wallets/create', ...protect, sensitiveLimiter);
app.use('/api/wallets/mnemonic/reveal', ...protect, mnemonicRevealLimiter);
app.use('/api/wallets/:chain/send', ...protect, sensitiveLimiter);
// Sensitive money-flow — строжайший лимит ТОЛЬКО на execute-эндпоинты (точный путь через app.post).
// Read-only quote/positions/pools матчатся обычным mutateLimiter (через router mount ниже).
app.post('/api/wallets/:chain/stake', ...protect, sensitiveLimiter);
app.post('/api/wallets/:chain/unstake', ...protect, sensitiveLimiter);
app.post('/api/wallets/:chain/unstake/claim', ...protect, sensitiveLimiter);
app.post('/api/wallets/:chain/lp/add', ...protect, sensitiveLimiter);
app.post('/api/wallets/:chain/lp/remove', ...protect, sensitiveLimiter);
// Custodial revoke approval (approve(spender,0)) — money-safety op, строжайший лимит.
app.post('/api/wallets/:chain/approvals/revoke-all', ...protect, sensitiveLimiter);
app.post('/api/wallets/:chain/approvals/revoke', ...protect, sensitiveLimiter);
// Mutating (proxy + read endpoints) — повышенный лимит
app.use('/api/wallets', ...protect, mutateLimiter, walletRoutes);
// Staking (Lido ETH) — custodial. Тот же namespace; пути /:chain/stake* не пересекаются с walletRoutes.
app.use('/api/wallets', ...protect, mutateLimiter, stakingRoutes);
// Uniswap v3 LP — custodial. Пути /:chain/lp/* не пересекаются с wallet/staking routes.
app.use('/api/wallets', ...protect, mutateLimiter, lpRoutes);
// Approval scan/revoke — custodial. Пути /:chain/approvals* не пересекаются с wallet/staking/lp routes.
// Закрывает повисший unlimited-approval (drain-вектор) + read-only scan открытых дверей.
app.use('/api/wallets', ...protect, mutateLimiter, approvalsRoutes);
app.use('/api/relay', ...protect, mutateLimiter, relayProxyRoutes);
// Jumper.xyz — LiFi-backed bridge aggregator (50+ chains: ETH/BSC/SOL/TRX/BTC + others).
// Используется когда Relay не поддерживает направление (TRX/BTC bridges).