Skip to content

chore(deps-dev): bump stylelint-scss from 5.3.2 to 6.12.1#1205

Open
dependabot[bot] wants to merge 28 commits intostagingfrom
dependabot/npm_and_yarn/stylelint-scss-6.12.1
Open

chore(deps-dev): bump stylelint-scss from 5.3.2 to 6.12.1#1205
dependabot[bot] wants to merge 28 commits intostagingfrom
dependabot/npm_and_yarn/stylelint-scss-6.12.1

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Jul 1, 2025

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

achowdhry-ripple and others added 2 commits June 11, 2025 17:31
## High Level Overview of Change

<!--
Please include a summary/list of the changes.
If too broad, please consider splitting into multiple PRs.
-->

Time sensitive - Whitelisting Ondo's coin

### Context of Change

<!--
Please include the context of a change.
If a bug fix, when was the bug introduced? What was the behavior?
If a new feature, why was this architecture chosen? What were the
alternatives?
If a refactor, how is this better than the previous implementation?

If there is a design document for this feature, please link it here.
-->

### Type of Change

<!--
Please check relevant options, delete irrelevant ones.
-->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] Refactor (non-breaking change that only restructures code)
- [ ] Tests (You added tests for code that already exists, or your new
feature included in this PR)
- [ ] Documentation Updates
- [ ] Translation Updates
- [ ] Release

### Codebase Modernization

<!--
In an effort to modernize the codebase, you should convert the files
that you work with to React Hooks and TypeScript,
and update tests to use the React Testing Library instead of Enzyme. If
this is not possible (e.g. it's too many
changes, touching too many files, etc.) please explain why here.
-->

- [ ] Updated files to React Hooks
- [ ] Updated files to TypeScript
- [ ] Updated tests to React Testing Library

## Before / After

<!--
If just refactoring / back-end changes, this can be just an in-English
description of the change at a technical level.
If a UI change, screenshots should be included.
-->

## Test Plan

<!--
Please describe the tests that you ran to verify your changes and
provide instructions so that others can reproduce.
-->

<!--
## Future Tasks
For future tasks related to PR.
-->

---------

Co-authored-by: pdp2121 <71317875+pdp2121@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Omar Khan <khancodegt@gmail.com>
## High Level Overview of Change

<!--
Please include a summary/list of the changes.
If too broad, please consider splitting into multiple PRs.
-->

### Context of Change

<!--
Please include the context of a change.
If a bug fix, when was the bug introduced? What was the behavior?
If a new feature, why was this architecture chosen? What were the
alternatives?
If a refactor, how is this better than the previous implementation?

If there is a design document for this feature, please link it here.
-->

### Type of Change

<!--
Please check relevant options, delete irrelevant ones.
-->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] Refactor (non-breaking change that only restructures code)
- [ ] Tests (You added tests for code that already exists, or your new
feature included in this PR)
- [ ] Documentation Updates
- [ ] Translation Updates
- [ ] Release

### Codebase Modernization

<!--
In an effort to modernize the codebase, you should convert the files
that you work with to React Hooks and TypeScript,
and update tests to use the React Testing Library instead of Enzyme. If
this is not possible (e.g. it's too many
changes, touching too many files, etc.) please explain why here.
-->

- [ ] Updated files to React Hooks
- [ ] Updated files to TypeScript
- [ ] Updated tests to React Testing Library

## Before / After

<!--
If just refactoring / back-end changes, this can be just an in-English
description of the change at a technical level.
If a UI change, screenshots should be included.
-->

## Test Plan

<!--
Please describe the tests that you ran to verify your changes and
provide instructions so that others can reproduce.
-->

<!--
## Future Tasks
For future tasks related to PR.
-->
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jul 1, 2025
@dependabot dependabot Bot force-pushed the dependabot/npm_and_yarn/stylelint-scss-6.12.1 branch from 382f00e to c5a92e2 Compare July 2, 2025 14:06
---
updated-dependencies:
- dependency-name: stylelint-scss
  dependency-version: 6.12.1
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot force-pushed the dependabot/npm_and_yarn/stylelint-scss-6.12.1 branch from c5a92e2 to 4a1f921 Compare July 2, 2025 15:13
pdp2121 and others added 14 commits July 10, 2025 12:43
## High Level Overview of Change

