Skip to content

Release: v2.5.0#663

Merged
kvhnuke merged 168 commits intomainfrom
develop
Apr 8, 2025
Merged

Release: v2.5.0#663
kvhnuke merged 168 commits intomainfrom
develop

Conversation

@kvhnuke
Copy link
Contributor

@kvhnuke kvhnuke commented Apr 8, 2025

Summary by CodeRabbit

  • New Features

    • Expanded wallet compatibility with additional blockchain networks (e.g., Taraxa, Story, Abstract, Berachain, Ink Onchain, Unichain, and Gravity).
    • Enhanced NFT selection with improved search and streamlined user interactions.
  • Chores

    • Introduced an automated testing workflow for swap providers.
    • Upgraded dependencies and standardized icon assets to WEBP format for enhanced performance.
    • Improved fee and transaction input displays for clearer presentation.
  • Documentation

    • Updated the supported chains list to reflect the new network additions.

olgakup and others added 30 commits February 10, 2025 17:05
@github-actions
Copy link

github-actions bot commented Apr 8, 2025

💼 Build Files
chrome: enkrypt-chrome-caeaeef5.zip
firefox: enkrypt-firefox-caeaeef5.zip

💉 Virus total analysis
chrome: caeaeef5
firefox: caeaeef5

@coderabbitai
Copy link

coderabbitai bot commented Apr 8, 2025

Walkthrough

This pull request introduces a new GitHub Actions workflow for testing swap providers, updates test commands and dependency versions in various package manifests, and expands blockchain network support in the README and Ethereum network configurations. New state management features are added in the extension (including a MenuState class and enhanced currency settings), and several UI components are improved with reactive data‐binding. In addition, numerous network configuration files are updated to convert icon imports from SVG/PNG to WEBP and to add new networks and endpoint changes.

Changes

