-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
70 lines (58 loc) · 3.25 KB
/
Copy path.env.example
File metadata and controls
70 lines (58 loc) · 3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# ============================================================
# Programmatic Orders API — Environment Variables
# Copy this file to .env.local and fill in your values.
# ============================================================
# RPC URLs (required)
# Use dedicated/paid endpoints in production. The live block handlers run a sustained
# per-block workload (multicalls over every active generator + orderbook polling) that
# saturates rate-limited RPCs. The public Gnosis endpoint below is fine for local dev but
# is NOT production-ready — its rate limit stalls the indexer (see docs/deployment.md).
MAINNET_RPC_URL=https://eth.api.pocket.network
GNOSIS_RPC_URL=https://rpc.gnosischain.com # dev only — replace with a dedicated RPC in production
# WS RPC URLs (optional; enables WS realtime subscriptions, more efficient than HTTP polling)
# MAINNET_WS_RPC_URL=wss://...
# GNOSIS_WS_RPC_URL=wss://...
# Future chains
# ARBITRUM_RPC_URL=
# ...
# Database (optional — defaults to Ponder's built-in SQLite for dev)
# Set this to use PostgreSQL from docker-compose.yml
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/programmatic-orders
# Schema for this app (required when using Postgres; avoids "previously used by a different Ponder app")
DATABASE_SCHEMA=programmatic_orders
# Performance / escape-hatch flags (all optional; safe to omit in production)
# DISABLE_SETTLEMENT_FACTORY_CHECK=true # escape-hatch: skips getCode + FACTORY() RPC calls in the
# # GPv2Settlement handler. Benchmark-only; do not use in prod.
# Per-block generator cap for OrderDiscoveryPoller + CancellationWatcher (optional; default: 200)
# Hard ceiling per block per chain. Excess generators defer to the next block (oldest-first).
# Override per chain with the numeric chain-id suffix:
# MAX_GENERATORS_PER_BLOCK_1=200 # mainnet
# MAX_GENERATORS_PER_BLOCK_100=400 # gnosis (shorter block time → higher budget)
# Per-block cap on how many open discrete orders OrderStatusTracker checks per chain.
# Default: 200. Excess orders defer to next block, prioritized by oldest promotedAt first.
# MAX_DISCRETE_ORDERS_PER_BLOCK_1=200
# MAX_DISCRETE_ORDERS_PER_BLOCK_100=400
# Per-block cap on how many pending flash-loan orders FlashLoanOrderEnricher enriches
# from the orderbook per chain. Default: 200. Excess defer to next block (oldest first).
# MAX_FLASH_LOAN_ORDERS_PER_BLOCK_1=200
# MAX_FLASH_LOAN_ORDERS_PER_BLOCK_100=400
# eth_getLogs block range cap (optional; default: 1000)
# Increase if your RPC provider supports a larger range to speed up backfill.
# Override per chain with the numeric chain-id suffix:
# ETH_GET_LOGS_BLOCK_RANGE_1=2000 # mainnet
# ETH_GET_LOGS_BLOCK_RANGE_100=5000 # gnosis
# Logging (optional)
# PINO_LOG_LEVEL=info
# ============================================================
# Production deployment (deployment/.env on remote machine)
# ============================================================
PROJECT_PREFIX=cow-programmatic
POSTGRES_USER=cow_programmatic
POSTGRES_PASSWORD=<change-me>
POSTGRES_DB=cow_programmatic
POSTGRES_PORT=5433
POSTGRES_MEMORY_LIMIT=1G
PONDER_EXPOSED_PORT=40000
PONDER_MEMORY_LIMIT=2G
# DATABASE_SCHEMA is injected automatically by manage.sh as:
# programmatic_orders_<git-sha> — do not set here