Deletes orphaned C++ duplicates from the dex Go repo:
sdk/cpp/ (→ luxcpp/dex/sdk/cpp/)
sdk/lx-trading-c/ (→ luxcpp/dex/sdk/trading-c/)
sdk/lx-trading-cpp/(→ luxcpp/dex/sdk/trading-cpp/)
client/cpp/ (→ luxcpp/dex/client/cpp/)
Confirmed orphaned: the live CGO consumers (pkg/lx/amm_gpu.go,
pkg/lx/signed_order_gpu.go, pkg/lx/signed_order_metal_anchor_darwin.go)
already point their CFLAGS/LDFLAGS at ~/work/luxcpp/dex/build and
~/work/luxcpp/crypto/build. None reference the deleted trees.
luxcpp/dex is 5 months newer (2026-05-05 vs 2025-12-11), so deletion
preserves the canonical version. pkg/orderbook/cpp_orderbook.go's
inline placeholder C++ left untouched — it's a stub, no external link.
Default build pulls zero gRPC code; rebuild with `-tags=grpc` to opt
into gRPC.
Decomplected via a `grpcBackend` interface in `sdk/go/client` and a
`grpcSubClient` interface in `client/go`. The default build wires a
no-op backend (`*_nogrpc.go`); the `grpc` build wires the real
protobuf-backed client (`*_grpc.go`). Public methods stay the same in
both builds — the gRPC fast path is preferred when wired, else
JSON-RPC / WebSocket.
Files gated:
- pkg/grpc/pb/lxdex_grpc.pb.go (//go:build grpc)
- pkg/proto/engine/proto/lx_engine_grpc.pb.go (//go:build grpc)
Files refactored:
- sdk/go/client.go: //go:build grpc with stub in client_nogrpc.go
- sdk/go/client/client.go: gRPC removed from method bodies; backed by
the grpcBackend interface (grpc_backend{,_grpc,_nogrpc}.go)
- client/go/main.go: GrpcClient + ConnectGrpc moved to grpc.go
(//go:build grpc); nogrpc.go stubs ConnectGrpc with a clear error
Verification:
- go build ./... (default) clean across sdk/go, client/go, top-level
- go build -tags=grpc ./... clean across all three modules
- go test ./... and go test -tags=grpc ./... green
- go list -deps shows 0 google.golang.org/grpc packages in default
builds of sdk/go/client and client/go; 62 packages with -tags=grpc
READMEs in sdk/go and client/go document the build-tag opt-in.
Apply consistent naming conventions throughout:
- Standardize product name to "LX" in documentation
- Update README files and API documentation
- Apply linter fixes to all source files
- Update Hummingbot connector documentation