This is a release PR for the Explorer with the `axios` dependency
upgrade. It patches a recently discovered vulnerability in the `axios`
package.

The staging branch has been deployed into the Explorer staging
environment.
https://github.com/ripple/explorer-deploy/actions/runs/22453222357. It
can be accessed at https://livenet.stg.ripplex.io/

<!--
Please include a summary/list of the changes.
If too broad, please consider splitting into multiple PRs.
-->


<!--
Please include the context of a change.
If a bug fix, when was the bug introduced? What was the behavior?
If a new feature, why was this architecture chosen? What were the
alternatives?
If a refactor, how is this better than the previous implementation?

If there is a design document for this feature, please link it here.
-->

### Type of Change

<!--
Please check relevant options, delete irrelevant ones.
-->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] Refactor (non-breaking change that only restructures code)
- [ ] Tests (You added tests for code that already exists, or your new
feature included in this PR)
- [ ] Documentation Updates
- [ ] Translation Updates
- [x] Release



## Test Plan
Existing tests pass
<!--
Please describe the tests that you ran to verify your changes and
provide instructions so that others can reproduce.
-->

<!--
## Future Tasks
For future tasks related to PR.
-->

---------

Co-authored-by: Kuan Lin <klin@ripple.com>
Co-authored-by: Mayukha Vadari <mvadari@ripple.com>
@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github Feb 27, 2026

Dependabot can't resolve your JavaScript dependency files. Because of this, Dependabot cannot update this pull request.

Patel-Raj11 and others added 5 commits March 2, 2026 11:56
## High Level Overview of Change

Make `main` as default branch to avoid `staging` to `main` PR during
release. This also helps removing all the users who have push to main
access and all the commits go through pull request reviews before they
are merged and released.

<!--
Please include a summary/list of the changes.
If too broad, please consider splitting into multiple PRs.
-->

### Context of Change

<!--
Please include the context of a change.
If a bug fix, when was the bug introduced? What was the behavior?
If a new feature, why was this architecture chosen? What were the
alternatives?
If a refactor, how is this better than the previous implementation?

If there is a design document for this feature, please link it here.
-->

### Type of Change

<!--
Please check relevant options, delete irrelevant ones.
-->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] Refactor (non-breaking change that only restructures code)
- [ ] Tests (You added tests for code that already exists, or your new
feature included in this PR)
- [ ] Documentation Updates
- [ ] Translation Updates
- [ ] Release

### Codebase Modernization

<!--
In an effort to modernize the codebase, you should convert the files
that you work with to React Hooks and TypeScript If this is not possible
(e.g. it's too many changes, touching too many files, etc.) please
explain why here.
-->

- [ ] Updated files to React Hooks
- [ ] Updated files to TypeScript

## Before / After

<!--
If just refactoring / back-end changes, this can be just an in-English
description of the change at a technical level.
If a UI change, screenshots should be included.
-->

## Test Plan

1. Existing tests should pass.
2. CI should run and pass.
3. Force push on main should not be allowed. - Works - remote: - Changes
must be made through a pull request. error: failed to push some refs to
'github.com:ripple/explorer.git'
4. Requires 2 approvals before merge into main.

<!--
Please describe the tests that you ran to verify your changes and
provide instructions so that others can reproduce.
-->

<!--
## Future Tasks
For future tasks related to PR.
-->
## High Level Overview of Change

<!--
Please include a summary/list of the changes.
If too broad, please consider splitting into multiple PRs.
-->

Resolves #1283

### Type of Change

<!--
Please check relevant options, delete irrelevant ones.
-->

- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] Refactor (non-breaking change that only restructures code)
- [ ] Tests (You added tests for code that already exists, or your new
feature included in this PR)
- [ ] Documentation Updates
- [ ] Translation Updates
- [ ] Release

