Skip to content

devop: prep release v2.5.0#637

Merged
kvhnuke merged 167 commits intodevelopfrom
devop/pakage-updates
Apr 8, 2025
Merged

devop: prep release v2.5.0#637
kvhnuke merged 167 commits intodevelopfrom
devop/pakage-updates

Conversation

@kvhnuke
Copy link
Contributor

@kvhnuke kvhnuke commented Mar 13, 2025

Summary by CodeRabbit

  • New Features

    • Added enhanced currency settings management, allowing you to save and retrieve your preferred currency.
    • Expanded blockchain network support, offering integration with several new networks and updated network icons.
  • UI Improvements

    • Refined fee and transaction displays with a unified currency formatting for clearer visual presentation.
    • Enhanced NFT search and selection for improved usability.
  • Documentation

    • Updated supported chains list to reflect the new blockchain integrations.
  • Dependency Updates

    • Updated various development dependencies to their latest versions for improved performance and security.

@coderabbitai
Copy link

coderabbitai bot commented Mar 13, 2025

Walkthrough

This pull request includes extensive dependency updates across multiple package.json files, new UI modifications to fee and currency formatting, and added event-tracking functionalities in transaction flows. New methods for handling currency settings and menu state management have been introduced. Additionally, numerous network configuration files have been updated to support new networks and to convert their icon assets from SVG/PNG to WEBP. A new GitHub Actions workflow has been added for testing swap providers, and various fee calculations and token list URLs have been updated.

Changes

