Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
c9493b9
feat: add get_service_signer_count() -> u32 for M-of-N monitoring (#96)
Anichris-koded Jun 22, 2026
fdd1752
feat: add get_pair_score_count(asset_pair) -> u64
Valreb001 Jun 25, 2026
6d77c61
feat: add get_rate_limit_window() -> u64
Valreb001 Jun 25, 2026
0ddafdb
feat: add get_total_wallets_scored() -> u64
Valreb001 Jun 25, 2026
20bff10
feat: add get_cooldown_period() -> u64
Valreb001 Jun 25, 2026
6c884c8
feat(score): register pr_rd capability in supports_interface for is_p…
studiomonkeyx Jun 25, 2026
c8fc59c
docs: add AMM risk gate integration guide and example (#312)
favourawaku Jun 25, 2026
532efce
docs: add score query function decision guide with comparison table a…
favourawaku Jun 25, 2026
5a17b04
docs: add operator WASM upgrade runbook (#314)
favourawaku Jun 25, 2026
9219381
docs: document score aggregation mathematics with fixed-point notes a…
favourawaku Jun 25, 2026
aca8b99
feat: bind attestation signatures to contract address and version, ad…
Mimah97 Jun 25, 2026
125832c
feat: add decay profile infrastructure and multi-dimensional risk sco…
Mimah97 Jun 25, 2026
1628bf1
test: add regression tests for every Error variant with build script …
Almikefred Jun 25, 2026
8c44750
test: add upgrade smoke test verifying score and config integrity acr…
Almikefred Jun 25, 2026
575e242
test: add comprehensive event emission tests for all score submission…
Almikefred Jun 25, 2026
6b5907d
docs: add commit-reveal flow documentation with mermaid sequence diag…
Almikefred Jun 25, 2026
3fad771
feat: add on-chain parameter change proposal system with time-lock (#…
Jun 26, 2026
0e8c165
perf: lazy TTL extension for batch score submission (#212)
Jun 26, 2026
d392851
feat: add risk-gated liquidity provision hook to mock AMM (#214)
Jun 26, 2026
b6357f8
test: add criterion benchmark suite for batch score submission (#307)
Jun 26, 2026
c71964e
chore: drop oversized batch TTL test snapshots (#212)
Jun 26, 2026
b10666f
chore: remove Soroban test snapshots from PR (#212 #214)
Jun 26, 2026
253ee91
test: add end-to-end integration test harness for score submission li…
Jambox11 Jun 26, 2026
a8d7603
FEAT: Create new get_score_exists and its unit tests
gadyrcdz Jun 26, 2026
e59cf96
feat: add per-signer nonce tracking to prevent multi-sig replay attac…
aji70 Jun 26, 2026
426f30f
feat: add per-signer nonce tracking to prevent multi-sig replay attac…
aji70 Jun 26, 2026
a864b3e
feat: add recursive wallet score delegation chain with cycle detectio…
aji70 Jun 26, 2026
6069870
security: add constant-time Ed25519 attestation verification (#198)
aji70 Jun 26, 2026
15b5b51
feat: add sealed-bid dispute bond with commit-reveal (#199)
aji70 Jun 26, 2026
9373f66
feat: add get_active_embargo_count() persistent counter for active em…
Emmanuelluxury Jun 26, 2026
94c706d
feat: expose get_min_score() -> u32 read-only function
Emmanuelluxury Jun 26, 2026
0dfc774
feat: expose get_max_score() -> u32 read-only function
Emmanuelluxury Jun 26, 2026
310f5ea
feat: M-of-N upgrade proposals, governance audit chain, IQR consensus…
ellaevans2323-pixel Jun 26, 2026
6f3a713
feat: expose get_score_threshold() -> u32 read-only function
Emmanuelluxury Jun 26, 2026
09f7e6f
feat: rate-limit override audit log and dual-key pubkey overlap
stonesjarvis3 Jun 26, 2026
fa4c480
test: fuzz, property, integration, and chaos tests for issues #303–#306
Jun 26, 2026
275a21d
Update LedgerLens score contract logic and tests
mspotless Jun 26, 2026
de9bec9
feat: epoch sealing (#301) and anti-flash-loan protection (#300)
driftsorbit Jun 26, 2026
3c9ccd9
feat(#274): implement signer reputation weighting in consensus
essiend03-glitch Jun 26, 2026
e663164
feat(#276): oracle adapter interface for external price feed integration
essiend03-glitch Jun 26, 2026
f4abf7c
feat(#288): wallet risk cluster assignment via score-similarity bucke…
godwinishaku506-hub Jun 26, 2026
1283f92
feat(#274): implement signer reputation weighting in consensus
essiend03-glitch Jun 26, 2026
bb870c4
feat(#287): adaptive consensus epsilon from rolling per-pair score va…
godwinishaku506-hub Jun 26, 2026
888fdf8
Merge pull request #1 from godwinishaku506-hub/feat/issue-288-wallet-…
godwinishaku506-hub Jun 26, 2026
5e172e8
Merge branch 'main' into feat/issue-287-adaptive-epsilon
godwinishaku506-hub Jun 26, 2026
84b5062
feat: implement score escrow with configurable hold window before aut…
Neche58 Jun 26, 2026
7e47ede
feat: implement HyperLogLog probabilistic unique wallet counter per a…
Neche58 Jun 26, 2026
7733759
feat(#270): rolling 24h score volatility index per asset pair
koubascott0-web Jun 26, 2026
8da6198
feat(#281): fee-per-query on query_risk_gate
uniqueshes4-sudo Jun 26, 2026
1e86bdd
Merge pull request #316 from Valreb001/feature/analytics-query-endpoints
Inkman007 Jun 26, 2026
53812d7
feat(#282): portfolio VaR estimator
uniqueshes4-sudo Jun 26, 2026
9f33f20
feat(#292): formal invariant checker on every state transition
uniqueshes4-sudo Jun 26, 2026
8336828
Merge pull request #317 from studiomonkeyx/feature/94-expose-is-pair-…
Inkman007 Jun 26, 2026
2ecf5b4
Merge pull request #319 from favourawaku/main
Inkman007 Jun 26, 2026
45076b3
Merge branch 'main' into main
Inkman007 Jun 26, 2026
3d7d86d
Merge pull request #320 from Mimah97/main
Inkman007 Jun 26, 2026
a8db117
feat(#275): add adaptive rate limit scaled by global score variance
abrak01 Jun 26, 2026
da92329
Merge branch 'main' into main
Inkman007 Jun 26, 2026
57d0293
Merge pull request #322 from Tukura11/main
Inkman007 Jun 26, 2026
0eb9526
Merge pull request #323 from Jambox11/main
Inkman007 Jun 26, 2026
12ff3ee
Merge branch 'main' into main
Inkman007 Jun 26, 2026
42c8f2f
Merge pull request #321 from Almikefred/main
Inkman007 Jun 26, 2026
a332ff3
Merge pull request #324 from gadyrcdz/FIX-#93
Inkman007 Jun 26, 2026
3da0f6b
Merge branch 'main' into main
Inkman007 Jun 26, 2026
4487cf5
Merge pull request #325 from aji70/main
Inkman007 Jun 26, 2026
e05a02d
Merge branch 'main' into feat/active-embargo-count
Inkman007 Jun 26, 2026
1705e6d
Merge pull request #326 from darcszn/feat/active-embargo-count
Inkman007 Jun 26, 2026
677d363
Merge pull request #327 from darcszn/feat/get-min-score
Inkman007 Jun 26, 2026
194923a
Merge pull request #328 from darcszn/feat/get-max-score
Inkman007 Jun 26, 2026
31e916d
Merge branch 'main' into feat/issues-298-299-297-302
Inkman007 Jun 26, 2026
95bead8
Merge pull request #329 from ellaevans2323-pixel/feat/issues-298-299-…
Inkman007 Jun 26, 2026
0cca02e
Merge pull request #330 from darcszn/feat/get-score-threshold
Inkman007 Jun 26, 2026
ed6ba8b
Merge branch 'main' into feat/rate-limit-override-log-and-dual-key-ov…
Inkman007 Jun 26, 2026
4d9ca4f
Merge pull request #331 from stonesjarvis3/feat/rate-limit-override-l…
Inkman007 Jun 26, 2026
37ebeab
Merge branch 'main' into feat/issues-303-304-305-306-fuzz-property-ch…
Inkman007 Jun 26, 2026
e0d34e4
Merge pull request #332 from Good-Coded/feat/issues-303-304-305-306-f…
Inkman007 Jun 26, 2026
ed69c8e
Merge branch 'main' into main
Inkman007 Jun 26, 2026
96c1c0c
Merge pull request #333 from mspotless/main
Inkman007 Jun 26, 2026
a3e893c
Merge branch 'main' into feat/epoch-sealing-flash-protection
Inkman007 Jun 26, 2026
9999d54
Merge pull request #334 from driftsorbit/feat/epoch-sealing-flash-pro…
Inkman007 Jun 26, 2026
cd06741
Merge branch 'main' into feat/274-signer-reputation-weighting
Inkman007 Jun 26, 2026
740f1d7
Merge pull request #336 from essiend03-glitch/feat/274-signer-reputat…
Inkman007 Jun 26, 2026
22d2191
Merge branch 'main' into feat/276-oracle-adapter-interface
Inkman007 Jun 26, 2026
52bc9c1
Merge pull request #337 from essiend03-glitch/feat/276-oracle-adapter…
Inkman007 Jun 26, 2026
47de2f7
Merge branch 'main' into feat/issue-288-wallet-risk-cluster
Inkman007 Jun 26, 2026
523bd10
Merge pull request #338 from godwinishaku506-hub/feat/issue-288-walle…
Inkman007 Jun 26, 2026
3ffdfc2
Merge pull request #339 from godwinishaku506-hub/feat/issue-287-adapt…
Inkman007 Jun 26, 2026
35eeadb
Merge branch 'main' into feat/270-volatility-index
Inkman007 Jun 26, 2026
e26d5ce
Merge pull request #342 from koubascott0-web/feat/270-volatility-index
Inkman007 Jun 26, 2026
61ef9a9
Merge branch 'main' into feat/fee-per-query
Inkman007 Jun 26, 2026
a70ffeb
Merge pull request #344 from uniqueshes4-sudo/feat/fee-per-query
Inkman007 Jun 26, 2026
0b818c2
Merge pull request #345 from uniqueshes4-sudo/feat/invariant-checker
Inkman007 Jun 26, 2026
3a913a9
Merge branch 'main' into feat/hll-unique-wallet-counter
Neche58 Jun 26, 2026
ca0390d
Merge branch 'main' into feat/score-escrow-hold-window
Neche58 Jun 26, 2026
6f0c9fb
Merge branch 'main' into feat/275-adaptive-rate-limit
Inkman007 Jun 26, 2026
fb5c8ac
Merge pull request #347 from abrak01/feat/275-adaptive-rate-limit
Inkman007 Jun 26, 2026
7b12a90
Merge pull request #167 from Anichris-koded/feat/get-service-signer-c…
Inkman007 Jun 29, 2026
2a56f7c
Merge pull request #340 from Neche58/feat/hll-unique-wallet-counter
Inkman007 Jun 29, 2026
0664726
Merge branch 'main' into feat/score-escrow-hold-window
Inkman007 Jun 29, 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
17 changes: 17 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,23 @@ jobs:
- uses: Swatinem/rust-cache@v2
- run: cargo test --workspace

bench:
name: Batch submit benchmarks
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Run batch submit benchmarks
run: cargo bench -p ledgerlens-score --bench batch_submit -- --noplot
- name: Upload benchmark results
uses: actions/upload-artifact@v4
with:
name: batch-submit-bench-results
path: target/criterion/
retention-days: 30

build:
name: WASM build
runs-on: ubuntu-latest
Expand Down
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),

---

## [Unreleased]

### Added
- **Parameter Change Governance**: Added `propose_parameter_change`, `execute_parameter_change`, and `veto_parameter_change` for time-locked admin parameter changes with service-signer veto during the first half of the delay window. Supports cooldown, history depth, decay rate, velocity cap, and upgrade delay parameters. See [`docs/governance.md`](docs/governance.md).
- **Mock AMM liquidity gate**: `contracts/mock-amm` adds `provide_liquidity_gated`, `set_risk_oracle`, and confidence-aware gate configuration. See [`examples/amm_gate_example.rs`](examples/amm_gate_example.rs).
- **Batch submit benchmarks**: Criterion suite in `contracts/ledgerlens-score/benches/batch_submit.rs` measuring throughput and Soroban budget cost at batch sizes 1, 10, 50, and 100. Results uploaded as CI artifacts on merge to `main`.

### Changed
- **Lazy score TTL extension**: `set_score` now skips `extend_ttl` when the entry's estimated remaining TTL is still at or above `SCORE_TTL_THRESHOLD`, reducing ledger instruction cost for batch resubmissions to pre-warmed entries.

---

## [3.0.0] - 2026-06-22

This version corresponds to on-chain `CONTRACT_VERSION = 3`. It merges all the advanced features introduced in recent pull requests (hysteresis, score embargo, score floor, batch attestation, and consensus scoring).
Expand Down
Loading