Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
164b46e
refactor: add unified storage abstraction and SQLite backend support
quake Jan 24, 2026
e719eb1
refactor: implement LightClientStorage trait and initial service layer
quake Jan 24, 2026
b366aaa
feat: implement get_transactions and get_cells_capacity in service layer
quake Jan 24, 2026
543a827
refactor: migrate RPC to use unified service layer
quake Jan 24, 2026
3a57983
refactor: migrate WASM to use unified service layer and implement Lig…
quake Jan 24, 2026
eb651dc
fix: update browser storage protocol to pass both key and value to fi…
quake Jan 24, 2026
11d1fa1
refactor: extend service layer to eliminate RPC/WASM duplication for …
quake Jan 25, 2026
e5b83c3
refactor: remove unnecessary allow attributes and improve type clarity
quake Jan 25, 2026
b22c094
refactor: eliminate remaining duplication by adding script and networ…
quake Jan 25, 2026
c892456
refactor: reorganize service layer into dedicated module directory
quake Jan 25, 2026
aa2b6d7
refactor: reduce service instantiation duplication by storing service…
quake Jan 25, 2026
9c20d22
docs: add storage layer refactoring design
quake Feb 4, 2026
08c008d
refactor(storage): introduce StorageBackend trait for low-level KV ops
quake Feb 4, 2026
02cb340
refactor(storage): move filter_block to default trait implementation
quake Feb 4, 2026
56e9650
docs: replace refactoring plans with storage architecture doc
quake Feb 4, 2026
7954fa5
fix(browser): use correct direction in get_matched_blocks iterator
quake Feb 4, 2026
1b0c516
refactor: inline StorageBackend trait methods instead of delegating
quake Feb 4, 2026
370c737
refactor(storage): move all LightClientStorage methods to default imp…
quake Feb 4, 2026
52b3c11
refactor(sqlite): simplify by using StorageBackend trait and default …
quake Feb 4, 2026
6b7ec85
refactor(storage): use associated type for BatchWriter and add SQLite CI
quake Feb 4, 2026
650499d
refactor(storage): remove redundant CellDataProvider and HeaderProvid…
quake Feb 4, 2026
200b901
refactor(wasm): remove unnecessary CursorDirection abstraction
quake Feb 4, 2026
345d654
refactor(wasm): reuse IteratorDirection from db-common on wasm32
quake Feb 4, 2026
d691a61
refactor(wasm): rename KV to KVPair and unify across crates
quake Feb 4, 2026
1e73aa1
refactor(storage): remove unused StorageIterator trait
quake Feb 4, 2026
aebfbd9
style: fix formatting in db-worker
quake Feb 4, 2026
58543c2
refactor(storage): remove unused From impls in iterator.rs
quake Feb 4, 2026
6b6b5ed
refactor(browser): remove dead code and use type aliases
quake Feb 4, 2026
eb0eb69
refactor(browser): remove unnecessary type_complexity allow
quake Feb 4, 2026
88fc3c2
ci: consolidate clippy checks in clippy job
quake Feb 4, 2026
c7bd063
fix(sqlite): resolve deadlock in collect_iterator
quake Feb 4, 2026
f286e06
feat: make rocksdb optional when using sqlite feature
quake Feb 4, 2026
af2c69a
refactor: move IteratorDirection to Direction conversion to native.rs
quake Feb 4, 2026
f5c83ae
Refactor collect_iterator to use IteratorStart enum across all layers
quake Feb 4, 2026
075d095
Fix test_forget_update_min_filtred_number failing with SQLite
quake Feb 4, 2026
bd4bfb5
fix: prevent panic when set_scripts called from async runtime
quake Feb 9, 2026
2d3b007
fix: use conditional compilation for block_in_place on wasm
quake Feb 9, 2026
2b70192
fix: correct KVPair field assignment in browser db worker
quake Feb 9, 2026
55cd740
fix: correct batch commit order in browser storage
quake Feb 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ jobs:
rustup target add wasm32-unknown-unknown
- name: Lint Check
run: make clippy
- name: Lint Check (SQLite)
run: make clippy-sqlite
test-wasm:
name: Tests / Build & Test (Wasm)
needs: [ rustfmt, clippy ]
Expand Down Expand Up @@ -91,6 +93,20 @@ jobs:
- name: UnitTest
if: matrix.os == 'macos-latest'
run: make test-portable
test-sqlite:
name: Tests / Build & Test (SQLite)
needs: [ rustfmt, clippy ]
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-2022 ]
steps:
- name: Checkout the Repository
uses: actions/checkout@v4
- name: Install cargo-nextest
uses: taiki-e/install-action@nextest
- name: UnitTest (SQLite)
run: make test-sqlite
code_coverage:
name: Code Coverage
needs: [ test ]
Expand Down
93 changes: 88 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ clippy:
cargo clippy --target wasm32-unknown-unknown -p light-client-wasm -p ckb-light-client-lib -p light-client-db-common -p light-client-db-worker --locked -- --deny warnings
# Run clippy for native targets
cargo clippy -p ckb-light-client --locked -- --deny warnings

clippy-sqlite:
# Run clippy for native targets with sqlite feature
cargo clippy --features sqlite -p ckb-light-client-lib -p ckb-light-client --locked -- --deny warnings

build:
cargo build

Expand All @@ -27,6 +32,9 @@ test:
test-portable:
cargo nextest run --features portable --hide-progress-bar --success-output immediate --failure-output immediate -p ckb-light-client-lib -p ckb-light-client

test-sqlite:
cargo nextest run --features sqlite --hide-progress-bar --success-output immediate --failure-output immediate -p ckb-light-client-lib -p ckb-light-client

test-wasm:
wasm-pack test --node ./wasm/light-client-db-common/

Expand Down
Loading