## Before / After

<!--
If just refactoring / back-end changes, this can be just an in-English
description of the change at a technical level.
If a UI change, screenshots should be included.
-->

### Before

<img width="1556" height="570" alt="Screenshot 2026-03-05 at 1 12 58 PM"
src="https://github.com/user-attachments/assets/b4fb5b65-523d-4236-b9cc-386600785990"
/>

### After
<img width="1663" height="502" alt="Screenshot 2026-03-05 at 1 03 42 PM"
src="https://github.com/user-attachments/assets/73e095ba-d19e-4abb-92b8-d08d8dfa8dab"
/>
This PR implements an Explorer Lending-Protocol Object Page. It provides
a readable version of Single-Asset-Vaults to the viewers.
## High Level Overview of Change
Rename column **Circ Supply** to **Supply** for Issued IOUs table.

<!--
Please include a summary/list of the changes.
If too broad, please consider splitting into multiple PRs.
-->

### Context of Change
The column name was intended to be **Supply**, but it was mistakenly
changed to **Circ Supply** in the [MPT Object Page
Revamp](https://github.com/ripple/explorer/pull/1264/changes#diff-196d9e2ae4352f2c8ef10f7153932bbe0355d1402eda575b55c62d6d20d10395L739-R740).
The root cause is that the same
`account_page_asset_table_column_circulating_supply` key is used for
both MPT circulating supply and IOU total supply. However, for IOUs we
were displaying total supply, not circulating supply.

<!--
Please include the context of a change.
If a bug fix, when was the bug introduced? What was the behavior?
If a new feature, why was this architecture chosen? What were the
alternatives?
If a refactor, how is this better than the previous implementation?

If there is a design document for this feature, please link it here.
-->

### Type of Change

<!--
Please check relevant options, delete irrelevant ones.
-->

- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] Refactor (non-breaking change that only restructures code)
- [ ] Tests (You added tests for code that already exists, or your new
feature included in this PR)
- [ ] Documentation Updates
- [ ] Translation Updates
- [ ] Release

### Codebase Modernization

