10 Commits
Author SHA1 Message Date
zeekay 2c62ec960f SQLite without shared cache, so the explorer's reads cannot fail the indexer's writes
In shared-cache mode SQLite locks per table and answers a blocked write with
SQLITE_LOCKED, which busy_timeout does not wait out. The block write then
failed outright and every other write in indexBlock was dropped unseen.
2026-09-23 05:39:28 -07:00
zeekayandHanzo Dev 64519916bf the corporate name is Lux Industries Inc
Lux Partners Limited is not the entity behind this work. Every place the
old name stood — copyright lines, site footers, brand config, legal and
compliance text — now names the company that actually holds it.

lux.fund is the exception and is not renamed to match: that site belongs
to Lux Assets Management LLC, a different company, and it says so.

Two kinds of line were left for a person rather than rewritten. A dated
news item recording that Lux Partners Limited was established in the Isle
of Man is a historical fact, and renaming it would falsify the record. And
a sentence asserting that the company is domiciled in the Isle of Man is a
claim about a jurisdiction, not a name — an Inc or an LLC is not an Isle
of Man company, so swapping the name there would assert something untrue.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-28 13:01:04 -07:00
zeekayandHanzo Dev 984494b3a8 Take the sqlite C under the name nothing else claims
The wrapper this reached for registers the driver as "sqlite", and so does
modernc.org/sqlite, which arrives here with hanzoai/replicate. Two packages
under one name is a panic in init, before main runs.

csqlite is the same house C under "sqlite3" — the name every sql.Open here
already names, and one nothing else in this graph takes.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-13 15:12:22 -07:00
zeekayandHanzo Dev 6920479c85 One sqlite in the binary
Two packages compiled the same amalgamation: upstream mattn/go-sqlite3 here,
and hanzoai/csqlite by way of hanzoai/sqlite, which luxfi/graph moved to. A
binary linking both — the explorer links all three of us — defines every
sqlite3_* symbol and every cgo trampoline twice and fails at link. It fails on
darwin; linux is laxer about duplicates, which is the only reason a build ever
got through.

hanzoai/sqlite is the house driver and csqlite registers both "sqlite" and
"sqlite3", so nothing but the import line changes: every sql.Open here still
names the driver it always named.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-13 15:08:06 -07:00
zeekay 7d2c025b5b feat: unified explorer — chi refactor, graph merge, slug validation, /v1/explorer 2026-03-01 18:00:00 -08:00
zeekay 1134d23e65 Fix PostgreSQL compatibility for P-Chain and X-Chain indexers
- Replace AUTOINCREMENT with BIGSERIAL for PostgreSQL
- Replace INSERT OR IGNORE with ON CONFLICT DO NOTHING
- Add DATABASE_URL environment variable support in unified storage
- Add schema helper functions to postgres.go query backend
2026-01-23 17:53:20 -08:00
zeekay bb48fdb68c style: fix go formatting (gofmt) 2025-12-25 20:52:20 -08:00
zeekay 6387fe7c53 feat: complete indexer with E2E tests, CI workflow, and documentation
Major additions:

E2E Test Suite:
- 65 tests passing against live luxd node
- Tests for C-Chain, P-Chain, X-Chain indexing
- Client helpers for RPC communication
- Funding and genesis verification tests

EVM Indexer (Full Blockscout Parity):
- REST API v2 with ~50 endpoints
- GraphQL schema with playground
- WebSocket subscriptions (4 types)
- Contract verification and proxy detection
- Account system with API keys
- DeFi protocol indexing (AMM, perps, staking, bridge)
- Search functionality (full-text + fuzzy)

Storage Layer:
- Unified two-layer architecture (KV + Query)
- SQLite default, PostgreSQL optional
- Build tags for backend selection
- Migrations for schema management

Chain Adapters:
- All chain adapters with comprehensive tests
- P-Chain validator tracking
- X-Chain DAG support
- K-Chain key management
- Bridge chain support

CI/CD:
- GitHub Actions workflow for builds
- Cross-platform binaries (linux/darwin/windows, amd64/arm64)
- Docker image publishing
- Automated releases on tags

Documentation:
- Fumadocs-based docs site
- Configuration guide
- Storage backend guide
- DeFi indexing guide
- API reference
2025-12-25 20:48:48 -08:00
zeekay 44c7c34d5b style: run gofmt on all files 2025-12-12 01:07:14 +00:00
zeekay c8998eff74 feat: add pluggable storage layer with multiple backends
Add a pluggable storage interface to support multiple backends:
- PostgreSQL: Full SQL support for Blockscout compatibility
- BadgerDB: Using luxfi/database for embedded key-value storage
- Dgraph: Graph database for cross-chain queries (future G-Chain)

The storage layer is designed to be lightweight and embeddable,
allowing the indexer to run either standalone or integrated
natively into chain code.

Key changes:
- storage/storage.go: Core Store interface and data types
- storage/postgres.go: PostgreSQL implementation
- storage/badger.go: BadgerDB via luxfi/database
- storage/dgraph.go: Dgraph graph database implementation
2025-12-12 00:47:37 +00:00