-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
175 lines (151 loc) · 6.68 KB
/
Copy path.env.example
File metadata and controls
175 lines (151 loc) · 6.68 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
# Server Config
SECRET=h9wt*pasj6796jw(w8=xaje8tpi6+k2)
DEBUG=True
ALLOWED_HOSTS=0.0.0.0
SERVER_HOST=0.0.0.0
SERVER_PORT=8000
SERVER_URL=http://localhost:8000
JWT_ACCESS_LIFESPAN=15
JWT_REFRESH_LIFESPAN=10080
HMAC_TIMESTAMP_AGE=5
ENVIRONMENT=local # local, staging, production
SENTRY_DSN=
# Database Config
DB_NAME=postgres
DB_USER=postgres
DB_PASSWORD=your-supabase-password
DB_HOST=db.xxxxxxxxxxxxx.supabase.co
DB_PORT=5432
SSL_MODE=require
DB_LOG_MODE=True
# Database Connection Pool Settings
DB_MAX_OPEN_CONNS=25 # Maximum number of open connections
DB_MAX_IDLE_CONNS=10 # Maximum number of idle connections
DB_CONN_MAX_LIFETIME=30m # Maximum lifetime of a connection
DB_CONN_MAX_IDLE_TIME=10m # Maximum idle time before closing
DB_CONN_TIMEOUT=30s # Connection timeout
# Redis Config
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0
# Order Config
ORDER_FULFILLMENT_VALIDITY=1 # value in minutes
ORDER_REFUND_TIMEOUT=5 # value in minutes
RECEIVE_ADDRESS_VALIDITY=30 # value in minutes
ORDER_REQUEST_VALIDITY=10 # value in seconds
TRON_PRO_API_KEY=
ENTRY_POINT_CONTRACT_ADDRESS=0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789
BUCKET_QUEUE_REBUILD_INTERVAL=10 # value in minutes
REFUND_CANCELLATION_COUNT=3
PERCENT_DEVIATION_FROM_EXTERNAL_RATE=1
PERCENT_DEVIATION_FROM_MARKET_RATE=10
INDEXING_DURATION=10 # value in seconds
# Engine Config (Thirdweb)
ENGINE_BASE_URL=
ENGINE_ACCESS_TOKEN=
THIRDWEB_SECRET_KEY=
# Alchemy Config (Alternative to Thirdweb Engine)
ALCHEMY_API_KEY=your_alchemy_api_key_here
ALCHEMY_BASE_URL=https://api.g.alchemy.com/v2
ALCHEMY_GAS_POLICY_ID=your_gas_policy_id_here # Optional - for gas sponsorship
ALCHEMY_AUTH_TOKEN=your_alchemy_auth_token_here # For webhook management API
# Service Selection
USE_ALCHEMY_SERVICE=false # Set to true to use Alchemy instead of Thirdweb
USE_ALCHEMY_FOR_RECEIVE_ADDRESSES=true # Use Alchemy for receive addresses
# Polling Fallback Configuration (works as fallback when webhooks fail)
ENABLE_POLLING_FALLBACK=true # Enable polling service
POLLING_INTERVAL=1m # How often to check (1m = 1 minute, 30s = 30 seconds, 5m = 5 minutes)
POLLING_MIN_AGE=5m # Only poll orders older than this (webhook should have fired by then)
POLLING_CACHE_TTL=30s # Cache balance results for this duration
# Cryto Config
HD_WALLET_MNEMONIC=media nerve fog identify typical physical aspect doll bar fossil frost because
AGGREGATOR_PUBLIC_KEY="
-----BEGIN RSA PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxJRz+N75XK2ZU8q7eWci
d/ns5Ita2ys1Grhu1t4I6HY64LzKpPY70mxq+rl8PdVuRNTPuho6Oo6dH5l37TI9
TAlDmt8pnI7G3Chxj0OcAcZiZEdSnbGECbIlbaEJ/iayuftH62FTTLVEDJH92GFD
ucrqiY36vis0TKL9YtwcEd9+vXvNT9kXjj9jayUz/bjWPdw8s8dqMJ5HsacRsLOL
IiST3issvAN+vgB6WCnDemnuIbZp1RL84Ns/T1xNTkIrq3Vae73anSdF/5Qwr56p
0lrYaABmay67KlVPPR/7Zw5HU5r5iMoC6ULaAqPQ2kDbfCAULJGjXBybFfTwyJog
hQIDAQAB
-----END RSA PUBLIC KEY-----
"
AGGREGATOR_PRIVATE_KEY="
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAxJRz+N75XK2ZU8q7eWcid/ns5Ita2ys1Grhu1t4I6HY64LzK
pPY70mxq+rl8PdVuRNTPuho6Oo6dH5l37TI9TAlDmt8pnI7G3Chxj0OcAcZiZEdS
nbGECbIlbaEJ/iayuftH62FTTLVEDJH92GFDucrqiY36vis0TKL9YtwcEd9+vXvN
T9kXjj9jayUz/bjWPdw8s8dqMJ5HsacRsLOLIiST3issvAN+vgB6WCnDemnuIbZp
1RL84Ns/T1xNTkIrq3Vae73anSdF/5Qwr56p0lrYaABmay67KlVPPR/7Zw5HU5r5
iMoC6ULaAqPQ2kDbfCAULJGjXBybFfTwyJoghQIDAQABAoIBAF+9JVY50hyO97PV
csTHtAPWlscgD5naSzy+Qk0nShNdMYOursr0mWH8J4YAvD+pKNEhDCJJD77hIij3
p27AHxZfFKvir/NtnfAvSk9J0DsVEWphSh0/DV1jg9MGsUU0N6tYdEhw2A7t4Tx2
BblSdZeQ+fUQTuQ7SndgkiOJq6oP4pSCIp0B5iMtYquaeBfVnf11ddtw1DBB3Qch
ARR8Dvsfrg0PcNFx81HNbIGVp0/braNkt6JuaZDQUL0ROWMWuWMIO6POE8Fi25lj
JsOm+sOdU3gskmVwS7z3lixxwTuIZdTc5BuiV8ui0/z6wx4uEEvBMj6eQP4OjfpH
NqdSkSkCgYEA6JQSa/q0TaHfH6UVYh+Ncz1QMd3sZnsh5vfp+zvFsuZovP0gi6Vu
SxBIgCuRbgxxLXQKvMoHgycg5RzuUHHLLeEkwumS/t0IDOgjW4YmpM/F7d2g8P1f
hH6RXwbXO4DvrB4g3FD4BiVB/A8xt3YcXkqdNLapnyAVOhdkSWqSHFsCgYEA2GBU
pWbhjSKM+PdQnLy9/OA2a57DzlTak7I7K0xaHEER9GOGIXVEbcPyF3kkVVI6ipAr
DNTXcCvUS10p12symrTSocXWjMS0bfHuPaW1kOI9+xEeKrWaltv9iGTN0CuYt13x
Y1RakN+Ssx9spPkrxJPpU9MBQJg8ml3jRidmzJ8CgYEAm+N7wYJlzc8ctaI6Be3u
KnrDQNll9X68x4oN+8Yhifrj4yCq6s70cT21yqrpLGEMjxHDjKzBgkf8xXSxy5uq
OtM4h6h1TXyrQ7No15TAXCGjof62PDEoD6+iEpaMNycB/lSnY+SlicD5TFCG21hA
RXcvjcCNSsn/UFOTdZ4H1xcCgYEAyFIWy7K96q4sGWrOJO3QbscdWvF3khSY79g4
U1OysSnE958UVPF+Uqjv/q9W5e7k59elI5IBioXpW4R68kb6aKQzxTWl9lk+OfOb
f1NlDyeF/mTQqvXKkxREWvwIV0ulbU355t33otx5sn/LU8ijrrDJeaOGK0lGAhwe
B5r+3z0CgYEAlfYMaE5H4rtDm+89FA99+f+EygUY+1VsUBg5sQ6SZhGTeDzUKzEn
CLs1KzreknfDj0C4dICrbaphp+LDnc5r2ccEpbma/OukyZKkGgFlRrNj+NpaQTnx
pxQxY3LJPKA/7G2o5KZVEz3nrOhQT926v3qeRWkEl7UkiqP0aUc5Cnk=
-----END RSA PRIVATE KEY-----
"
AGGREGATOR_SMART_ACCOUNT=0x03Ff9504c7067980c1637BF9400E7b7e3655782c
# Notification Config
EMAIL_DOMAIN=api.sendgrid.com
EMAIL_API_KEY="2fa62003d4c512cd0b0f3b429158f87c-7ca144d2-bc81222c"
EMAIL_FROM_ADDRESS="yyyyyy@xxxx.com"
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
SLACK_BOT_TOKEN=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
SLACK_SIGNING_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# Identity Platform Config
SMILE_IDENTITY_BASE_URL=https://testapi.smileidentity.com
SMILE_IDENTITY_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
SMILE_IDENTITY_PARTNER_ID=xxxx
PRIVY_APP_ID=
PRIVY_VERIFICATION_KEY=
# Rate Limit Config (req/sec)
RATE_LIMIT_UNAUTHENTICATED=5
RATE_LIMIT_AUTHENTICATED=50
# Turnstile Configuration
TURNSTILE_SITE_KEY=
TURNSTILE_SECRET_KEY=
TURNSTILE_ENABLED=true
#Explanation
# ============================================
# BLOCKCHAIN SERVICE PROVIDERS
# ============================================
# THIRDWEB ENGINE - Original service for wallet management
ENGINE_BASE_URL=https://your-engine.com
ENGINE_ACCESS_TOKEN=your-vault-token
THIRDWEB_SECRET_KEY=your-thirdweb-key
# Get these from: https://dashboard.alchemy.com/
ALCHEMY_API_KEY=your_alchemy_api_key_here
ALCHEMY_BASE_URL=https://api.g.alchemy.com/v2
ALCHEMY_GAS_POLICY_ID=your_gas_policy_id_here # Optional - for gas sponsorship
# Service Selection
USE_ALCHEMY_SERVICE=false # Set to true to switch from Thirdweb to Alchemy for all operations
USE_ALCHEMY_FOR_RECEIVE_ADDRESSES=false # Set to true to use Alchemy only for receive address generation (keep Thirdweb for other operations)
# ============================================
# AGGREGATOR ACCOUNT - Your operational wallet
# ============================================
# This is YOUR smart account that executes orders
{{ ... }}
# Keys that control the aggregator account
# These are stored in Thirdweb Engine's vault
AGGREGATOR_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----..."
AGGREGATOR_PUBLIC_KEY="-----BEGIN RSA PUBLIC KEY-----..."
# ============================================
# HD WALLET - Only for Tron & Tests
# ============================================
HD_WALLET_MNEMONIC="media nerve fog identify..."