<!--
In an effort to modernize the codebase, you should convert the files
that you work with to React Hooks and TypeScript If this is not possible
(e.g. it's too many changes, touching too many files, etc.) please
explain why here.
-->

- [ ] Updated files to React Hooks
- [ ] Updated files to TypeScript

## Before / After
### Before
<img width="1084" height="786" alt="Before"
src="https://github.com/user-attachments/assets/85c29390-0e83-4067-a482-f80c5a80b432"
/>

### After
<img width="1082" height="737" alt="After"
src="https://github.com/user-attachments/assets/bc2f82f1-7672-4f68-9516-e623f6075fc5"
/>

<!--
If just refactoring / back-end changes, this can be just an in-English
description of the change at a technical level.
If a UI change, screenshots should be included.
-->

## Test Plan

<!--
Please describe the tests that you ran to verify your changes and
provide instructions so that others can reproduce.
-->
Unit tests passed

<!--
## Future Tasks
For future tasks related to PR.
-->
## High Level Overview of Change

---

Summary

- Vault Rankings Page (/vaults): New listing page with server-side
pagination,
sorting (TVL, outstanding loans, utilization ratio, interest rate),
asset type
filtering (All/XRP/Stablecoins), and text search across vault names,
accounts,
  assets, and websites
- Vault Detail Page (/vault/:id): Individual vault view with header
metadata
(owner, asset, TVL, max supply, withdrawal policy, credentials,
website),
  transaction history, loan broker tabs with per-broker loan tables, and
  depositor/shareholder breakdown with share value calculations
- Aggregate Metrics: Header stats showing Total Value Locked,
Outstanding Loans,
Loans Originated, Avg. Interest Rate, # of Vaults, and Utilization Ratio
— all
  converted from XRP to USD using the live oracle rate
- Asset Price Conversion: Server-side caching of xrplmeta token prices
for RWA
assets (refreshed every 5 minutes), enabling accurate USD conversion for
all vault
   assets — not just XRP-denominated ones
- Vault Transaction Components: Simple, Description, and TableDetail
views for
VaultCreate, VaultDeposit, VaultWithdraw, VaultSet, VaultDelete, and
VaultClawback
   transaction types
- Test Coverage: Full test suites for the rankings page (container
rendering,
metrics, filters, table headers/rows, search, empty state, disclaimer),
API layer
(field mapping, sort/filter/search param handling, asset prices
endpoint), vault
detail page, vault header, loans, depositors, currency toggle,
transactions, and
  utilities

  Test plan

  - Verify /vaults loads with correct aggregate metrics in the header
- Confirm TVL and outstanding loan values display in USD for both XRP
and non-XRP
  vaults
- Test sorting by each column (TVL, outstanding loans, utilization,
interest rate)
   in both directions
- Test asset type filters (All Assets, XRP, Stablecoins) update the
table
  - Test search filters results by vault name/account/asset/website
  - Click through to a vault detail page (/vault/:id) and verify header,
  transactions, loans, and depositors tabs
  - Verify navigation link appears in sidebar on mainnet only
- Run npx jest src/containers/Vaults/test/ src/containers/Vault/test/ —
all 88
  tests pass


<img width="1861" height="674" alt="Screenshot 2026-03-20 at 3 26 34 PM"
src="https://github.com/user-attachments/assets/3ab93f0f-4c25-4369-8570-0bb2df9991b0"
/>
<img width="1959" height="1195" alt="Screenshot 2026-03-20 at 3 26
29 PM"
src="https://github.com/user-attachments/assets/0c4996e5-e909-43c2-8be3-b524a87cc31f"
/>



### Context of Change

<!--
Please include the context of a change.
If a bug fix, when was the bug introduced? What was the behavior?
If a new feature, why was this architecture chosen? What were the
alternatives?
If a refactor, how is this better than the previous implementation?

If there is a design document for this feature, please link it here.
-->

### Type of Change

<!--
Please check relevant options, delete irrelevant ones.
-->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] Refactor (non-breaking change that only restructures code)
- [ ] Tests (You added tests for code that already exists, or your new
feature included in this PR)
- [ ] Documentation Updates
- [ ] Translation Updates
- [ ] Release

### Codebase Modernization

