Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

eth-tracker

Follows Gnosis, filters CLC-related txs (including reverts), publishes to NATS JetStream.

Pinned image: ghcr.io/cosmo-local-credit/eth-tracker:v1.14.0-stable. API 127.0.0.1:5001.

Bootstrap

Default: load bootstrap.ge_registry, resolve TokenIndex + PoolIndex, walk entries, then each pool's tokenRegistry(). Cache lives in BoltDB (tracker_data) and in memory.

Watchlist mode (bootstrap.watchlist non-empty): skip the registry, use that set, then apply blacklist.

Runtime updates from AddressAdded / AddressRemoved.

Staging:

[bootstrap]
ge_registry = ["0xaC95B1A09f2dbaf4542e3Ba8c4Cce0234895D389"]
watchlist = [""]
blacklist = [""]
contracts = ["0xB286994c648F98fD3a3BA6C43934828a5b88162b"]

contracts is extra addresses always watched (here: the factory).

Chain

TRACKER_CHAIN__CHAINID=100
TRACKER_CHAIN__START_BLOCK=48027888
TRACKER_CHAIN__POOL_SETTLEMENT_BLOCK=0
TRACKER_CHAIN__RPC_ENDPOINT=https://gnosis-rpc.publicnode.com
TRACKER_CHAIN__WS_ENDPOINT=wss://gnosis-rpc.publicnode.com

Losing tracker_data restarts catchup from START_BLOCK.

Staging pool_size = 4. See RPC.

JetStream

TRACKER_JETSTREAM__PERSIST_DURATION_HRS=48
TRACKER_JETSTREAM__DEDUP_WINDOW_HRS=48   # must equal persist
TRACKER_JETSTREAM__STREAM_REPLICAS=1     # single-node NATS

Dedup id: txHash:logIndex. Replicas 3 on one node never reaches quorum.

Config key is jetstream.endpoint (singular).

Subjects

Stream TRACKER.*. Payload envelope:

{
  "block": 0,
  "contractAddress": "0x…",
  "success": true,
  "timestamp": 0,
  "transactionHash": "0x…",
  "transactionType": "POOL_SWAP",
  "index": 0,
  "payload": {}
}

index is the log index. 0 on reverted input-data events. max uint64 on CONTRACT_CREATION.

See NATS for per-type payloads.