File(s) Change Summary
package.json, packages/extension-bridge/package.json, packages/extension/package.json Updated test script and dependency versions (e.g., @commitlint/cli, @swc/core, TypeScript, etc.).
packages/extension/src/libs/settings-state/index.ts
packages/extension/src/libs/settings-state/types.ts
Added async methods setCurrencySettings and getCurrencySettings; created a new enum entry and interface for currency settings and updated SettingsType.
UI Components (send-fee-select.vue, send-input-amount.vue, verify-transaction-fee.vue, others) Replaced fiat display logic: removed separate fiat symbol, now using the parseCurrency filter; added v-model bindings and improved send amount logic.
Ethereum & related network files (assetinfo-mew.ts, token-lists.ts, tokenbalance-mew.ts, various networks/*.ts) Added support for new networks (Base, ImmutableZkevm, Gravity, Abstract, Story, Ink, Bera, Unichain, etc.); updated token list URLs; incorporated new assetsInfoHandler where applicable; converted icons from SVG/PNG to WEBP.
Kadena files (kda_switchNetwork.ts, UI components under Kadena) Introduced event tracking by importing and calling trackNetwork and trackSendEvents in network switching and transaction flows.
.github/workflows/test-swap.yml Added a new GitHub Actions workflow to run tests for all swap providers.
Bitcoin files (SSFeeHandler, various networks) & README.md Adjusted sat/byte fee calculation formulas; updated supported chains list in README.
Menu state files (menu-state/index.ts, menu-state/types.ts) Introduced MenuState class for managing menu state via BrowserStorage with new enum and interface.
Polkadot files (various network and asset files) Updated icon import statements from SVG to WEBP.
Other Ethereum/Polkadot network files Uniform update of icon file format from SVG/PNG to WEBP; minor adjustments in configuration.
NFT handlers and new-features.ts Added new network entries and restructured supported network arrays.

Sequence Diagram(s)

sequenceDiagram
    participant U as User
    participant S as SettingsState
    participant Str as Storage
    U->>S: setCurrencySettings(newCurrencySettings)
    S->>Str: Store newCurrencySettings (key: "currency-settings-state")
    Note over S: Currency settings stored
    U->>S: getCurrencySettings()
    S->>Str: Retrieve currency settings
    Str-->>S: Return stored settings
    S->>S: Merge with default (USD) if missing
    S-->>U: Return final currency settings
Loading
sequenceDiagram
    participant U as User
    participant C as Transaction Component
    participant M as Metrics (trackSendEvents/trackNetwork)
    U->>C: Open transaction interface (onMounted)
    C->>M: trackSendEvents(SendOpen, network)
    U->>C: Initiate transaction
    C->>M: trackSendEvents(SendApprove, network)
    alt Transaction successful
        C->>M: trackSendEvents(SendComplete, network)
    else Transaction fails
        C->>M: trackSendEvents(SendFailed, network, error)
    end
Loading

Possibly related PRs

  • Feat/currency exchange #645: The changes in the main PR, which involve updates to the package.json file for dependency versions, are related to the retrieved PR as both involve similar updates to the devDependencies section of their respective package.json files, specifically updating the same dependencies like @commitlint/cli and @commitlint/config-conventional.

  • Release: v2.4.0 #621: The changes in the main PR, which involve updates to the package.json file's scripts and devDependencies, are related to the retrieved PR as both involve modifications to the same dependencies, specifically @commitlint/cli, @commitlint/config-conventional, and @swc/core, indicating a direct connection at the code level.


📜 Recent review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 3706b62 and 813cb68.

📒 Files selected for processing (1)
  • packages/extension/src/libs/updates-state/index.ts (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: buildAll
  • GitHub Check: test
🔇 Additional comments (1)
packages/extension/src/libs/updates-state/index.ts (1)

17-17: Bug fix: Properly await asynchronous storage operation

Great fix! Adding the await keyword ensures that the method properly waits for the Promise returned by this.storage.get() to resolve before proceeding with the rest of the logic. Without this await, the function might have returned a Promise instead of the actual state value, potentially causing inconsistent behavior in features that rely on this state.

✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 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.

@github-actions
Copy link

github-actions bot commented Mar 13, 2025

💼 Build Files
chrome: enkrypt-chrome-813cb688.zip
firefox: enkrypt-firefox-813cb688.zip

💉 Virus total analysis
chrome: 813cb688
firefox: 813cb688

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: 0

🧹 Nitpick comments (8)
packages/extension/src/libs/nft-handlers/simplehash.ts (1)

50-52: Consider adding a TypeScript type guard for the supportedNetworks key access

The current implementation may cause TypeScript to complain about using a string index to access values in an object with specific keys.

Consider adding a type guard:

-  : `${SH_ENDPOINT}owners_v2?chains=${supportedNetworks[network.name as keyof typeof supportedNetworks]
+  : `${SH_ENDPOINT}owners_v2?chains=${supportedNetworks[network.name as NetworkNames]

Or alternatively make the network.name access more type-safe:

-  : `${SH_ENDPOINT}owners_v2?chains=${supportedNetworks[network.name as keyof typeof supportedNetworks]
+  : `${SH_ENDPOINT}owners_v2?chains=${supportedNetworks[network.name as keyof typeof supportedNetworks] || ''
packages/extension/src/providers/ethereum/networks/unichain.ts (1)

8-26: Rename constants to be consistent with network name.

There are some naming inconsistencies in the constant names that could be improved for clarity:

  1. unchainOptions should be renamed to unichainOptions to match the network name
  2. unchain should be renamed to unichain for consistency
-const unchainOptions: EvmNetworkOptions = {
+const unichainOptions: EvmNetworkOptions = {
  name: NetworkNames.Unichain,
  name_long: 'Unichain',
  homePage: 'https://www.unichain.org/',
  blockExplorerTX: 'https://uniscan.xyz/tx/[[txHash]]',
  blockExplorerAddr: 'https://uniscan.xyz/address/[[address]]',
  chainID: '0x82',
  isTestNetwork: false,
  currencyName: 'ETH',
  currencyNameLong: 'ETH',
  node: 'https://mainnet.unichain.org',
  icon,
  coingeckoID: 'ethereum',
  NFTHandler: shNFTHandler,
  assetsInfoHandler,
  activityHandler: wrapActivityHandler(() => Promise.resolve([])),
};

-const unchain = new EvmNetwork(unchainOptions);
+const unichain = new EvmNetwork(unichainOptions);
packages/extension/src/providers/ethereum/networks/abstract.ts (1)

1-26: Consider adding NFT handler for consistency.

The Abstract network configuration doesn't include an NFT handler (shNFTHandler), which is included in other network configurations like Berachain and Unichain. Consider adding it for consistency if the network supports NFTs.

import icon from './icons/abstract.webp';
import { NetworkNames } from '@enkryptcom/types';
import { EvmNetwork, EvmNetworkOptions } from '../types/evm-network';
import wrapActivityHandler from '@/libs/activity-state/wrap-activity-handler';
import assetsInfoHandler from '@/providers/ethereum/libs/assets-handlers/assetinfo-mew';
+import shNFTHandler from '@/libs/nft-handlers/simplehash';

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,
+  NFTHandler: shNFTHandler,
  activityHandler: wrapActivityHandler(() => Promise.resolve([])),
};
packages/extension/src/providers/ethereum/networks/coti.ts (2)

7-20: Configuration looks good, but missing Coingecko integration

The COTI network configuration is mostly correct, but unlike other network configurations (e.g., Taraxa, Gravity), this one doesn't include coingeckoID and coingeckoPlatform properties, which might be needed for price tracking.


22-22: Variable name inconsistent with configuration

The variable name cotiDevnet suggests a development/test network, but the configuration is for mainnet (isTestNetwork: false and using mainnet URLs). Consider renaming to cotiMainnet or simply coti for consistency.

-const cotiDevnet = new EvmNetwork(coti);
+const cotiNetwork = new EvmNetwork(coti);
packages/extension/src/providers/ethereum/networks/story.ts (1)

7-22: Network configuration looks correct, but missing coingeckoPlatform

The Story network configuration is properly structured with almost all necessary parameters, but it's missing the coingeckoPlatform property that is present in other network configurations like Taraxa and Gravity. Consider adding this property for consistency.

const storyOptions: EvmNetworkOptions = {
  name: NetworkNames.Story,
  name_long: 'Story',
  homePage: 'https://www.story.foundation/',
  blockExplorerTX: 'https://www.storyscan.xyz/tx/[[txHash]]',
  blockExplorerAddr: 'https://www.storyscan.xyz/address/[[address]]',
  chainID: '0x5EF',
  isTestNetwork: false,
  currencyName: 'IP',
  currencyNameLong: 'IP',
  node: 'https://mainnet.storyrpc.io',
  icon,
  coingeckoID: 'story-2',
+ coingeckoPlatform: CoingeckoPlatform.Story,
  assetsInfoHandler,
  activityHandler: wrapActivityHandler(() => Promise.resolve([])),
};

Note: You'll need to add the appropriate import and enum value if it doesn't already exist.

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

149-157: Consider consistent variable naming for network nodes.

There's a slight inconsistency in the variable naming. Most network nodes follow the networkNode pattern (e.g., beraNode), but some don't have the Node suffix (e.g., taraxa, coti).

-  taraxa: taraxa,
+  taraxa: taraxaNode,
   '5ire': _5ireNode,
   bera: beraNode,
   story: storyNode,
   gravity: gravityNode,
   unichain: unichainNode,
   abstract: abstractNode,
   ink: inkNode,
-  coti: coti
+  coti: cotiNode
packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts (1)

282-285: Optimize accumulator to avoid O(n²) time complexity.

The static analysis tool detected a performance issue with using spread syntax on accumulators, which can lead to O(n²) time complexity.

      : tokens.reduce(
-        (obj, cur) => ({ ...obj, [cur.contract]: null }),
+        (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 3b9b2d4 and a0f2397.

📒 Files selected for processing (17)
  • README.md (2 hunks)
  • packages/extension/src/libs/nft-handlers/simplehash.ts (1 hunks)
  • packages/extension/src/providers/common/libs/new-features.ts (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/abstract.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/bera.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/coti.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/gravity.ts (1 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/story.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/taraxa.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/unichain.ts (1 hunks)
  • packages/types/src/networks.ts (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/extension/src/providers/ethereum/libs/assets-handlers/token-lists.ts
🧰 Additional context used
🧬 Code Definitions (1)
packages/extension/src/libs/nft-handlers/simplehash.ts (1)
packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts (1)
  • network (261-396)
🪛 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)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: buildAll
🔇 Additional comments (14)
packages/extension/src/providers/ethereum/libs/activity-handlers/providers/etherscan/configs.ts (1)

73-74: LGTM: Network endpoints added for Ink and Coti

The addition of Ink and Coti network endpoints to the NetworkEndpoints record aligns with the other changes in the PR for supporting these new networks.

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

4-11: Updated networks in the newNetworks array

The newNetworks array has been completely replaced with new entries for Story, Abstract, Gravity, Unichain, Bera, Ink, Taraxa, and Coti networks. This update correctly aligns with the other changes in this PR that add support for these networks.

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

42-43: LGTM: Added NFT support for Unichain and Bera networks

Added Unichain and Berachain to the SimplHash NFT handler's supported networks. This aligns with the other changes in the PR that add support for these networks.

packages/types/src/networks.ts (2)

101-108: LGTM: New network names added

Added new entries to the NetworkNames enum for Story, Abstract, Unichain, Ink, Gravity, Bera, Taraxa, and Coti networks. This extends the available network types throughout the application.


167-173: LGTM: New Coingecko platform identifiers added

Added corresponding Coingecko platform identifiers for the new networks, which enables market data retrieval for tokens on these networks.

README.md (1)

103-118: LGTM: New blockchain networks added to supported chains list.

The additions of Taraxa, Story, Abstract, Berachain, Ink Onchain, Unichain, and Gravity to the README.md is consistent with the overall PR objective of preparing for the v2.5.0 release.

🧰 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/bera.ts (1)

1-29: LGTM: New Berachain network configuration properly implemented.

The implementation correctly configures the Berachain network with appropriate settings including chain ID, currency details, and required handlers. The code follows the established pattern for network definitions.

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

1-24: Network configuration looks correct

The Taraxa network configuration is properly structured with all necessary parameters:

  • Chain ID, block explorer URLs, and RPC node URL are correctly defined
  • Network name references the proper enum value
  • Coingecko integration is properly configured

Note that the activity handler currently returns an empty array, which is fine for initial implementation but may need to be updated later if specific activity tracking for Taraxa becomes available.

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

1-27: Network configuration looks correct

The Gravity network configuration is properly structured with all necessary parameters. It includes:

  • Proper chain ID (0x659) and network name references
  • Block explorer URLs with correct placeholders
  • Valid RPC node URL
  • Complete Coingecko integration
  • Asset information handler integration

As with the Taraxa network, the activity handler returns an empty array which is appropriate for initial implementation.

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

68-76: LGTM: New networks added to SupportedNetworkNames type.

The additions to the SupportedNetworkNames type look good. These new network names align with the PR objective to add support for new networks.

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

1-27: LGTM: New EVM network configuration for Ink Onchain.

The implementation for the Ink Onchain network is complete and follows the same pattern as other network configurations. All required properties are properly defined.

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

66-73: LGTM: New network imports added.

The new network imports are properly added and follow the existing import pattern.

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

124-127: LGTM: New network entries added to supportedNetworks.

The additions to the supportedNetworks object for the new networks look good and follow the established pattern.

Also applies to: 184-187, 196-219


72-75:

Details

❓ Verification inconclusive

Verify removal of tbName property from Rootstock network.

The tbName: 'rsk' property has been removed from the Rootstock network entry. Please confirm this is intentional and won't impact token balance functionality for this network.


🏁 Script executed:

#!/bin/bash
# Description: Check if tbName property is used for the Rootstock network

# Search for references to Rootstock tbName
echo "Checking for references to tbName for Rootstock..."
rg -A 5 "tbName.*rsk" --type ts
rg -A 5 "supportedNetworks\[.*Rootstock\]\.tbName" --type ts

# Check where tbName is used in the getTokens function
echo "Checking usage of tbName in getTokens function..."
rg -A 10 -B 10 "getTokens.*tbName" --type ts

# Check if Rootstock ever uses the blockscout endpoint
echo "Checking if Rootstock network uses blockscout endpoint..."
rg -A 3 "supportedNetworks\[.*Rootstock\]\.bsEndpoint" --type ts

Length of output: 555


Action Required: Verify Removal of tbName from Rootstock Configuration

  • Automated searches for the tbName property (including checks in the getTokens function and blockscout endpoint usage) did not return any references.
  • This suggests that the removal of tbName: 'rsk' from the Rootstock network configuration in packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts may be safe.
  • However, due to the low-confidence output from the automated verification, please manually confirm that this removal does not impact token balance functionality for Rootstock.

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: 3

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between a0f2397 and 74b39b2.

⛔ Files ignored due to path filters (78)
  • 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
  • packages/extension/src/providers/polkadot/networks/icons/kusama.svg is excluded by !**/*.svg
📒 Files selected for processing (115)
  • packages/extension/src/libs/menu-state/index.ts (1 hunks)
  • packages/extension/src/libs/menu-state/types.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/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 (4 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/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/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/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/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/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/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/tlos.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/vic.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/xlayer.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/zcd.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/zkgoerli.ts (1 hunks)
  • packages/extension/src/providers/ethereum/networks/zksync.ts (1 hunks)
  • packages/extension/src/providers/ethereum/types/custom-evm-network.ts (1 hunks)
  • packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue (1 hunks)
  • packages/extension/src/providers/ethereum/ui/send-transaction/components/send-token-select.vue (1 hunks)
  • packages/extension/src/providers/ethereum/ui/send-transaction/index.vue (6 hunks)
  • packages/extension/src/providers/ethereum/ui/send-transaction/verify-transaction/index.vue (1 hunks)
  • packages/extension/src/providers/ethereum/ui/wallet-add-ethereum-network.vue (1 hunks)
  • packages/extension/src/providers/kadena/networks/kadena-testnet.ts (1 hunks)
  • packages/extension/src/providers/kadena/networks/kadena.ts (1 hunks)
  • packages/extension/src/providers/kadena/ui/send-transaction/components/send-fee-display.vue (1 hunks)
  • packages/extension/src/providers/kadena/ui/send-transaction/components/send-fee-select.vue (1 hunks)
  • packages/extension/src/providers/kadena/ui/send-transaction/index.vue (4 hunks)
  • packages/extension/src/providers/kadena/ui/send-transaction/verify-transaction/index.vue (5 hunks)
  • packages/extension/src/providers/polkadot/networks/acala/acala.ts (1 hunks)
  • packages/extension/src/providers/polkadot/networks/acala/assets/acala-assets.ts (1 hunks)
  • packages/extension/src/providers/polkadot/networks/acala/assets/karura-assets.ts (1 hunks)
  • packages/extension/src/providers/polkadot/networks/acala/karura.ts (1 hunks)
  • packages/extension/src/providers/polkadot/networks/assethub/assethub-dot.ts (1 hunks)
  • packages/extension/src/providers/polkadot/networks/assethub/assethub-ksm.ts (1 hunks)
  • packages/extension/src/providers/polkadot/networks/astar/assets/astar-assets.ts (1 hunks)
  • packages/extension/src/providers/polkadot/networks/astar/astar.ts (1 hunks)
  • packages/extension/src/providers/polkadot/networks/astar/shiden.ts (1 hunks)
  • packages/extension/src/providers/polkadot/networks/bifrost/assets/bifrost-assets.ts (1 hunks)
  • packages/extension/src/providers/polkadot/networks/bifrost/kusama.ts (1 hunks)
  • packages/extension/src/providers/polkadot/networks/bifrost/polkadot.ts (1 hunks)
  • packages/extension/src/providers/polkadot/networks/edgeware.ts (1 hunks)
✅ Files skipped from review due to trivial changes (92)
  • packages/extension/src/providers/ethereum/networks/celo.ts
  • packages/extension/src/providers/ethereum/networks/syscoin/rollux.ts
  • packages/extension/src/providers/bitcoin/networks/bitcoin.ts
  • packages/extension/src/providers/ethereum/networks/dmt.ts
  • packages/extension/src/providers/ethereum/networks/fraxtal.ts
  • packages/extension/src/providers/ethereum/networks/skale/exorde.ts
  • packages/extension/src/providers/ethereum/networks/forma.ts
  • packages/extension/src/providers/ethereum/networks/gno.ts
  • packages/extension/src/providers/ethereum/networks/syscoin/nevm.ts
  • packages/extension/src/providers/ethereum/networks/shib.ts
  • packages/extension/src/providers/polkadot/networks/astar/astar.ts
  • packages/extension/src/providers/polkadot/networks/edgeware.ts
  • packages/extension/src/providers/polkadot/networks/assethub/assethub-dot.ts
  • packages/extension/src/providers/ethereum/networks/mode.ts
  • packages/extension/src/providers/ethereum/networks/cagaAnkara.ts
  • packages/extension/src/providers/ethereum/networks/matic.ts
  • packages/extension/src/providers/ethereum/networks/ham.ts
  • packages/extension/src/providers/ethereum/networks/ontevm.ts
  • packages/extension/src/providers/ethereum/networks/skale/titan.ts
  • packages/extension/src/providers/ethereum/networks/vic.ts
  • packages/extension/src/providers/bitcoin/networks/bitcoin-testnet.ts
  • packages/extension/src/providers/ethereum/networks/sdn.ts
  • packages/extension/src/providers/ethereum/networks/zcd.ts
  • packages/extension/src/providers/ethereum/networks/form-testnet.ts
  • packages/extension/src/providers/ethereum/networks/etc.ts
  • packages/extension/src/providers/ethereum/networks/avax.ts
  • packages/extension/src/providers/ethereum/networks/edg.ts
  • packages/extension/src/providers/ethereum/networks/degen.ts
  • packages/extension/src/providers/ethereum/networks/godwoken.ts
  • packages/extension/src/providers/polkadot/networks/astar/shiden.ts
  • packages/extension/src/providers/ethereum/networks/bitrock.ts
  • packages/extension/src/providers/ethereum/networks/syscoin/nevm-testnet.ts
  • packages/extension/src/providers/ethereum/networks/maticzk.ts
  • packages/extension/src/providers/ethereum/networks/rari.ts
  • packages/extension/src/providers/ethereum/networks/movr.ts
  • packages/extension/src/providers/ethereum/networks/skale/calypso.ts
  • packages/extension/src/providers/bitcoin/networks/dogecoin.ts
  • packages/extension/src/providers/ethereum/networks/sepolia.ts
  • packages/extension/src/providers/ethereum/networks/linea.ts
  • packages/extension/src/providers/ethereum/networks/okc.ts
  • packages/extension/src/providers/ethereum/networks/skale/europa.ts
  • packages/extension/src/providers/ethereum/networks/tlos.ts
  • packages/extension/src/providers/ethereum/networks/rsk-testnet.ts
  • packages/extension/src/providers/polkadot/networks/bifrost/polkadot.ts
  • packages/extension/src/providers/ethereum/networks/glmr.ts
  • packages/extension/src/providers/kadena/networks/kadena.ts
  • packages/extension/src/providers/ethereum/ui/send-transaction/components/send-token-select.vue
  • packages/extension/src/providers/polkadot/networks/bifrost/kusama.ts
  • packages/extension/src/providers/kadena/networks/kadena-testnet.ts
  • packages/extension/src/providers/ethereum/networks/zksync.ts
  • packages/extension/src/providers/ethereum/networks/xlayer.ts
  • packages/extension/src/providers/ethereum/networks/aat.ts
  • packages/extension/src/providers/ethereum/networks/coti-devnet.ts
  • packages/extension/src/providers/ethereum/networks/astr.ts
  • packages/extension/src/providers/ethereum/networks/5ire.ts
  • packages/extension/src/providers/ethereum/networks/karura.ts
  • packages/extension/src/providers/ethereum/networks/zkgoerli.ts
  • packages/extension/src/providers/ethereum/networks/ftm.ts
  • packages/extension/src/providers/ethereum/networks/pop-apex.ts
  • packages/extension/src/providers/ethereum/networks/canto.ts
  • packages/extension/src/providers/ethereum/networks/skale/blockBrawlers.ts
  • packages/extension/src/providers/ethereum/networks/holesky.ts
  • packages/extension/src/providers/ethereum/networks/palm.ts
  • packages/extension/src/providers/polkadot/networks/acala/karura.ts
  • packages/extension/src/providers/ethereum/ui/wallet-add-ethereum-network.vue
  • packages/extension/src/providers/ethereum/networks/puppy.ts
  • packages/extension/src/providers/ethereum/networks/skale/cryptoBlades.ts
  • packages/extension/src/providers/ethereum/networks/op-bnb.ts
  • packages/extension/src/providers/polkadot/networks/astar/assets/astar-assets.ts
  • packages/extension/src/providers/ethereum/networks/arb-nova.ts
  • packages/extension/src/providers/ethereum/networks/scroll.ts
  • packages/extension/src/providers/ethereum/networks/eth.ts
  • packages/extension/src/providers/ethereum/networks/skale/cryptoColosseum.ts
  • packages/extension/src/providers/ethereum/networks/skale/razor.ts
  • packages/extension/src/providers/polkadot/networks/bifrost/assets/bifrost-assets.ts
  • packages/extension/src/providers/ethereum/networks/aurora.ts
  • packages/extension/src/providers/bitcoin/networks/litecoin.ts
  • packages/extension/src/providers/ethereum/networks/skale/nebula.ts
  • packages/extension/src/providers/ethereum/networks/arb.ts
  • packages/extension/src/providers/ethereum/networks/syscoin/rollux-testnet.ts
  • packages/extension/src/providers/ethereum/networks/op.ts
  • packages/extension/src/providers/ethereum/networks/aa.ts
  • packages/extension/src/providers/ethereum/networks/bsc.ts
  • packages/extension/src/providers/polkadot/networks/assethub/assethub-ksm.ts
  • packages/extension/src/providers/polkadot/networks/acala/assets/karura-assets.ts
  • packages/extension/src/providers/polkadot/networks/acala/assets/acala-assets.ts
  • packages/extension/src/providers/polkadot/networks/acala/acala.ts
  • packages/extension/src/providers/ethereum/networks/skale/README.md
  • packages/extension/src/providers/ethereum/networks/skale/skale-base.ts
  • packages/extension/src/providers/ethereum/networks/form.ts
  • packages/extension/src/providers/ethereum/types/custom-evm-network.ts
  • packages/extension/src/providers/ethereum/networks/manta-pacific.ts
🚧 Files skipped from review as they are similar to previous changes (12)
  • packages/extension/src/providers/ethereum/libs/activity-handlers/providers/etherscan/configs.ts
  • packages/extension/src/providers/common/ui/send-transaction/send-input-amount.vue
  • packages/extension/src/providers/kadena/ui/send-transaction/components/send-fee-display.vue
  • packages/extension/src/providers/kadena/ui/send-transaction/index.vue
  • packages/extension/src/providers/ethereum/networks/rsk.ts
  • packages/extension/src/providers/common/ui/verify-transaction/verify-transaction-fee.vue
  • packages/extension/src/providers/ethereum/networks/immutable-zkevm.ts
  • packages/extension/src/providers/ethereum/ui/send-transaction/index.vue
  • packages/extension/src/providers/common/ui/send-transaction/send-fee-select.vue
  • packages/extension/src/providers/ethereum/networks/coti.ts
  • packages/extension/src/providers/ethereum/networks/base.ts
  • packages/extension/src/providers/kadena/ui/send-transaction/components/send-fee-select.vue
🧰 Additional context used
🧬 Code Graph Analysis (2)
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)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: buildAll
🔇 Additional comments (32)
packages/extension/src/providers/common/ui/verify-transaction/verify-transaction-network.vue (1)

40-45: Good CSS enhancement for network icons

Adding object-fit: contain is a great improvement as it ensures network icons maintain their aspect ratio while fitting within the specified dimensions. This prevents distortion of network logos that may have different original aspect ratios, creating a more polished UI experience.

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

4-9: Input element updated to support two-way data binding

The input field has been modified to use Vue's v-model directive, which creates a two-way binding between the input value and the new model variable. This enables the component to expose its state to parent components via v-model.


16-16: Implemented defineModel for modern two-way binding support

The use of defineModel<string>() is a clean implementation of Vue 3.4's new feature for simplifying components that support v-model. This replaces the older pattern of manually defining props and emitting events for two-way binding.

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

2-7: Improved UI by migrating to app-dialog component

The implementation has been restructured to use the app-dialog component with v-model binding for better modal management. This provides a more consistent UI pattern across the application and simplifies dialog visibility control.


8-8: Added search functionality with two-way binding

The search component now uses v-model to bind to the new searchNFT ref, which enables dynamic filtering of the NFT list. This leverages the updated nft-select-list-search component's two-way binding capabilities.


40-40: Added missing AppDialog import

The new import statement correctly adds the dialog component required for the template changes.


42-42: Implemented defineModel for dialog visibility

Using defineModel<boolean>() for the dialog's visibility state allows parent components to control the dialog with a simple v-model binding, following Vue 3.4's best practices for component design.


62-63: Added reactive reference for search functionality

The new searchNFT ref creates a reactive state for the search input, which will trigger reactivity when the user types in the search field.


72-81: Implemented search filtering logic

The computed property now includes filtering logic based on the search term, checking both NFT names and collection names. The case-insensitive comparison with toLowerCase() ensures a user-friendly search experience.

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

62-72: Improved component communication with v-model directive.

The addition of v-model="isProcessing" to the send-process component enhances the communication between parent and child components by enabling two-way data binding for the processing state.

This change allows the send-process component to directly update the isProcessing state from within its implementation, which streamlines the component interaction pattern and reduces the need for explicit event handling.

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

68-78: Improved component communication with v-model directive.

Adding v-model="isProcessing" to the send-process component enables two-way data binding for the processing state, which is consistent with similar changes made in the Bitcoin provider implementation.

This standardization of component communication patterns across different blockchain providers will make the codebase more maintainable and easier to understand.

packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue (1)

103-110: Standardized component props and communication pattern.

The changes to the transaction-fee-view component:

  1. Added v-model="isOpenSelectFee" for two-way binding of the fee selection state
  2. Simplified :is-popup="true" to is-popup (equivalent shorthand in Vue)

These changes align with the standardization of data binding practices across the application and simplify the component API. The two-way binding eliminates the need for explicit event handlers like @close-popup that were previously required.

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

1-3: Nice implementation of StorageKeys enum.

The StorageKeys enum provides a clear central location for defining storage key constants, making the code more maintainable and less prone to string typos when accessing storage.


5-7: Good interface design for menu state.

The IState interface is simple and focused with a clear purpose. The boolean isExpanded property adequately represents the expanded/collapsed state of a menu component.

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

1-3: Proper imports and type usage.

The imports are appropriate and the code correctly imports the types from the types.ts file.


5-10: Good class structure with proper initialization.

The MenuState class is well-organized with appropriate encapsulation using a private storage property and clear initialization in the constructor.


12-14: Method implementation looks good.

The setState method correctly persists the state object to storage.


27-30: Proper default handling for getIsExpanded.

The method correctly handles default cases using nullish coalescing, ensuring a boolean is always returned.


31-35: Good implementation of setIsExpanded.

The method properly uses state immutability by creating a new state object with the spread operator.


39-40: Appropriate default export.

Exporting the MenuState class as the default export makes importing and using this module clean and straightforward.

packages/extension/src/providers/kadena/ui/send-transaction/verify-transaction/index.vue (7)

67-67: Good enhancement with v-model binding for isProcessing

Adding v-model on the isProcessing prop enables two-way data binding, allowing the send-process component to update the processing state from within. This improves component communication and state management.


105-106: Good addition of event tracking imports

Adding metrics tracking capabilities is valuable for monitoring user interactions and diagnosing issues in production. These imports support the new event tracking functionality throughout the component.


140-140: Nice implementation of event tracking at verification start

Tracking the SendVerify event when the component mounts provides visibility into how often users reach the verification screen and which networks they're using.


152-154: Good event tracking for transaction approval

Tracking when users approve transactions provides important metrics on user behavior and conversion rates through the transaction flow.


165-167: Good event tracking for successful transactions

Tracking successful transactions provides important visibility into completed operations and helps measure the effectiveness of the transaction flow.


213-217: Great error tracking implementation

Adding transaction failure tracking with the specific error message and network information will be extremely valuable for diagnosing issues in production. The additional console error logging also helps with debugging.


164-164:

Details

✅ Verification successful

Verify removal of chainId parameter

The chainId parameter has been removed from the sendTransaction call. Ensure this doesn't break functionality.


🏁 Script executed:

#!/bin/bash
# Search for sendTransaction method definition to verify if chainId is required
rg -A 5 -B 5 "sendTransaction.*\(" --glob="**/kadena/**"

Length of output: 2453


Verified: Removal of chainId parameter is safe

  • The call at packages/extension/src/providers/kadena/ui/send-transaction/verify-transaction/index.vue now passes only the transaction object.
  • In packages/extension/libs/api.ts, the sendTransaction method computes the chainId internally via this.getChainId() and creates the client accordingly.

The change does not break functionality.

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

124-127: Network addition looks good

The addition of Base network follows the established pattern with appropriate tbName and cgPlatform properties.


184-187: Network addition looks good

The addition of ImmutableZkevm network follows the established pattern with appropriate tbName and cgPlatform properties.


196-219: Multiple network additions look good

The additions of Gravity, Abstract, Story, Ink, Bera, and Unichain networks follow the established pattern with appropriate properties.

Note: For Bera network, there's a slight naming difference (NetworkNames.Bera vs CoingeckoPlatform.Berachain), but this appears intentional and shouldn't cause issues.


72-75: Removal of tbName property for Rootstock

The tbName property has been removed from the Rootstock network configuration. This appears to be intentional since networks with bsEndpoint: true use getBlockscoutBalances() (as seen in line 232), which doesn't require the tbName property.

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

82-88:

Details

❓ Verification inconclusive

Transaction fee view component refactoring

The component interaction has been simplified by replacing the separate :show-fees prop and @close-popup event handler with a single v-model="isOpenSelectFee" directive. This is a cleaner approach that follows Vue's recommended patterns for two-way data binding.

This change should work correctly as long as the transaction-fee-view component is properly set up to handle v-model binding by emitting the 'update:modelValue' event.


🏁 Script executed:

#!/bin/bash
# Check if the transaction-fee-view component correctly implements v-model
grep -A 20 "emits\|defineEmits" packages/extension/src/action/views/transaction-fee/index.vue

# Also check if it properly handles model value updates
grep -A 5 "modelValue\|v-model" packages/extension/src/action/views/transaction-fee/index.vue

Length of output: 381


Action Required: Confirm the transaction-fee-view Component Location and v‑model Implementation

It appears that the file path provided in the original verification attempt (packages/extension/src/action/views/transaction-fee/index.vue) could not be located. Please verify that the transaction-fee-view component’s implementation:

  • Exists in the codebase under the expected or an updated location (for example, it might now reside in a components directory).
  • Properly implements Vue’s two‑way binding by correctly emitting the update:modelValue event to support the v‑model directive.

The refactoring to use a single v‑model="isOpenSelectFee" remains a cleaner approach as long as the component is set up accordingly. Kindly verify the correct file path and component implementation.

@kvhnuke kvhnuke mentioned this pull request Apr 8, 2025
@kvhnuke kvhnuke merged commit caeaeef into develop Apr 8, 2025
5 checks passed
@kvhnuke kvhnuke deleted the devop/pakage-updates branch April 8, 2025 20:11
Copy link

@krud491 krud491 left a comment

Choose a reason for hiding this comment

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

Ok

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.

8 participants

Comments