@@ -52,8 +52,22 @@ JWT_REFRESH_EXPIRES_IN=7d
5252# MUST be changed from the default in production.
5353DOWNLOAD_SECRET = change-me-in-production
5454
55- # ── Horizon / Stellar ─────────────────────────────────────────────────────────
55+ # ── Soroban ───────────── ─────────────────────────────────────────────────────────
5656
57+ # Soroban contract ID (56-char base32 starting with C). Required for submit mode.
58+ SOROBAN_CONTRACT_ID = CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
59+
60+ # Soroban network passphrase (e.g., Test SDF Network ; September 2015)
61+ SOROBAN_NETWORK_PASSPHRASE = Test SDF Network ; September 2015
62+
63+ # Soroban source account (public key starting with G)
64+ SOROBAN_SOURCE_ACCOUNT = GXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
65+
66+ # Soroban RPC URL (https endpoint)
67+ SOROBAN_RPC_URL = https://example.com/soroban-rpc
68+
69+ # Soroban secret key (private key starting with S) – keep this secret!
70+ SOROBAN_SECRET_KEY = SXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5771# Stellar Horizon API endpoint (required when the Horizon listener is active).
5872# Must be a valid http:// or https:// URL.
5973HORIZON_URL = https://horizon-testnet.stellar.org
@@ -70,6 +84,21 @@ RETRY_MAX_ATTEMPTS=3
7084# Initial retry back-off delay in milliseconds (default: 100).
7185RETRY_BACKOFF_MS = 100
7286
87+ # ── Soroban submit mode ──────────────────────────────────────────────────────
88+
89+ # Required together to enable on-chain submit mode for vault creation.
90+ SOROBAN_CONTRACT_ID = CDISCIPLRSOROBANCONTRACT1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
91+ SOROBAN_NETWORK_PASSPHRASE = Test SDF Network ; September 2015
92+ SOROBAN_SOURCE_ACCOUNT = GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
93+ SOROBAN_RPC_URL = https://soroban-testnet.stellar.org
94+ SOROBAN_SECRET_KEY = SBXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
95+
96+ # Polling and timeout controls for submit mode.
97+ SOROBAN_SUBMIT_POLL_INTERVAL_MS = 1000
98+ SOROBAN_SUBMIT_POLL_MAX_ATTEMPTS = 30
99+ SOROBAN_RPC_TIMEOUT_MS = 30000
100+ SOROBAN_SUBMIT_RETRY_MAX_BACKOFF_MS = 5000
101+
73102# JWT Configuration
74103# Access token secret — used to sign/verify short-lived access tokens.
75104# Must be at least 32 characters in production.
@@ -80,3 +109,26 @@ JWT_REFRESH_SECRET=your-refresh-secret-min-32-chars-long
80109# Token lifetimes (defaults: 15m access, 7d refresh)
81110JWT_ACCESS_EXPIRES_IN = 15m
82111JWT_REFRESH_EXPIRES_IN = 7d
112+ ORG_RATE_LIMIT_MAX = 200
113+ ORG_RATE_LIMIT_WINDOW_MS = 60000
114+
115+ # ── Webhooks ──────────────────────────────────────────────────────────────────
116+
117+ # Comma-separated hostnames allowed for outbound webhook delivery.
118+ # If empty, all public hosts are allowed (RFC-1918, loopback, link-local blocked).
119+ WEBHOOK_ALLOWED_HOSTS = hooks.example.com
120+
121+ # Secret for verifying inbound webhook signatures.
122+ WEBHOOK_INBOUND_SECRET = your-inbound-webhook-secret
123+
124+ # Allowed timestamp skew for inbound webhook verification (ms, default: 300000).
125+ WEBHOOK_INBOUND_SKEW_MS = 300000
126+
127+ # Circuit breaker: consecutive failures before tripping (default: 5).
128+ WEBHOOK_CIRCUIT_BREAKER_THRESHOLD = 5
129+
130+ # Circuit breaker: sliding window in ms for failure counting (default: 60000).
131+ WEBHOOK_CIRCUIT_BREAKER_WINDOW_MS = 60000
132+
133+ # Circuit breaker: time before an OPEN breaker transitions to HALF_OPEN (default: 30000).
134+ WEBHOOK_CIRCUIT_BREAKER_HALF_OPEN_TIMEOUT_MS = 30000
0 commit comments