Contracts
BOT Testnet · chain 968 · RPC https://rpc.bohr.life · explorer scan.bohr.life
CommodityOracle
CommodityOracle
0x90Dfd581393104EAe03Fd349b4867A7E8F51313bverified| Function | Purpose |
|---|---|
updateCommodityPrice / Bulk | Signed updates |
getLatestPrice(assetId) | Latest (id, price, timestamp) |
setOracleSigner | Owner rotates signer |
DECIMALS = 18 · MAX_DELAY = 15 minutes · event PriceUpdated
CommodityConsumer
CommodityConsumer
0x5E6658ac6cBC9b0109C28BED00bC4Af0F0A3f1CDverified| Function | Purpose |
|---|---|
getPrice / tryGetPrice | Guarded / soft reads |
getPrices / latestRoundData | Bulk / Aggregator-style |
setOracle / setMaxStaleness | Owner admin |
maxStaleness: 900s on testnet, 3600s on mainnet.
PriceFeed
Optional AggregatorV3 wrapper per ticker:
export ORACLE_ADDRESS=0x90Dfd581393104EAe03Fd349b4867A7E8F51313b
export FEED_TICKER=NG
npx hardhat run scripts/deployPriceFeed.ts --network botTestnet
Signer
0xdAF0182De86F904918Db8d07c7340A1EfcDF8244
Sources: contracts/CommodityOracle.sol, CommodityConsumer.sol, PriceFeed.sol.
Use the Testnet / Mainnet switch in the header to swap addresses and Hardhat network names.