<!--
In an effort to modernize the codebase, you should convert the files
that you work with to React Hooks and TypeScript If this is not possible
(e.g. it's too many changes, touching too many files, etc.) please
explain why here.
-->

- [ ] Updated files to React Hooks
- [ ] Updated files to TypeScript

## Before / After

<!--
If just refactoring / back-end changes, this can be just an in-English
description of the change at a technical level.
If a UI change, screenshots should be included.
-->

## Test Plan

<!--
Please describe the tests that you ran to verify your changes and
provide instructions so that others can reproduce.
-->

<!--
## Future Tasks
For future tasks related to PR.
-->

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
achowdhry-ripple and others added 6 commits March 20, 2026 19:07
…xcessive load (#1299)

## High Level Overview of Change

<!--
Please include a summary/list of the changes.
If too broad, please consider splitting into multiple PRs.
-->

Title says it all - 10 min TTL for agg stats, 2 min TTL for vaults

### Context of Change

<!--
Please include the context of a change.
If a bug fix, when was the bug introduced? What was the behavior?
If a new feature, why was this architecture chosen? What were the
alternatives?
If a refactor, how is this better than the previous implementation?

If there is a design document for this feature, please link it here.
-->

### Type of Change

<!--
Please check relevant options, delete irrelevant ones.
-->

- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] Refactor (non-breaking change that only restructures code)
- [ ] Tests (You added tests for code that already exists, or your new
feature included in this PR)
- [ ] Documentation Updates
- [ ] Translation Updates
- [ ] Release

### Codebase Modernization

<!--
In an effort to modernize the codebase, you should convert the files
that you work with to React Hooks and TypeScript If this is not possible
(e.g. it's too many changes, touching too many files, etc.) please
explain why here.
-->

- [ ] Updated files to React Hooks
- [ ] Updated files to TypeScript

## Before / After

<!--
If just refactoring / back-end changes, this can be just an in-English
description of the change at a technical level.
If a UI change, screenshots should be included.
-->

## Test Plan

<!--
Please describe the tests that you ran to verify your changes and
provide instructions so that others can reproduce.
-->

<!--
## Future Tasks
For future tasks related to PR.
-->
## Summary
- Pins rollup resolution to `@rollup/wasm-node@^4.59.0` to fix
CVE-2026-27606 (high-severity path traversal)
- Addresses DGE-6137 (autogenerated Semgrep finding)
- Build verified locally — no breaking changes

## Test plan
- [x] `vite build` succeeds
- [ ] CI passes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
## High Level Overview of Change

Add a unique key prop to <tr> elements in the Tokens table to fix icon
mismatches after re-sorting.

### Context of Change

**Bug:** On the Tokens page, when filtering by a category (eg:
Stablecoin) and then sorting by market cap multiple times, tokens
display incorrect icons. For example, RLUSD would have the highest
market cap but show another token's icon.

**Root cause:** The <tr> elements rendered via `tokens.map(renderToken)`
had no `key` prop. Adding a key of `currency.issuer_account` (unique per
token) ensures React correctly tracks each row for sorting.

### Type of Change

- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] Refactor (non-breaking change that only restructures code)
- [ ] Tests (You added tests for code that already exists, or your new
feature included in this PR)
- [ ] Documentation Updates
- [ ] Translation Updates
- [ ] Release

### Codebase Modernization

<!--
In an effort to modernize the codebase, you should convert the files
that you work with to React Hooks and TypeScript If this is not possible
(e.g. it's too many changes, touching too many files, etc.) please
explain why here.
-->

- [ ] Updated files to React Hooks
- [ ] Updated files to TypeScript

## Before / After

Before | After
-- | --
| <img width="1609" height="537" alt="image"
src="https://github.com/user-attachments/assets/c359edde-fbe0-42e6-8303-557fc87370fc"
/> | <img width="1590" height="517" alt="image"
src="https://github.com/user-attachments/assets/7ec54b3a-a02e-4b5a-a75c-7f0683f64f45"
/>

<!--
If just refactoring / back-end changes, this can be just an in-English
description of the change at a technical level.
If a UI change, screenshots should be included.
-->

## Test Plan

<!--
Please describe the tests that you ran to verify your changes and
provide instructions so that others can reproduce.
-->

<!--
## Future Tasks
For future tasks related to PR.
-->
## High Level Overview of Change

As indicated by the commit messages, this PR upgrades three
dependencies. The following extant PRs are obviated by this work:
#1242
https://github.com/ripple/explorer/pull/1221/changes
#1201

<!--
Please include a summary/list of the changes.
If too broad, please consider splitting into multiple PRs.
-->


<!--
Please include the context of a change.
If a bug fix, when was the bug introduced? What was the behavior?
If a new feature, why was this architecture chosen? What were the
alternatives?
If a refactor, how is this better than the previous implementation?

If there is a design document for this feature, please link it here.
-->

### Type of Change

<!--
Please check relevant options, delete irrelevant ones.
-->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] Refactor (non-breaking change that only restructures code)
- [ ] Tests (You added tests for code that already exists, or your new
feature included in this PR)
- [ ] Documentation Updates
- [ ] Translation Updates
- [ ] Release
- [x] dependency upgrade




## Test Plan
Existing tests pass with the upgraded dependencies. No functional change
in the working of Explorer.
<!--
Please describe the tests that you ran to verify your changes and
provide instructions so that others can reproduce.
-->

<!--
## Future Tasks
For future tasks related to PR.
-->
## High Level Overview of Change

- Move shared data display components (`DexTradeTable`, `HoldersTable`,
`ResponsiveTimestamp`) from Token-specific folders to
`shared/components/` for reuse across Token and upcoming AMM Pool pages
- Extract duplicated cursor pagination logic into a generic
`CursorPaginationService<T>`, reducing ~400 lines across
`dexTradesPagination` and `transfersPagination` to thin wrappers
- **Switch Token API calls from v1 (`/transactions`) to v2 LOS endpoints
(`/dex-trades` and `/v2/transactions`)**
- This change addresses the latency issues on the Token page when
loading DEX trade data.
- Co-locate test files with their components (`DexTradeTable/test/`,
`HoldersTable/test/`, `CopyableText/test/`)
- Consolidate duplicate `tables-mobile.scss` into a single
`shared/css/data-tables-mobile.scss`

### Context of Change

This is preparatory work for the new AMM Pool page. Components like
`DexTradeTable` and `HoldersTable` were previously scoped to Token pages
but will be reused on the AMM Pool page. The pagination services for DEX
trades and transfers had near-identical logic (~200 lines each) that has
been generalized into `CursorPaginationService<T>`.

The v2 LOS endpoints return a simpler response shape — `/dex-trades`
returns flat objects with `tx_hash` instead of nested `dex_trades[]`
with `hash`, and `/v2/transactions` replaces the old
`/transactions?transactionType=...` endpoint.

### Type of Change

- [x] Refactor (non-breaking change that only restructures code)
- [x] Tests (You added tests for code that already exists, or your new
feature included in this PR)

### Codebase Modernization

- [] Updated files to React Hooks
- [] Updated files to TypeScript

## Before / After

**No UI changes** — this is a pure refactor. All Token pages (IOU, MPT)
render identically.

**Key structural changes:**
- `src/containers/Token/IOU/components/DexTradeTable/` →
`src/containers/shared/components/DexTradeTable/`
- `src/containers/Token/shared/components/HoldersTable/` →
`src/containers/shared/components/HoldersTable/`
- `src/containers/Token/shared/components/ResponsiveTimestamp/` →
`src/containers/shared/components/ResponsiveTimestamp/`
- `src/containers/Token/shared/components/tables-mobile.scss` →
`src/containers/shared/css/data-tables-mobile.scss`
- NEW: `src/containers/shared/services/CursorPaginationService.ts` —
generic pagination with configurable `batchSize` (100), `pageSize` (10),
and `PREFETCH_THRESHOLD` (0.7)

## Test Plan

- Existing tests moved and updated with correct import paths — all pass
- New tests for `CursorPaginationService`: basic pagination, cache key
management, prefetch triggering, `hasMore` correctness at cache
boundaries
- Manual verification: Token IOU and MPT pages display DEX trades,
transfers, and holders tables with working pagination beyond page 10
*
https://livenet.dev.ripplex.io/token/524C555344000000000000000000000000000000.rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De
*
https://livenet.dev.ripplex.io/token/BTC.rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B
*
https://livenet.dev.ripplex.io/token/5553444200000000000000000000000000000000.rB3y9EPnq1ZrZP3aXgfyfdXQThzdXMrLMc
*
https://livenet.dev.ripplex.io/mpt/057D54EE52340A529B506C4B630ADE0EEE8DA51654A41628

## Release Plan
Because this refactoring switch Token API calls from v1 to v2 LOS
endpoints (`/dex-trades` and `/v2/transactions`) and the v2 data is
still being backfilling, I will only merge and release this PR when the
backfilling is done (Early April).
@semgrep-code-ripple-github-org
Copy link
Copy Markdown

Semgrep found 11 ssc-7ae6e5c3-b6de-4d40-8faa-c9762551977a findings:

Risk: Affected versions of axios are vulnerable to Improper Check for Unusual or Exceptional Conditions. It fails to correctly validate configuration keys during merging. This allows a crafted proto property to trigger an internal TypeError, causing the application to crash.

Fix: Upgrade this library to at least version 1.13.5 at explorer/package-lock.json:26713.

Reference(s): GHSA-43fc-jf86-j433, CVE-2026-25639

@cybele-ripple
Copy link
Copy Markdown
Contributor

@dependabot recreate

@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github Apr 1, 2026

Dependabot can't resolve your JavaScript dependency files. Because of this, Dependabot cannot update this pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants