The oracle now runs as a long-lived native tokio binary:
cargo run --bin oracleConfiguration is loaded once at boot via dotenvy::dotenv() and process
environment variables. Missing required variables abort startup with the exact
variable name.
ORACLE_CONTRACT_IDorORACLEROLE_STOREDATA_STOREORDER_HANDLERDEPOSIT_HANDLERWITHDRAWAL_HANDLERREADERKEEPER_PRIVATE_KEYKEEPER_SECRET_KEYKEEPER_ACCOUNT_ID
Optional defaults:
-
ADMIN_API_TOKEN— when unset, admin-only endpoints (e.g./oracle/failed-submissions) respond503; when set, they requireAuthorization: Bearer <token> -
BIND_ADDR=0.0.0.0:8080 -
STELLAR_NETWORK=testnet -
STELLAR_RPC_URL=https://soroban-testnet.stellar.orgon testnet -
HORIZON_URL=https://horizon-testnet.stellar.orgon testnet -
PRICE_LOOP_MS=1000 -
KEEPER_LOOP_MS=1500 -
KEEPER_INDEX=0 -
MIN_KEEPER_BALANCE_XLM=10 -
PRICE_FEED_CONFIG, otherwiseconfig/tokens.jsonis embedded
For mainnet, STELLAR_RPC_URL and ORACLE_CONTRACT_ID must be explicit.
RUST_LOG=info cargo run --bin oracle
curl http://127.0.0.1:8080/healthExpected health response:
{"status":"ok"}