File(s) Change Summary
.github/workflows/test-swap.yml Added a workflow to run swap provider tests on push events.
README.md Expanded the “Currently Supported Chains” list with new blockchain networks.
package.json, packages/extension-bridge/package.json, packages/extension/package.json Updated test scripts and dependency versions; bumped extension version.
packages/extension/src/libs/menu-state/* Introduced a new MenuState class with methods (setState, getState, etc.) and added corresponding type definitions.
packages/extension/src/libs/settings-state/* Added asynchronous methods for setting and retrieving currency settings and updated settings types.
packages/extension/src/libs/updates-state/index.ts Modified getState to include an await for proper asynchronous state retrieval.
packages/extension/src/libs/nft-handlers/simplehash.ts Added new supported network entries (Unichain, Berachain) and simplified the query string formatting.
packages/extension/src/providers/bitcoin/libs/ss-fee-handler.ts Adjusted gas price calculations for FASTEST, FAST, and REGULAR tiers by modifying additive constants.
packages/extension/src/providers/bitcoin/networks/* Updated icon imports from SVG to WEBP format for Bitcoin-related networks.
packages/extension/src/providers/{bitcoin,common}/ui/send-transaction/* Enhanced Vue component templates with added v-model bindings and switched fee formatting to use parseCurrency.
packages/extension/src/providers/ethereum/{libs/*,networks/*} Expanded network support: revised token lists, added new network configurations (e.g. Abstract, Story, Gravity, Taraxa, Unichain), updated endpoints, asset handlers, and converted icon imports to WEBP.
packages/extension/src/providers/ethereum/networks/skale/* Updated multiple SKALE network configuration files to reference new WEBP icons and adjust default icon parameters.
packages/extension/src/providers/ethereum/networks/rsk.ts Updated Rootstock configuration by converting the icon to WEBP and changing the WebSocket node URL.

Sequence Diagram(s)

sequenceDiagram
  participant G as GitHub Actions Runner
  participant C as Checkout (actions/checkout@v4)
  participant N as Setup Node (actions/setup-node@v4)
  participant Y as Yarn
  participant T as Test Suite

  G->>C: Checkout repository
  C-->>G: Repository checked out
  G->>N: Setup Node.js (v22.10.0) with caching
  N-->>G: Node.js environment ready
  G->>Y: Run "yarn install"
  Y-->>G: Dependencies installed
  G->>Y: Execute "yarn build:all"
  Y-->>G: Build completed
  G->>Y: Run "yarn test" in packages/swap
  Y-->>G: Return test results
Loading
sequenceDiagram
  participant UI as UI Component
  participant MS as MenuState
  participant BS as BrowserStorage

  UI->>MS: Call setState(newState)
  MS->>BS: Store newState under key "menuState"
  BS-->>MS: State persisted
  UI->>MS: Call getState()
  MS->>BS: Retrieve state for "menuState"
  BS-->>MS: Return stored state (or default if none)
  MS-->>UI: Return current menu state
Loading

Possibly related PRs

  • feat: add new networks #638: Updates blockchain networks in the README and network configs by adding Taraxa, Story, Abstract, Berachain, Ink Onchain, Unichain, and Gravity.
  • feat: add 5ireChain #602: Introduces new blockchain network configurations including 5ireChain, aligning with the additions in this PR.
  • Release: v2.2.0 #605: Modifies the list of supported chains by integrating changes for Syscoin NEVM and 5ireChain, closely related to the network updates here.

Suggested labels

enhancement

✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

coderabbitai[bot]
coderabbitai bot previously requested changes Apr 8, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (11)
.github/workflows/test-swap.yml (1)

1-16: Good addition of CI/CD workflow for swap providers

The new GitHub Actions workflow will ensure swap providers are properly tested with each code change. The configuration is well-structured with appropriate steps for checkout, Node setup, dependency installation, and test execution.

A couple of observations:

  1. Node version 22.10.0 is very recent. Ensure it's compatible with all dependencies.
  2. Consider adding a workflow concurrency limit to prevent multiple runs on the same branch.
name: Test all swap providers

on: [push]

+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: "22.10.0"
          cache: "yarn"
      - run: yarn install
      - run: yarn build:all
      - run: cd packages/swap && yarn test
packages/extension/src/providers/ethereum/networks/puppy.ts (1)

1-2: Icon Format Change and Asset Verification

The icon import has been revised to load a WEBP file (./icons/shiba-inu.webp) instead of the previous SVG. Ensure that the shiba-inu.webp asset is the correct icon for PuppyNet and that its naming aligns with the project’s asset conventions.

packages/extension/src/providers/ethereum/networks/movr.ts (1)

12-12: Potential URL Formatting Issue: The URL provided in blockExplorerTX (line 12) contains a double slash (//) after the domain (i.e. 'https://moonriver.moonscan.io//tx/[[txHash]]'). While many servers handle this gracefully, it is worth verifying that the extra slash does not cause any unintended issues in URL resolution.

packages/extension/src/providers/ethereum/networks/gravity.ts (2)

22-22: Consider adding NFT support for Gravity network

Unlike the Berachain configuration, the Gravity network doesn't include an NFT handler. If NFT support is intended for this network, consider adding the shNFTHandler similar to the Berachain implementation.

 activityHandler: wrapActivityHandler(() => Promise.resolve([])),
+NFTHandler: shNFTHandler,

22-22: Consider implementing a proper activity handler in the future

The current implementation uses an empty placeholder for the activity handler. While acceptable for the initial integration, a proper activity handler should be implemented in a future update.

packages/extension/src/providers/ethereum/networks/unichain.ts (1)

23-23: Consider implementing a proper activity handler

The current implementation wraps an empty promise for activities, which means no transaction history will be available. If the Unichain blockchain has explorer APIs, consider implementing a proper activity handler instead of returning an empty array.

packages/extension/src/providers/ethereum/networks/coti.ts (2)

7-20: Verify COTI network configuration parameters

The configuration appears correct, but there are a few potential enhancements:

  1. No coingeckoID is specified, which might limit price fetching functionality
  2. No assetsInfoHandler or NFTHandler are defined, which might limit token and NFT support
const coti: EvmNetworkOptions = {
  name: NetworkNames.Coti,
  name_long: 'COTI',
  homePage: 'https://coti.io/',
  blockExplorerTX: 'https://mainnet.cotiscan.io/tx/[[txHash]]',
  blockExplorerAddr: 'https://mainnet.cotiscan.io/address/[[address]]',
  chainID: '0x282B34',
  isTestNetwork: false,
  currencyName: 'COTI',
  currencyNameLong: 'COTI',
  node: 'https://mainnet.coti.io/rpc',
  icon,
+ coingeckoID: 'coti',
+ assetsInfoHandler: assetsInfoHandler,
  activityHandler: wrapActivityHandler(EtherscanActivity),
};

22-24: Rename variable for consistency with network type

The exported instance is named cotiDevnet but the network is configured as a mainnet (isTestNetwork: false). Consider renaming the variable to simply coti for clarity and consistency.

-const cotiDevnet = new EvmNetwork(coti);
+const coti = new EvmNetwork(coti);

-export default cotiDevnet;
+export default coti;
packages/extension/src/providers/ethereum/networks/abstract.ts (1)

21-21: Consider implementing a proper activity handler

The current implementation wraps an empty promise for activities, which means no transaction history will be available. If the Abstract blockchain has explorer APIs, consider implementing a proper activity handler instead of returning an empty array.

packages/extension/src/libs/settings-state/types.ts (1)

26-29: New currency settings type added

Added a new interface to support currency settings with a single string value property.

Consider using a more specific type than string for the currency value, such as an enum or string literal union of supported currencies (e.g., type CurrencyCode = 'USD' | 'EUR' | 'GBP' | ...). This would provide better type safety and autocompletion.

packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts (1)

275-285: Optimize reducer implementation to avoid performance issue.

The spread operator in the reducer could lead to O(n²) time complexity as identified by static analysis.

Consider refactoring to avoid using spread in the reducer:

-      : tokens.reduce(
-        (obj, cur) => ({ ...obj, [cur.contract]: null }),
-        {} as Record<string, CoinGeckoTokenMarket | null>,
-      );
+      : tokens.reduce(
+        (obj, cur) => {
+          obj[cur.contract] = null;
+          return obj;
+        },
+        {} as Record<string, CoinGeckoTokenMarket | null>,
+      );
🧰 Tools
🪛 Biome (1.9.4)

[error] 283-283: Avoid the use of spread (...) syntax on accumulators.

Spread syntax should be avoided on accumulators (like those in .reduce) because it causes a time complexity of O(n^2).
Consider methods such as .splice or .push instead.

(lint/performance/noAccumulatingSpread)

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 88b1888 and caeaeef.

⛔ Files ignored due to path filters (77)
  • packages/extension/src/providers/bitcoin/networks/icons/btc.svg is excluded by !**/*.svg
  • packages/extension/src/providers/bitcoin/networks/icons/doge.svg is excluded by !**/*.svg
  • packages/extension/src/providers/bitcoin/networks/icons/ltc.svg is excluded by !**/*.svg
  • packages/extension/src/providers/bitcoin/networks/icons/tbtc.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/5ire.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/aa.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/apex.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/arbitrum-nova.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/arbitrum.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/astr.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/aurora.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/avax.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/base.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/bitrock.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/bsc.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/caga.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/canto.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/celo.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/coti.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/degen.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/edgeware.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/etc.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/eth.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/form.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/forma.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/fraxtal.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/ftm.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/gno.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/godwoken.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/ham.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/immutable-zkevm.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/karura-evm.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/linea.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/manta-pacific.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/matic.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/mode.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/moonbeam.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/moonriver.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/okc.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/ont-evm.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/op.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/opbnb.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/palm.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/rari.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/rootstock.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/sanko.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/scroll.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/sdn.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/shiba-inu.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/skaleBlockBrawlers.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/skaleCalypsoNFTHub.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/skaleCryptoBlades.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/skaleCryptoColloseum.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/skaleEuropa.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/skaleExorde.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/skaleNebula.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/skaleRazor.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/skaleTitan.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/skl-fuel.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/skl.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/sys_nevm.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/sys_rollux.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/telos.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/tsys_nevm.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/tsys_rollux.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/viction.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/xlayer.png is excluded by !**/*.png
  • packages/extension/src/providers/ethereum/networks/icons/zcd.svg is excluded by !**/*.svg
  • packages/extension/src/providers/ethereum/networks/icons/zksync.svg is excluded by !**/*.svg
  • packages/extension/src/providers/kadena/networks/icons/kadena-kda-logo.svg is excluded by !**/*.svg
  • packages/extension/src/providers/polkadot/networks/icons/acala.svg is excluded by !**/*.svg
  • packages/extension/src/providers/polkadot/networks/icons/amplitude.svg is excluded by !**/*.svg
  • packages/extension/src/providers/polkadot/networks/icons/assethub.png is excluded by !**/*.png
  • packages/extension/src/providers/polkadot/networks/icons/astar.png is excluded by !**/*.png
  • packages/extension/src/providers/polkadot/networks/icons/bifrost.svg is excluded by !**/*.svg
  • packages/extension/src/providers/polkadot/networks/icons/edgeware.svg is excluded by !**/*.svg
  • packages/extension/src/providers/polkadot/networks/icons/karura.svg is excluded by !**/*.svg
📒 Files selected for processing (107)
  • .github/workflows/test-swap.yml (1 hunks)
  • README.md (2 hunks)
  • package.json (2 hunks)
  • packages/extension-bridge/package.json (1 hunks)
  • packages/extension/package.json (5 hunks)
  • packages/extension/src/libs/menu-state/index.ts (1 hunks)
  • packages/extension/src/libs/menu-state/types.ts (1 hunks)
  • packages/extension/src/libs/nft-handlers/simplehash.ts (1 hunks)
  • packages/extension/src/libs/settings-state/index.ts (2 hunks)
  • packages/extension/src/libs/settings-state/types.ts (2 hunks)
  • packages/extension/src/libs/updates-state/index.ts (1 hunks)
  • packages/extension/src/providers/bitcoin/libs/ss-fee-handler.ts (1 hunks)
  • packages/extension/src/providers/bitcoin/networks/bitcoin-testnet.ts (1 hunks)
  • packages/extension/src/providers/bitcoin/networks/bitcoin.ts (1 hunks)
  • packages/extension/src/providers/bitcoin/networks/dogecoin.ts (1 hunks)
  • packages/extension/src/providers/bitcoin/networks/litecoin.ts (1 hunks)
  • packages/extension/src/providers/bitcoin/ui/send-transaction/index.vue (2 hunks)
  • packages/extension/src/providers/bitcoin/ui/send-transaction/verify-transaction/index.vue (1 hunks)
  • packages/extension/src/providers/common/libs/new-features.ts (1 hunks)
  • packages/extension/src/providers/common/ui/send-transaction/nft-select-list/components/nft-select-list-search.vue (1 hunks)
  • packages/extension/src/providers/common/ui/send-transaction/nft-select-list/index.vue (3 hunks)
  • packages/extension/src/providers/common/ui/send-transaction/send-fee-select.vue (1 hunks)
  • packages/extension/src/providers/common/ui/send-transaction/send-input-amount.vue (1 hunks)
  • packages/extension/src/providers/common/ui/verify-transaction/verify-transaction-fee.vue (1 hunks)
  • packages/extension/src/providers/common/ui/verify-transaction/verify-transaction-network.vue (1 hunks)
  • packages/extension/src/providers/ethereum/libs/activity-handlers/providers/etherscan/configs.ts (1 hunks)
  • packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts (4 hunks)
  • packages/extension/src/providers/ethereum/libs/assets-handlers/token-lists.ts (1 hunks)
  • packages/extension/src/providers/ethereum/libs/assets-handlers/types/tokenbalance-mew.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/5ire.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/aa.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/aat.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/abstract.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/arb-nova.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/arb.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/astr.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/aurora.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/avax.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/base.ts (2 hunks)
  • packages/extension/src/providers/ethereum/networks/bera.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/bitrock.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/bsc.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/cagaAnkara.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/canto.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/celo.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/coti-devnet.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/coti.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/degen.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/dmt.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/edg.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/etc.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/eth.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/form-testnet.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/form.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/forma.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/fraxtal.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/ftm.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/glmr.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/gno.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/godwoken.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/gravity.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/ham.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/holesky.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/immutable-zkevm.ts (2 hunks)
  • packages/extension/src/providers/ethereum/networks/index.ts (2 hunks)
  • packages/extension/src/providers/ethereum/networks/inkonchain.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/karura.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/linea.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/manta-pacific.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/matic.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/maticzk.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/mode.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/movr.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/okc.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/ontevm.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/op-bnb.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/op.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/palm.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/pop-apex.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/puppy.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/rari.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/rsk-testnet.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/rsk.ts (2 hunks)
  • packages/extension/src/providers/ethereum/networks/scroll.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/sdn.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/sepolia.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/shib.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/skale/README.md (2 hunks)
  • packages/extension/src/providers/ethereum/networks/skale/blockBrawlers.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/skale/calypso.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/skale/cryptoBlades.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/skale/cryptoColosseum.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/skale/europa.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/skale/exorde.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/skale/nebula.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/skale/razor.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/skale/skale-base.ts (4 hunks)
  • packages/extension/src/providers/ethereum/networks/skale/titan.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/story.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/syscoin/nevm-testnet.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/syscoin/nevm.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/syscoin/rollux-testnet.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/syscoin/rollux.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/taraxa.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/tlos.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/unichain.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/vic.ts (1 hunks)
⛔ Files not processed due to max files limit (30)
  • packages/extension/src/providers/ethereum/networks/xlayer.ts
  • packages/extension/src/providers/ethereum/networks/zcd.ts
  • packages/extension/src/providers/ethereum/networks/zkgoerli.ts
  • packages/extension/src/providers/ethereum/networks/zksync.ts
  • packages/extension/src/providers/ethereum/types/custom-evm-network.ts
  • packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue
  • packages/extension/src/providers/ethereum/ui/send-transaction/components/send-token-select.vue
  • packages/extension/src/providers/ethereum/ui/send-transaction/index.vue
  • packages/extension/src/providers/ethereum/ui/send-transaction/verify-transaction/index.vue
  • packages/extension/src/providers/ethereum/ui/wallet-add-ethereum-network.vue
  • packages/extension/src/providers/kadena/methods/kda_switchNetwork.ts
  • packages/extension/src/providers/kadena/networks/kadena-testnet.ts
  • packages/extension/src/providers/kadena/networks/kadena.ts
  • packages/extension/src/providers/kadena/ui/send-transaction/components/send-fee-display.vue
  • packages/extension/src/providers/kadena/ui/send-transaction/components/send-fee-select.vue
  • packages/extension/src/providers/kadena/ui/send-transaction/index.vue
  • packages/extension/src/providers/kadena/ui/send-transaction/verify-transaction/index.vue
  • packages/extension/src/providers/polkadot/networks/acala/acala.ts
  • packages/extension/src/providers/polkadot/networks/acala/assets/acala-assets.ts
  • packages/extension/src/providers/polkadot/networks/acala/assets/karura-assets.ts
  • packages/extension/src/providers/polkadot/networks/acala/karura.ts
  • packages/extension/src/providers/polkadot/networks/assethub/assethub-dot.ts
  • packages/extension/src/providers/polkadot/networks/assethub/assethub-ksm.ts
  • packages/extension/src/providers/polkadot/networks/astar/assets/astar-assets.ts
  • packages/extension/src/providers/polkadot/networks/astar/astar.ts
  • packages/extension/src/providers/polkadot/networks/astar/shiden.ts
  • packages/extension/src/providers/polkadot/networks/bifrost/assets/bifrost-assets.ts
  • packages/extension/src/providers/polkadot/networks/bifrost/kusama.ts
  • packages/extension/src/providers/polkadot/networks/bifrost/polkadot.ts
  • packages/extension/src/providers/polkadot/networks/edgeware.ts
🧰 Additional context used
🧬 Code Graph Analysis (9)
packages/extension/src/providers/ethereum/networks/gravity.ts (1)
packages/extension/src/providers/ethereum/types/evm-network.ts (2)
  • EvmNetworkOptions (25-56)
  • EvmNetwork (58-293)
packages/extension/src/providers/ethereum/networks/bera.ts (1)
packages/extension/src/providers/ethereum/types/evm-network.ts (2)
  • EvmNetworkOptions (25-56)
  • EvmNetwork (58-293)
packages/extension/src/providers/ethereum/networks/unichain.ts (1)
packages/extension/src/providers/ethereum/types/evm-network.ts (2)
  • EvmNetworkOptions (25-56)
  • EvmNetwork (58-293)
packages/extension/src/providers/ethereum/networks/abstract.ts (1)
packages/extension/src/providers/ethereum/types/evm-network.ts (2)
  • EvmNetworkOptions (25-56)
  • EvmNetwork (58-293)
packages/extension/src/providers/ethereum/networks/story.ts (1)
packages/extension/src/providers/ethereum/types/evm-network.ts (2)
  • EvmNetworkOptions (25-56)
  • EvmNetwork (58-293)
packages/extension/src/providers/ethereum/networks/taraxa.ts (1)
packages/extension/src/providers/ethereum/types/evm-network.ts (2)
  • EvmNetworkOptions (25-56)
  • EvmNetwork (58-293)
packages/extension/src/libs/settings-state/index.ts (1)
packages/extension/src/libs/settings-state/types.ts (2)
  • CurrencySettingsType (27-29)
  • SettingsType (30-37)
packages/extension/src/libs/menu-state/index.ts (1)
packages/extension/src/libs/menu-state/types.ts (1)
  • IState (5-7)
packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts (2)
packages/swap/src/configs.ts (1)
  • NATIVE_TOKEN_ADDRESS (123-123)
packages/extension/src/libs/market-data/types.ts (1)
  • CoinGeckoTokenMarket (23-37)
🪛 Biome (1.9.4)
packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts

[error] 283-283: Avoid the use of spread (...) syntax on accumulators.

Spread syntax should be avoided on accumulators (like those in .reduce) because it causes a time complexity of O(n^2).
Consider methods such as .splice or .push instead.

(lint/performance/noAccumulatingSpread)

🔇 Additional comments (139)
packages/extension/src/providers/ethereum/networks/aurora.ts (1)

1-1: Updated image format from PNG to WebP

Good optimization. WebP typically provides better compression than PNG while maintaining similar quality, which should help reduce bundle size.

packages/extension/src/providers/ethereum/networks/astr.ts (1)

1-1: Updated image format from PNG to WebP

Good choice of image format. WebP offers better compression and will help reduce bundle size and improve loading performance.

packages/extension/src/providers/bitcoin/ui/send-transaction/verify-transaction/index.vue (1)

64-64: Improved state management using v-model

Good refactoring to use Vue's reactive two-way data binding. Using v-model instead of event handlers makes the code more maintainable and follows Vue best practices.

package.json (2)

21-23: Test Script Exclusion Update

The test script has been updated with the --exclude packages/swap option. This change is consistent with the new GitHub Actions workflow that specifically handles swap provider tests. Please verify that excluding the swap package here does not inadvertently omit any tests that should run under alternative circumstances.


35-37: Dependency Version Upgrades

The versions for @commitlint/cli, @commitlint/config-conventional, and @swc/core have been incremented appropriately. Ensure that these upgrades are fully compatible with your existing toolchain and that no breaking changes are introduced in the development workflow.

packages/extension/src/providers/ethereum/networks/sdn.ts (1)

1-1: Icon File Format Conversion

The icon import has been updated from a PNG to a WEBP file (./icons/sdn.webp). This update should help improve asset performance and uniformity across network configurations. Confirm that the new WEBP file is optimized and correctly located.

packages/extension/src/providers/ethereum/networks/glmr.ts (1)

1-1: Icon Import Update and Naming Consistency

The icon is now imported from ./icons/moonbeam.webp, aligning with the new asset format. Although the file is named glmr.ts, the configuration refers to the Moonbeam network (with currency GLMR), which appears intentional. Please double-check that this naming convention is documented for clarity.

packages/extension/src/providers/ethereum/networks/tlos.ts (1)

1-1: Updated Icon Import for Telos Network

The icon import has been updated from a SVG file to a WEBP file (./icons/telos.webp). This change should improve asset delivery performance. Verify that the new icon design meets the Telos network’s branding guidelines.

packages/extension/src/providers/ethereum/networks/rsk-testnet.ts (1)

1-1: Icon Import Update to WEBP Format
The import statement for the network icon has been updated to use the WEBP file (rootstock.webp) instead of the older SVG. This change is consistent with the overall asset update effort across network configuration files. Please ensure that the new WEBP asset exists in the expected location and is optimized for performance.

packages/extension/src/providers/ethereum/networks/sepolia.ts (1)

1-1: Consistent Icon Format Update
The updated import statement now sources the icon from a .webp file (eth.webp), aligning with the project-wide transition from SVG to WEBP assets. The change is non-invasive to the rest of the file's logic.

packages/extension/src/providers/ethereum/networks/aa.ts (1)

1-1: Uniform Asset Format Implementation
The icon import has been updated from SVG to WEBP by importing aa.webp. This is a straightforward change that aligns with the new standard. No adverse effects on the network configuration are expected.

packages/extension/src/providers/ethereum/networks/5ire.ts (1)

1-1: WEBP Icon Integration Confirmed
The file now imports the network icon from a .webp file (5ire.webp) replacing the previous SVG format. This modification is consistent with the aesthetic and performance enhancements being implemented across similar network files.

packages/extension/src/providers/ethereum/networks/fraxtal.ts (1)

1-1: Standardized Icon Asset Upgrade
The import statement for the icon now references fraxtal.webp, following the new standardized asset format for the project. The change is minimal and does not alter the overall functionality of the network configuration.

packages/extension/src/providers/bitcoin/networks/bitcoin.ts (1)

1-1: Icon Import Format Update Verified.

The import statement now uses a .webp asset (btc.webp), aligning with the project's broader initiative to standardize and optimize icon assets. Please ensure that the referenced asset exists in the ./icons/ directory and is optimized for performance.

packages/extension/src/providers/ethereum/networks/syscoin/rollux-testnet.ts (1)

1-1: Icon Import Format Update Verified.

The import statement has been updated to reference a .webp asset (tsys_rollux.webp) from the relative path. This change is consistent with similar updates across the network configurations. Confirm that the new file is accessible and displays correctly in the relevant UI.

packages/extension/src/providers/ethereum/networks/linea.ts (1)

1-1: Icon Import Format Update Verified.

The icon import has changed from a PNG to a WEBP format (linea.webp). This contributes to improved performance and a standardized asset format across the project. Verify that this asset is correctly rendered on all supported platforms.

packages/extension/src/providers/ethereum/networks/okc.ts (1)

1-1: Icon Import Format Update Verified.

The icon for OKC is now being imported from a .webp file (okc.webp) instead of a .svg. The change is straightforward and consistent with the other network files. Please double-check that the new icon displays as expected.

packages/extension/src/providers/ethereum/networks/syscoin/rollux.ts (1)

1-1: Icon Import Format Update Verified.

This update replaces the SVG icon import with a WEBP file (sys_rollux.webp), which is in line with the asset optimizations performed across the repository. Ensure that the new asset is loaded without issues in the application.

packages/extension/src/providers/ethereum/networks/canto.ts (1)

1-1: Icon Import Update: Use of WEBP Format

The updated import on line 1 now pulls the icon from a .webp file instead of a .svg. This change enhances performance (through better compression and loading speed) and maintains consistency with similar network configurations across the codebase.

packages/extension/src/providers/ethereum/networks/skale/cryptoBlades.ts (1)

13-13: Skale Icon Format Update

The modification on line 13 changes the icon reference to a .webp file. This update aligns with the new asset management strategy and should improve asset delivery performance.

packages/extension/src/providers/ethereum/networks/shib.ts (1)

1-1: Shibarium Icon Import Revision

The change on line 1 updates the icon import to reference a .webp image. This update is consistent with the overall effort to standardize icons and optimize performance across network files.

packages/extension/src/providers/ethereum/networks/arb.ts (1)

1-1: Arbitrum Icon File Update

Updating the import on line 1 to use a .webp file is a good move toward uniform asset management. The adjustment should offer better load performance without affecting functionality.

packages/extension/src/providers/ethereum/networks/dmt.ts (1)

1-1: DMT Network Icon Format Transition

The change on line 1 replaces the PNG icon with a WEBP file. This consistent update across network configurations is beneficial for optimizing asset size and load times while maintaining visual fidelity.

packages/extension/src/providers/ethereum/networks/holesky.ts (1)

1-1: Icon Import Updated to WEBP

The import statement on line 1 correctly updates the asset format from a previous type (e.g. SVG) to .webp, aligning with the new asset standard.

packages/extension/src/providers/bitcoin/networks/dogecoin.ts (1)

1-1: Icon Import Change to WEBP

The updated import on line 1 now references './icons/doge.webp', which conforms to the standardized asset formats across the project. This non-functional change improves consistency.

packages/extension/src/providers/ethereum/networks/godwoken.ts (1)

1-1: Icon Format Transition from PNG to WEBP

The new import statement on line 1 uses './icons/godwoken.webp' instead of the older PNG format, ensuring uniformity with the current asset management strategy.

packages/extension/src/providers/ethereum/networks/ham.ts (1)

1-1: Updated Icon Import to WEBP Format

Line 1 now imports the icon from './icons/ham.webp', replacing the previous PNG source. This change is consistent with the project-wide update for improved image asset handling.

packages/extension/src/providers/ethereum/networks/rari.ts (1)

1-1: Correctly Updated Icon Import to WEBP

The icon import on line 1 now uses './icons/rari.webp', which streamlines the asset format across network configurations without affecting functionality.

packages/extension/src/providers/ethereum/networks/palm.ts (1)

1-1: Icon Import Update: The import has been updated to use the WebP format by changing the path to ./icons/palm.webp. This aligns with the project-wide standardization on WebP assets.

packages/extension/src/providers/ethereum/networks/maticzk.ts (1)

1-1: Icon Import Update: The icon import now references the WebP asset (./icons/matic.webp), ensuring consistency with other network files. Verify that the new asset exists and is optimized as expected.

packages/extension/src/providers/ethereum/networks/vic.ts (1)

1-1: Icon Format Transition: The icon import has been changed from a PNG to a WebP file (./icons/viction.webp). This update supports asset consistency across network configurations and could improve image loading performance.

packages/extension/src/providers/ethereum/networks/movr.ts (1)

1-1: Icon Import Standardization: The change updates the icon import to use the WebP file (./icons/moonriver.webp), which is consistent with the overall asset strategy of the project.

packages/extension/src/providers/ethereum/networks/gno.ts (1)

1-1: WebP Icon Import: The import has been updated to reference the WebP format (./icons/gno.webp), maintaining consistency with recent asset updates across the network configurations. Ensure that the new icon is available and properly optimized.

packages/extension/src/providers/ethereum/networks/celo.ts (1)

1-1: Icon file format updated to WebP for better performance.

The update from SVG to WebP format for the Celo network icon aligns with the broader standardization effort across network configurations. WebP typically offers better compression while maintaining good quality, which can help reduce the extension's size.

packages/extension/src/providers/ethereum/networks/mode.ts (1)

1-1: Icon file format updated to WebP for better performance.

The update from PNG to WebP format for the Mode network icon aligns with the broader standardization effort across network configurations. WebP typically offers better compression while maintaining good quality, which can help reduce the extension's size.

packages/extension/src/providers/ethereum/networks/syscoin/nevm.ts (1)

1-1: Icon file format updated to WebP for better performance.

The update from SVG to WebP format for the Syscoin NEVM network icon aligns with the broader standardization effort across network configurations. WebP typically offers better compression while maintaining good quality, which can help reduce the extension's size.

packages/extension/src/providers/ethereum/networks/skale/cryptoColosseum.ts (1)

13-13: Icon file format updated to WebP for better performance.

The update from PNG to WebP format for the SKALE Crypto Colosseum network icon aligns with the broader standardization effort across network configurations. WebP typically offers better compression while maintaining good quality, which can help reduce the extension's size.

packages/extension/src/providers/ethereum/networks/forma.ts (2)

1-1: Icon Import Format Updated.
The import statement now uses forma.webp instead of the previous PNG, which is consistent with the asset standardization effort across the project.


2-27: Network Configuration Unchanged & Correct.
All remaining network options in formaOptions are intact and valid. There are no changes affecting functionality aside from the asset format update.

packages/extension/src/providers/ethereum/networks/ontevm.ts (2)

1-1: Icon Import Format Updated.
The icon is now imported from ont-evm.webp instead of the previous format. This update aligns with the overall asset conversion strategy.


2-26: Ontology EVM Network Options are Consistent.
The network configuration (options such as name, homePage, chainID, etc.) remains unchanged and correctly defined. The update solely affects the icon import.

packages/extension/src/providers/ethereum/networks/aat.ts (2)

1-1: Icon Import Format Updated.
The file now imports the icon from ./icons/aa.webp rather than the SVG, which is consistent with the new asset format across similar network files.


2-25: Network Configuration Remains Correct.
The network options for ArtheraTest have not been affected by the icon format change. All credentials, endpoints, and parameters remain properly defined.

packages/extension/src/providers/ethereum/networks/form.ts (2)

1-1: Icon Import Format Updated.
The icon is now sourced from ./icons/form.webp, which adheres to the recent conversion of asset formats.


2-25: Form Mainnet Network Configuration is Valid.
All other properties in the formOptions remain unchanged and are defined correctly to ensure proper network operation.

packages/extension/src/providers/ethereum/networks/avax.ts (2)

1-1: Icon Import Format Updated.
The import statement now references avax.webp instead of an SVG. This change is in line with the project’s move towards standardizing asset formats.


2-31: Avalanche Network Options Verified.
The avaxOptions remain fully intact, with all configuration parameters such as endpoints, chain IDs, and handlers correctly specified. The sole change pertains to the format of the icon, which is appropriate and non-disruptive.

packages/extension/src/providers/ethereum/networks/syscoin/nevm-testnet.ts (1)

1-1: Icon import updated to WEBP format.
The change from an earlier image format (e.g. SVG) to WEBP is consistent with our standardization efforts across network files and may provide better performance and reduced asset size.

packages/extension/src/providers/ethereum/networks/skale/razor.ts (1)

13-13: Updated icon file reference to WEBP.
Changing the icon from its previous format to skaleRazor.webp aligns with our updated asset strategy and ensures consistency with similar network configurations.

packages/extension/src/providers/ethereum/networks/op-bnb.ts (1)

1-1: Revised icon import to use WEBP.
The update to import opbnb.webp instead of a PNG is a straightforward refactor for consistency with other network configurations. No functional impacts are expected.

packages/extension/src/providers/ethereum/networks/scroll.ts (1)

1-1: Icon import switched to WEBP format.
Updating the import to scroll.webp helps standardize our assets and may offer performance benefits, with no other changes affecting the functionality.

packages/extension/src/providers/ethereum/networks/etc.ts (1)

1-1: Converted icon import from SVG to WEBP.
This update, replacing the SVG with a WEBP format via the import of etc.webp, is part of our broader initiative to streamline asset formats across modules.

packages/extension/src/providers/ethereum/networks/arb-nova.ts (1)

1-1: Icon Import Updated to WEBP:
The import statement now uses a WEBP file, which aligns with our asset optimization strategy and improves consistency with other network files.

packages/extension/src/providers/ethereum/networks/bitrock.ts (1)

1-1: Icon Format Transition:
The icon import now references a WEBP file, which enhances image compression and performance while keeping consistency with our modernized assets.

packages/extension/src/providers/ethereum/networks/manta-pacific.ts (1)

1-1: WEBP Icon Import:
Updating the icon import to WEBP ensures better asset handling and a standardized approach across our network configurations.

packages/extension/src/providers/ethereum/networks/skale/exorde.ts (1)

9-9: SKALE Icon Update:
The icon property now points to a WEBP file instead of a PNG. Please confirm that the skaleExorde.webp asset exists in the designated location to avoid runtime issues.

packages/extension/src/providers/ethereum/networks/skale/nebula.ts (1)

9-9: Nebula Icon Update:
The icon for the Nebula configuration has been updated to WEBP, which maintains consistency with our other SKALE network updates. Ensure that the new asset skaleNebula.webp is available.

packages/extension/src/providers/ethereum/networks/skale/calypso.ts (1)

13-13: Update Icon Format to WEBP
The icon property has been updated from a PNG filename to a WEBP filename. This change is consistent with the broader effort across the project, and as long as the file exists at the specified path, it should function correctly.

packages/extension/src/providers/ethereum/networks/coti-devnet.ts (1)

1-1: Updated Icon Import for COTI Devnet
The icon import has been revised from the PNG (coti.png) to the WEBP format (coti.webp), which aligns with the overall asset format standardization across the network configurations.

packages/extension/src/providers/ethereum/networks/karura.ts (1)

1-1: Icon Format Change for Karura EVM
The icon import has been modified from an SVG file to a WEBP file. This update is straightforward and maintains consistency with similar changes in other network files.

packages/extension/src/providers/ethereum/networks/pop-apex.ts (1)

1-1: Consistent Icon Format Update for Proof of Play Apex
The icon import now uses the WEBP format instead of PNG. This change is in line with the recent project-wide updates and should be verified to ensure the new asset file is correctly deployed.

packages/extension/src/providers/ethereum/networks/degen.ts (1)

1-1: Standardize Icon Import to WEBP for Degen
The import for the degen icon has been updated from a PNG to a WEBP file. This change supports the project's asset format consistency. Ensure that the WEBP asset is available at the referenced location.

packages/extension/src/providers/ethereum/networks/ftm.ts (1)

1-1: Update Icon Import to WEBP Format
The icon import has been updated from an SVG to a WEBP file. This change aligns perfectly with the project’s broader effort to standardize asset formats across network configurations.

packages/extension/src/providers/bitcoin/networks/litecoin.ts (1)

1-1: Consistent Icon Format Update for Litecoin
The Litecoin network now imports its icon as a WEBP file rather than an SVG. This update is consistent with similar changes across the codebase and contributes to improved asset performance.

packages/extension/src/providers/ethereum/networks/form-testnet.ts (1)

1-1: Transition Icon File from PNG to WEBP
The icon import in this file has been modified from a PNG format to a WEBP format. This change is in line with the initiative to standardize image formats and optimize asset management.

packages/extension/src/providers/ethereum/networks/edg.ts (1)

1-1: Icon Format Update to WEBP
The file now imports the Edgeware icon as a WEBP instead of a SVG. This update is consistent with the ongoing improvements introduced in this release.

packages/extension/src/providers/ethereum/networks/skale/blockBrawlers.ts (1)

15-15: Updated SKALE BlockBrawlers Icon to WEBP
The icon for the BlockBrawlers network has been updated to use a WEBP file (from the previous PNG format). This is a clean change that supports overall consistency and potentially improved loading performance.

packages/extension/src/providers/ethereum/networks/skale/titan.ts (1)

9-9: Updated icon format to WebP for improved performance.

This change is part of a broader effort to convert icons from PNG to WebP format across the application. WebP typically offers better compression than PNG while maintaining quality, which should result in faster load times.

packages/extension/src/providers/bitcoin/networks/bitcoin-testnet.ts (1)

1-1: Updated icon format from SVG to WebP for improved performance.

This change standardizes the icon format across the application by moving from SVG to WebP. WebP generally provides better compression for photographic content. Make sure the WebP version maintains sufficient quality, especially at higher zoom levels.

packages/extension/src/providers/ethereum/networks/eth.ts (1)

1-1: Updated Ethereum icon format from SVG to WebP for improved performance.

This change converts the Ethereum icon from SVG to WebP format, consistent with similar changes across other network files. WebP provides better compression, but ensure the quality of the Ethereum logo is maintained, as it's a key visual element for users.

packages/extension/src/providers/common/ui/verify-transaction/verify-transaction-network.vue (1)

44-44: Added object-fit property to prevent image distortion.

The addition of object-fit: contain ensures that network icons maintain their aspect ratio while fitting within the specified dimensions. This is an important enhancement, especially with the icon format transition from SVG/PNG to WebP, to ensure consistent and professional UI presentation.

packages/extension/src/providers/ethereum/networks/cagaAnkara.ts (1)

1-1: Icon format update looks good.

The change from SVG to WEBP format for the network icon is a good performance optimization. WEBP typically offers better compression while maintaining quality, which is beneficial for a browser extension where resource optimization is important.

packages/extension/src/providers/ethereum/networks/bsc.ts (1)

1-1: Icon format conversion approved.

This change follows the consistent pattern of converting network icons from SVG to WEBP format throughout the codebase, which should help with performance and load times.

packages/extension/src/libs/menu-state/types.ts (1)

1-7: Well-structured type definitions for menu state.

The new type definitions for menu state management are clear and concise. Using an enum for storage keys is a good practice for maintaining consistent key names across the application, and the interface properly defines the shape of the menu state with the isExpanded boolean property.

packages/extension/src/providers/ethereum/libs/activity-handlers/providers/etherscan/configs.ts (1)

73-73: Network expansion for Coti approved.

The addition of the Coti network endpoint to the NetworkEndpoints mapping aligns with the PR objective of expanding blockchain network support. The endpoint URL follows the same pattern as other explorer endpoints in the configuration.

packages/extension/src/providers/ethereum/networks/op.ts (1)

1-1: Icon format standardization to WebP

The change from SVG to WebP format for the icon is consistent with the PR's approach to standardize icon formats across network configurations. While WebP generally offers better compression, be aware that SVG provides better scaling for different screen densities.

packages/extension/src/providers/ethereum/networks/matic.ts (1)

1-1: Icon format standardization to WebP

The change from SVG to WebP format for the icon aligns with the PR's broader effort to standardize icon formats across the extension's network configurations.

packages/extension/src/providers/common/ui/send-transaction/send-input-amount.vue (1)

16-16: Improved currency display with modern filters

The change updates the fiat equivalent display from using a Vue filter pipe syntax to using the more modern $filters object approach. This also correctly passes the entire fiatEquivalent computed property to the parseCurrency filter without accessing a non-existent value property.

The computed property on line 62 returns a string value:

const fiatEquivalent = computed(() => {
  return new BigNumber(props.fiatValue).times(props.amount).toString();
});

So this change makes the template more consistent with the actual data structure.

packages/extension/src/providers/ethereum/networks/skale/europa.ts (1)

13-13: WebP icon format standardization

The change from SVG to WebP format for the SKALE Europa network icon is consistent with the format standardization effort across the extension's network configurations.

packages/extension/src/providers/ethereum/networks/bera.ts (4)

1-7: LGTM: Good use of WebP format for the icon

The imports look appropriate for setting up a new EVM network. Using WebP format for the icon is a good choice for better performance compared to older formats like PNG or SVG.


8-25: Well-structured network configuration with all required properties

The network configuration includes all necessary properties for an EVM network following the EvmNetworkOptions interface requirements. The chain ID, RPC endpoint, and explorer URLs are properly defined.


27-29: LGTM: Network instance correctly instantiated and exported

The EVM network is properly instantiated with the configuration options and exported as the default export.


24-24:

Details

✅ Verification successful

Consider adding a proper activity handler in the future

The current implementation uses an empty placeholder for the activity handler. While this is acceptable for the initial integration, you might want to implement a proper activity handler for Berachain in the future.


🏁 Script executed:

#!/bin/bash
# Check if there are any existing activity handlers in the codebase that could be reused
rg -A 1 "activityHandler" --glob "*.ts" | grep -v "Promise.resolve(\[\])"

Length of output: 21562


Activity Handler Implementation for Berachain

The implementation in packages/extension/src/providers/ethereum/networks/bera.ts currently uses a temporary placeholder:

activityHandler: wrapActivityHandler(() => Promise.resolve([])),

This is acceptable for the initial integration; however, as demonstrated by other networks in the codebase that use concrete handlers (e.g., wrapActivityHandler(EtherscanActivity) in several Ethereum files), it would be beneficial to implement a proper activity handler for Berachain in the future.

File: packages/extension/src/providers/ethereum/networks/bera.ts (line 24)
Current Implementation: Uses a placeholder returning an empty array
Recommendation: Consider developing or reusing an existing activity handler pattern from similar network providers to ensure consistent behavior across providers as the project evolves.

packages/extension/src/providers/common/libs/new-features.ts (1)

3-12: Network feature list properly updated for v2.5.0 release

The newNetworks array has been updated to reflect the newly added networks in this release. This ensures that users will be properly notified about these new supported chains.

packages/extension/src/providers/ethereum/networks/gravity.ts (3)

1-6: LGTM: Imports are appropriate for network configuration

The necessary imports for setting up the Gravity network are properly included.


7-23: Well-structured network configuration with consistent formatting

The network configuration follows the established pattern and includes all required properties for an EVM network. The chain ID, explorer URLs, and currency details are properly defined.


25-27: LGTM: Network instance correctly instantiated and exported

The EVM network is properly instantiated with the defined options and exported as the default export.

README.md (1)

103-118: README.md updated with all new networks added in this release

The README has been appropriately updated to include all the new networks (Taraxa, Story, Abstract, Berachain, Ink Onchain, Unichain, and Gravity) in the "Currently Supported Chains" section, keeping users informed about the extension's capabilities.

🧰 Tools
🪛 LanguageTool

[duplication] ~110-~110: Possible typo: you repeated a word.
Context: ...Network - Viction - Westend - ZChains - zkSync - zkSync Goerli - 5ireChain - Story - Abstract -...

(ENGLISH_WORD_REPEAT_RULE)

packages/extension/src/providers/ethereum/networks/inkonchain.ts (1)

5-22:

Details

✅ Verification successful

Ensure EtherscanActivity handler is compatible with Ink Onchain explorer

The configuration is using the EtherscanActivity handler, but the block explorer URL is explorer.inkonchain.com. Verify if the Etherscan activity handler is compatible with the Ink Onchain explorer API structure.


🌐 Web query:

Does Ink Onchain explorer support Etherscan-compatible API endpoints?

💡 Result:

The Ink Onchain explorer does support Etherscan-compatible API endpoints, particularly for contract verification and interaction. This compatibility allows developers to use familiar Etherscan-like commands and endpoints when working with Ink's blockchain networks.

Key points supporting this compatibility include:

1. Contract Verification via Foundry
Ink's documentation demonstrates using Foundry's forge verify-contract command with an --etherscan-api-key parameter[5]. This implies compatibility with Etherscan's verification workflow:

forge verify-contract <ADDRESS> src/InkContract.sol:InkContract \
  --chain-id 763373 \
  --etherscan-api-key $BLOCKSCOUT_API_KEY

2. Routescan's Etherscan-Compatible Endpoints
The Ink ecosystem utilizes Routescan's multichain explorer API, which explicitly provides Etherscan-style endpoints for[8]:

  • Contract ABI retrieval (module=contract&action=getabi)
  • Source code verification (module=contract&action=verifysourcecode)
  • Verification status checks (module=contract&action=checkverifystatus)

3. Blockscout Integration
Ink's testnet explorer (explorer-sepolia.inkonchain.com) is built on Blockscout[7], a blockchain explorer that natively supports Etherscan-compatible APIs. This enables:

  • Similar parameter structures for API requests
  • Consistent response formats
  • Familiar authentication methods using API keys

4. Cross-Network API Consistency
Like Etherscan, Ink maintains consistent API endpoints across its networks (Mainnet and Sepolia Testnet)[6], allowing developers to reuse codebase configurations when switching between environments.

For developers, this compatibility reduces integration effort when:

  • Verifying smart contracts
  • Querying transaction data
  • Fetching ABI information
  • Monitoring contract interactions

The implementation follows RESTful principles and supports standard Etherscan modules including contract, account, and transaction endpoints[8][9].

Citations:


Compatibility Check: EtherscanActivity Handler Verified

The Ink Onchain explorer supports Etherscan-compatible API endpoints, so using the EtherscanActivity handler in the Ink network configuration is appropriate. No changes are necessary.

packages/extension/src/providers/common/ui/send-transaction/nft-select-list/components/nft-select-list-search.vue (2)

4-9: Improved two-way data binding with v-model

The input element now leverages Vue's two-way data binding with v-model, which is a best practice for form elements. This allows parent components to both read and update the search input value reactively.


15-16: Good use of modern Vue 3.4+ defineModel API

Using defineModel<string>() is an excellent approach for creating a reusable component with two-way binding support. This modern API simplifies the code by eliminating the need for manual prop/event handling.

packages/extension/src/providers/ethereum/networks/rsk.ts (2)

1-1: Icon format changed from SVG to WEBP

The icon import has been updated from SVG to WEBP format. This change aligns with the general effort to convert icons across the extension, which can improve loading performance. WEBP typically offers better compression than PNG but note that SVG (the previous format) provides better scaling for different screen densities.


23-23:

Details

❓ Verification inconclusive

Network endpoint updated to a new provider

The WebSocket node URL has been changed from 'wss://public-node.rsk.co/websocket' to 'wss://nodes.mewapi.io/ws/rsk'. Ensure that this new endpoint provides reliable service, has appropriate uptime guarantees, and maintains compatibility with all existing functionality.


🏁 Script executed:

#!/bin/bash
# Check if the new endpoint is referenced in other files or documentation
echo "Checking for references to the old and new RSK endpoints..."
rg "public-node.rsk.co/websocket" --type ts
rg "nodes.mewapi.io/ws/rsk" --type ts

# Check if other networks also use mewapi.io as a provider
echo "Checking if other networks use the same provider domain..."
rg "mewapi.io" --type ts

Length of output: 9942


RSK Endpoint Update – Manual Reliability Check Recommended

The RSK network WebSocket endpoint has been updated in packages/extension/src/providers/ethereum/networks/rsk.ts to use:

  node: 'wss://nodes.mewapi.io/ws/rsk',

Our repository search confirms that the old endpoint (public-node.rsk.co/websocket) is no longer referenced and that the new endpoint aligns with the patterns used for other networks. Please ensure that this provider offers the necessary reliability, uptime guarantees, and full compatibility with existing functionality—verify by running any additional monitoring or integration tests on your end.

packages/extension/src/providers/ethereum/networks/story.ts (4)

1-6: Clean implementation of new network file

The imports are correctly structured, bringing in the necessary types and utilities for creating a new EVM network.


7-22: Story network configuration looks good

The network configuration follows the established pattern for EVM networks with all required fields properly defined:

  • Network identifiers and URLs are well-specified
  • Chain ID '0x5EF' (1519 in decimal) is correctly formatted as a hex string
  • The network is appropriately marked as a mainnet (not a test network)

24-26: Network instance created and exported correctly

The EVM network is properly instantiated with the configuration and exported as the default, making it available for import by other modules.


21-21:

Details

❓ Verification inconclusive

Activity tracking not fully implemented

The activity handler returns an empty array for all requests, which suggests that transaction history and activity tracking for the Story network isn't yet fully implemented. This might limit the user experience when working with this network.

Are there plans to implement a proper activity handler for the Story network in a future update? Other networks typically use a more comprehensive activity handler implementation.


🏁 Script executed:

#!/bin/bash
# Check how other networks implement activity handlers
echo "Checking activity handler implementations in other network files..."
rg "activityHandler:" --type ts packages/extension/src/providers/ethereum/networks/ -C 2

Length of output: 31886


Activity Tracking for Story Network is Incomplete

In packages/extension/src/providers/ethereum/networks/story.ts (line 21), the activity handler is currently implemented as a stub:

activityHandler: wrapActivityHandler(() => Promise.resolve([])),

This approach is consistent with what we see in a few other networks (e.g., Palm, ZCD, Taraxa, Unichain) where a dummy handler is used, whereas networks like form-testnet and movr opt for a more detailed implementation (e.g., wrapping EtherscanActivity). Could you please clarify if there are plans to implement a full activity tracking solution for the Story network in a future update? If this stub is intended as a temporary measure, adding a TODO or comment for future consideration might help maintain clarity.

packages/extension/src/providers/common/ui/send-transaction/send-fee-select.vue (1)

9-10:

Details

❓ Verification inconclusive

Improved currency formatting consistency

Changed from using separate formatting value and symbol to using the unified parseCurrency filter. This likely provides a more consistent display of currency values across the application, especially for handling different locales and currency formatting rules.

Can you verify that the parseCurrency filter properly handles all the currency formatting scenarios that were previously managed by the combination of formatFiatValue and explicit symbol display?


🏁 Script executed:

#!/bin/bash
# Find the implementation of parseCurrency filter
echo "Looking for parseCurrency filter implementation..."
rg "parseCurrency" --type ts packages/extension

Length of output: 411


Unified Currency Formatting Verification

The unified parseCurrency filter is implemented in packages/extension/src/ui/action/utils/filters.ts, replacing the previous approach that combined formatFiatValue with manual symbol insertion. Please ensure that:

  • The filter consistently handles locale-specific currency formatting (including proper symbol display and numerical precision).
  • All edge cases (e.g., rounding behavior, negative values, and very large numbers) are correctly managed as they were with the legacy approach.
packages/extension/src/providers/bitcoin/libs/ss-fee-handler.ts (1)

25-29: Significant fee buffer increases for Bitcoin transactions

The buffer values for fee calculations have been substantially increased:

  • FASTEST: from +5 to +20 (4x increase)
  • FAST: from +3 to +12 (4x increase)
  • REGULAR: from +2 to +10 (5x increase)

These changes ensure faster transaction confirmations but might result in higher fees than necessary.

Consider adding a comment explaining why these specific buffer values were chosen, and whether there's data or metrics supporting these particular increases.

packages/extension/src/providers/ethereum/networks/taraxa.ts (1)

1-24:

Details

✅ Verification successful

New Taraxa network support added

The implementation correctly adds support for the Taraxa network with appropriate configuration including chain ID, RPC endpoint, and block explorer URLs.

The activity handler is currently a placeholder that returns an empty array. Ensure there's a plan to implement a proper activity handler for Taraxa in the future:


🏁 Script executed:

#!/bin/bash
# Check if other networks use similar placeholder activity handlers
rg -p "wrapActivityHandler\(\(\) => Promise\.resolve\(\[\]\)\)" --type ts packages/extension/src/providers/ethereum/networks/

Length of output: 2373


Taraxa network support verified

  • The Taraxa network configuration (chain ID, RPC endpoint, block explorer URLs, etc.) is correct and consistent with our EVM network setup.
  • The activity handler is intentionally implemented as a placeholder (using wrapActivityHandler(() => Promise.resolve([]))), matching the pattern used in other network files (e.g., op-bnb.ts, story.ts, etc.).
  • Moving forward, ensure that there's a clear plan or ticket to replace the placeholder with a proper activity handler when activity tracking for Taraxa is required.
packages/extension/src/libs/settings-state/types.ts (2)

5-7: Added currency settings storage key

Added a new storage key for currency settings that follows the established naming pattern.


34-36: Updated settings type with currency settings

The SettingsType interface has been appropriately updated to include the new currency settings.

packages/extension/src/providers/ethereum/libs/assets-handlers/types/tokenbalance-mew.ts (1)

68-76: Extended network support enhances ecosystem compatibility

The addition of these new network types to SupportedNetworkNames appropriately expands the wallet's compatibility with more blockchain networks. This aligns well with the PR objectives of adding support for new networks mentioned in the README.md changes.

packages/extension/src/libs/nft-handlers/simplehash.ts (2)

42-43: Support for Unichain and Berachain NFTs added

The addition of Unichain and Berachain to the supported networks for NFT handling matches the new network types added in the tokenbalance-mew.ts file. This ensures consistent implementation across the codebase.


51-52: Query string formatting improved

The query string construction has been simplified into a more concise format while maintaining the same functionality. This improves code readability.

packages/extension-bridge/package.json (1)

47-64: Dependencies updated to latest stable versions

The updates to various development dependencies keep the extension-bridge package current with latest bug fixes and improvements. These changes follow proper semantic versioning and should enhance stability and security.

packages/extension/src/providers/ethereum/networks/immutable-zkevm.ts (3)

1-1: Optimized image format for better performance

Converting the icon from PNG to WebP format will improve load times and reduce bandwidth usage due to WebP's better compression ratio while maintaining quality. This is part of a larger effort to optimize assets across the codebase.


7-7: Added asset information handler import

The import of the assets information handler from the mew module enables improved asset tracking functionality for this network.


24-24: Enhanced network configuration with asset information handler

Adding the assetsInfoHandler to the network options ensures consistent asset information handling across networks. This implementation aligns with how the handler is used in other network configurations, maintaining consistency throughout the codebase.

packages/extension/src/providers/common/ui/verify-transaction/verify-transaction-fee.vue (1)

4-5: Improved currency formatting implementation

The change from using hardcoded $ symbol with formatFiatValue to using the parseCurrency filter centralizes formatting logic and improves support for multiple currencies. This change aligns with the broader updates to currency handling in the extension.

packages/extension/src/providers/bitcoin/ui/send-transaction/index.vue (2)

59-60: Enhanced NFT selection visibility logic with reactive binding

The change from v-show="isOpenSelectNft" to v-if="!isSendToken" with v-model="isOpenSelectNft" improves component rendering logic by:

  1. Only mounting the NFT selection when not sending tokens
  2. Implementing two-way data binding with v-model for better reactivity

This approach properly implements Vue's reactivity system and aligns with the application's UI state management patterns.


83-83: Improved state management with v-model binding

Replacing the previous implementation with v-model="isOpenSelectFee" simplifies the component interaction by using Vue's built-in two-way binding instead of manually handling state through props and events. This change improves code maintainability and aligns with Vue best practices.

packages/extension/src/providers/ethereum/networks/base.ts (2)

1-1: Optimized icon format using WebP

Converting from SVG to WebP for the Base network icon improves performance as WebP typically offers better compression than SVG while maintaining quality, which is crucial for browser extensions where resource efficiency matters.


7-7: Added assets information handler for the Base network

The addition of assetsInfoHandler from MEW's implementation enhances the Base network configuration with improved asset information retrieval capabilities, providing users with more detailed and accurate asset data.

Also applies to: 25-25

packages/extension/src/providers/ethereum/networks/skale/skale-base.ts (1)

18-18: Unified WebP format for all SKALE network icons

Converting from PNG to WebP format for SKALE network icons improves performance and consistency. WebP offers better compression with maintained quality, reducing extension bundle size and improving load times. This change is consistent with the project-wide migration to WebP image assets.

Also applies to: 153-153, 230-230

packages/extension/src/libs/settings-state/index.ts (3)

75-78: Implementation looks good!

The setCurrencySettings method follows the same pattern as other setter methods in the class, persisting the currency settings to storage.


80-86: Clean implementation with proper defaults.

The getCurrencySettings method correctly defines a default currency value of 'USD' and merges it with any existing settings from storage. This ensures backward compatibility and prevents null values.


93-93: Appropriate integration with getAllSettings.

The new currency settings are correctly incorporated into the getAllSettings method, ensuring they're included in the complete settings object returned to callers.

Also applies to: 99-99

packages/extension/src/providers/ethereum/networks/skale/README.md (2)

33-33: Updated default icon format from PNG to WEBP.

This change is consistent with the broader effort to update icon formats across the codebase. WEBP typically offers better compression than PNG, which can improve load times.


49-49: Updated default token icon format to WEBP.

This change ensures consistency with the chain icon format change above. Both now reference WEBP as the default format.

packages/extension/src/providers/ethereum/networks/index.ts (2)

66-73: New network nodes added.

These imports bring in support for 8 new blockchain networks, expanding the wallet's compatibility.


149-157: New networks added to exports.

All 8 new networks are properly added to the default export object, making them accessible to the rest of the application.

packages/extension/src/providers/ethereum/libs/assets-handlers/token-lists.ts (2)

11-12: Added token list support for new networks.

Token list URLs have been added for all the new networks, ensuring users can view and interact with tokens on these chains. The URLs follow the established pattern of either using Coingecko's token API or a custom JSON file for networks not supported by Coingecko.

Also applies to: 21-22, 25-29, 35-52


8-52:

Details

✅ Verification successful

Verify all Coingecko platform IDs exist.

It would be prudent to verify that all the Coingecko platform IDs referenced (particularly for new networks like Gravity, Abstract, Story, Ink, Berachain, Unichain) exist and are correctly mapped.


🏁 Script executed:

#!/bin/bash
# Check if the CoingeckoPlatform enum includes all the platforms referenced in TokenList
grep -r "CoingeckoPlatform\." --include="*.ts" packages/extension/src/providers/ethereum/libs/assets-handlers/token-lists.ts | sort | uniq > /tmp/used_platforms.txt
grep -r "export enum CoingeckoPlatform" -A 100 --include="*.ts" packages/types/src | grep -o "[A-Za-z]\+ = " | sed 's/ = //' | sort > /tmp/defined_platforms.txt

echo "=== Platforms used in token-lists.ts ==="
cat /tmp/used_platforms.txt

echo -e "\n=== Defined CoingeckoPlatform enum values ==="
cat /tmp/defined_platforms.txt

echo -e "\n=== Checking for missing platforms ==="
grep -o "CoingeckoPlatform\.[A-Za-z]\+" /tmp/used_platforms.txt | sed 's/CoingeckoPlatform\.//' | sort > /tmp/used_platform_names.txt
comm -23 /tmp/used_platform_names.txt /tmp/defined_platforms.txt

Length of output: 5584


Coingecko Platform IDs Verification Complete
An updated verification using a Python-based diff confirms that all Coingecko platform identifiers referenced in token-lists.ts (including networks like Gravity, Abstract, Story, Ink, Berachain, and Unichain) are defined in the CoingeckoPlatform enum. No missing mappings were found.

packages/extension/src/libs/menu-state/index.ts (5)

1-10: Well-structured initialization of MenuState class.

The class is properly set up with a private storage property initialized in the constructor with the appropriate namespace. This follows good encapsulation practices.


12-14: LGTM: Clean implementation of setState method.

The setState method properly persists the state to browser storage using the defined storage key.


16-25: Good default state handling in getState method.

The implementation correctly handles the case when no state exists in storage by returning a new state object with sensible defaults. The method is well-typed with proper Promise return type.


27-35: Well-implemented state accessor and modifier methods.

Both getIsExpanded and setIsExpanded methods follow good practices:

  • getIsExpanded uses nullish coalescing for a sensible default
  • setIsExpanded preserves other state properties with the spread operator
  • Both methods reuse the getState and setState methods to avoid code duplication

37-38: Clean default export.

The class is properly exported as the default export for the module.

packages/extension/src/providers/common/ui/send-transaction/nft-select-list/index.vue (4)

1-22: Good improvement to dialog structure using app-dialog component.

The previous implementation has been replaced with a more reusable app-dialog component with proper v-model binding. This follows better component composition practices.


27-42: Well-implemented v-model binding with defineModel.

Using defineModel for the dialog is a modern Vue 3 approach that simplifies the component API and improves reusability.


62-63: Good addition of searchNFT ref for filtering.

Adding a reactive reference for the search term is a good practice for implementing search functionality.


65-83: Improved NFT filtering logic with search capability.

The code now:

  1. Ensures collectionName is always a string with the col.name || '' fallback
  2. Properly filters NFTs based on name or collection name when searchNFT has a value
  3. Uses case-insensitive matching for better user experience

This is a good improvement to the search functionality.

packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts (3)

124-127: Good addition of Base network support.

The Base network is properly added to the supportedNetworks object with appropriate platform configuration.


184-187: Good addition of ImmutableZkevm network support.

The ImmutableZkevm network is properly added to the supportedNetworks object.


196-219: Comprehensive expansion of network support.

Several new networks have been added to the supportedNetworks object:

  • Gravity
  • Abstract
  • Story
  • Ink
  • Bera
  • Unichain

Each with appropriate tbName and cgPlatform configuration.

packages/extension/package.json (3)

2-3: Version bump to 2.5.0.

Properly incremented version number for this release.


25-57: Updated dependencies to improve security and features.

Updates to several critical blockchain library dependencies, including:

These updates likely include important bug fixes and feature enhancements.


91-141: Updated development dependencies to latest versions.

Development tooling has been updated to the latest versions, which is good practice for maintaining a modern development environment and resolving potential security issues in the toolchain.

Comment on lines +7 to +22
const absOptions: EvmNetworkOptions = {
name: NetworkNames.Abstract,
name_long: 'Abstract',
homePage: 'https://www.abs.xyz/',
blockExplorerTX: 'https://abscan.org/tx/[[txHash]]',
blockExplorerAddr: 'https://abscan.org/address/[[address]]',
chainID: '0xAB5',
isTestNetwork: false,
currencyName: 'ETH',
currencyNameLong: 'ETH',
node: 'https://api.mainnet.abs.xyz',
icon,
coingeckoID: 'ethereum',
assetsInfoHandler,
activityHandler: wrapActivityHandler(() => Promise.resolve([])),
};
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Verify Abstract network configuration details

The configuration appears comprehensive, but please verify:

  1. Whether ETH is the correct native currency name for Abstract network
  2. If "ethereum" is the right coingeckoID for this network
  3. If the empty activity handler is intentional or should be replaced with a proper implementation

🏁 Script executed:

#!/bin/bash
# Check if Abstract has its own coingecko ID
curl -s "https://api.coingecko.com/api/v3/coins/list" | jq '.[] | select(.name | test("(?i)abstract"))' 

# Verify chain ID in public chain registries
curl -s "https://chainid.network/chains.json" | jq '.[] | select(.chainId == 2741)'

Length of output: 1342


Action Required: Update Abstract Network Configuration

  • Native Currency Name: The public chain registry indicates the network’s native currency has the symbol "ETH" but a full name of "Ether". Please confirm if using "ETH" for both currencyName and currencyNameLong aligns with your design or if the full name "Ether" is preferred.
  • CoinGecko ID: The current configuration sets the coingeckoID to "ethereum", but the CoinGecko API query for Abstract-related tokens returned IDs like "abstract-liquid-staked-eth". Please verify and update this value to the correct CoinGecko identifier for the Abstract network.
  • Activity Handler: The current stub (wrapActivityHandler(() => Promise.resolve([]))) returns an empty array. Confirm whether this is an intentional temporary placeholder or if it should be replaced with a proper implementation.

@olgakup olgakup self-requested a review April 8, 2025 20:31
@kvhnuke kvhnuke merged commit c11549f into main Apr 8, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants