Skip to content

Commit e3fdc76

Browse files
authored
Merge pull request #724 from enkryptcom/develop
Release: v2.9.0
2 parents ccbae8f + dc24615 commit e3fdc76

60 files changed

Lines changed: 3211 additions & 1635 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
"devDependencies": {
3535
"@commitlint/cli": "^19.8.1",
3636
"@commitlint/config-conventional": "^19.8.1",
37-
"@swc/core": "^1.11.29",
37+
"@swc/core": "^1.12.1",
3838
"concurrently": "^9.1.2",
3939
"husky": "^9.1.7",
4040
"node-notifier": "^10.0.1",

packages/extension-bridge/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@
4646
"devDependencies": {
4747
"@types/node": "^22.15.24",
4848
"@types/webextension-polyfill": "^0.12.3",
49-
"@typescript-eslint/eslint-plugin": "^8.33.0",
50-
"@typescript-eslint/parser": "^8.33.0",
51-
"bumpp": "^10.1.1",
52-
"eslint": "^9.27.0",
49+
"@typescript-eslint/eslint-plugin": "^8.34.1",
50+
"@typescript-eslint/parser": "^8.34.1",
51+
"bumpp": "^10.2.0",
52+
"eslint": "^9.29.0",
5353
"eslint-config-airbnb-base": "^15.0.0",
5454
"eslint-config-prettier": "^10.1.5",
5555
"eslint-import-resolver-alias": "^1.1.2",
@@ -61,6 +61,6 @@
6161
"tsup": "^8.5.0",
6262
"type-fest": "^4.41.0",
6363
"typescript": "^5.8.3",
64-
"typescript-eslint": "8.33.0"
64+
"typescript-eslint": "8.34.1"
6565
}
6666
}

packages/extension/package.json

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@enkryptcom/extension",
3-
"version": "2.8.0",
3+
"version": "2.9.0",
44
"private": true,
55
"type": "module",
66
"scripts": {
@@ -23,7 +23,7 @@
2323
"watch:firefox": "yarn prebuild && cross-env BROWSER='firefox' vite"
2424
},
2525
"dependencies": {
26-
"@amplitude/analytics-browser": "^2.17.6",
26+
"@amplitude/analytics-browser": "^2.17.10",
2727
"@enkryptcom/extension-bridge": "workspace:^",
2828
"@enkryptcom/hw-wallets": "workspace:^",
2929
"@enkryptcom/keyring": "workspace:^",
@@ -38,19 +38,19 @@
3838
"@ethereumjs/wallet": "^2.0.4",
3939
"@kadena/client": "^1.17.1",
4040
"@kadena/pactjs-cli": "^1.17.1",
41-
"@ledgerhq/hw-transport-webusb": "^6.29.5",
41+
"@ledgerhq/hw-transport-webusb": "^6.29.6",
4242
"@metamask/eth-sig-util": "^8.2.0",
4343
"@metaplex-foundation/mpl-bubblegum": "^5.0.1",
4444
"@metaplex-foundation/umi": "^1.2.0",
4545
"@metaplex-foundation/umi-bundle-defaults": "^1.2.0",
46-
"@polkadot/api": "^16.1.1",
47-
"@polkadot/extension-inject": "^0.58.10",
48-
"@polkadot/keyring": "^13.5.1",
49-
"@polkadot/rpc-provider": "^16.1.1",
50-
"@polkadot/types": "^16.1.1",
51-
"@polkadot/types-known": "^16.1.1",
46+
"@polkadot/api": "^16.2.2",
47+
"@polkadot/extension-inject": "^0.59.2",
48+
"@polkadot/keyring": "^13.5.2",
49+
"@polkadot/rpc-provider": "^16.2.2",
50+
"@polkadot/types": "^16.2.2",
51+
"@polkadot/types-known": "^16.2.2",
5252
"@polkadot/ui-shared": "^3.14.1",
53-
"@polkadot/util": "^13.5.1",
53+
"@polkadot/util": "^13.5.2",
5454
"@polkadot/wasm-crypto": "^7.4.1",
5555
"@solana-developers/helpers": "2.8.0",
5656
"@solana/spl-token": "^0.4.13",
@@ -73,7 +73,7 @@
7373
"moment": "^2.30.1",
7474
"nanoevents": "^9.1.0",
7575
"pact-lang-api": "^4.3.6",
76-
"pinia": "^3.0.2",
76+
"pinia": "^3.0.3",
7777
"qrcode.vue": "^3.6.0",
7878
"switch-ts": "^1.1.1",
7979
"url-parse": "^1.5.10",
@@ -90,16 +90,16 @@
9090
},
9191
"devDependencies": {
9292
"@crxjs/vite-plugin": "^2.0.0-beta.32",
93-
"@rollup/plugin-commonjs": "^28.0.3",
93+
"@rollup/plugin-commonjs": "^28.0.6",
9494
"@rollup/plugin-inject": "^5.0.5",
9595
"@rollup/plugin-json": "^6.1.0",
9696
"@rollup/plugin-node-resolve": "^16.0.1",
9797
"@rollup/plugin-replace": "^6.0.2",
9898
"@rollup/plugin-terser": "^0.4.4",
99-
"@rollup/plugin-typescript": "^12.1.2",
100-
"@tsconfig/node20": "^20.1.5",
99+
"@rollup/plugin-typescript": "^12.1.3",
100+
"@tsconfig/node20": "^20.1.6",
101101
"@types/bs58": "^5.0.0",
102-
"@types/chrome": "^0.0.323",
102+
"@types/chrome": "^0.0.326",
103103
"@types/ethereumjs-abi": "^0.6.5",
104104
"@types/events": "^3.0.3",
105105
"@types/fs-extra": "^11.0.4",
@@ -114,30 +114,30 @@
114114
"@types/zxcvbn": "^4.4.5",
115115
"@vitejs/plugin-vue": "^5.2.4",
116116
"@vue/eslint-config-prettier": "^10.2.0",
117-
"@vue/eslint-config-typescript": "^14.5.0",
117+
"@vue/eslint-config-typescript": "^14.5.1",
118118
"@vue/tsconfig": "^0.7.0",
119119
"@vueuse/core": "^13.3.0",
120120
"cross-env": "^7.0.3",
121-
"eslint": "^9.27.0",
122-
"eslint-plugin-vue": "^10.1.0",
121+
"eslint": "^9.29.0",
122+
"eslint-plugin-vue": "^10.2.0",
123123
"fs-extra": "^11.3.0",
124124
"jsdom": "^26.1.0",
125125
"less": "^4.3.0",
126126
"less-loader": "^12.3.0",
127127
"npm-run-all2": "^8.0.4",
128128
"prettier": "^3.5.3",
129129
"rimraf": "^6.0.1",
130-
"rollup": "^4.41.1",
131-
"rollup-plugin-visualizer": "^6.0.1",
130+
"rollup": "^4.43.0",
131+
"rollup-plugin-visualizer": "^6.0.3",
132132
"semver": "^7.7.2",
133-
"systeminformation": "^5.27.1",
133+
"systeminformation": "^5.27.3",
134134
"tsup": "^8.5.0",
135135
"typescript": "~5.8.3",
136136
"url": "^0.11.4",
137137
"vite": "^6.3.5",
138138
"vite-plugin-node-polyfills": "0.23.0",
139139
"vite-tsconfig-paths": "^5.1.4",
140-
"vitest": "^3.1.4",
140+
"vitest": "^3.2.4",
141141
"vue-tsc": "^2.2.10",
142142
"webextension-polyfill": "^0.12.0"
143143
},
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import BrowserStorage from '../common/browser-storage';
2+
import { InternalStorageNamespace } from '@/types/provider';
3+
import { StorageKeys, IState } from './types';
4+
5+
export default class BannersState {
6+
private storage: BrowserStorage;
7+
8+
constructor() {
9+
this.storage = new BrowserStorage(InternalStorageNamespace.bannersState);
10+
}
11+
12+
private async getOrInitializeState(): Promise<IState> {
13+
const state: IState | undefined = await this.storage.get(
14+
StorageKeys.bannersInfo,
15+
);
16+
if (state) {
17+
return state;
18+
}
19+
const newState: IState = {
20+
isHideSolanStakingBanner: false,
21+
isHideNetworkAssetSolanStakingBanner: false,
22+
};
23+
await this.storage.set(StorageKeys.bannersInfo, newState);
24+
return newState;
25+
}
26+
27+
async resetBanners(): Promise<void> {
28+
const state = await this.getOrInitializeState();
29+
state.isHideNetworkAssetSolanStakingBanner = false;
30+
state.isHideSolanStakingBanner = false;
31+
await this.storage.set(StorageKeys.bannersInfo, state);
32+
}
33+
34+
async showSolanaStakingBanner(): Promise<boolean> {
35+
const state = await this.getOrInitializeState();
36+
return !state.isHideSolanStakingBanner;
37+
}
38+
39+
async showNetworkAssetsSolanaStakingBanner(): Promise<boolean> {
40+
const state = await this.getOrInitializeState();
41+
return !state.isHideNetworkAssetSolanStakingBanner;
42+
}
43+
44+
async hideNetworkAssetsSolanaStakingBanner() {
45+
const state = await this.getOrInitializeState();
46+
state.isHideNetworkAssetSolanStakingBanner = true;
47+
await this.storage.set(StorageKeys.bannersInfo, state);
48+
}
49+
50+
async hideSolanaStakingBanner() {
51+
const state = await this.getOrInitializeState();
52+
state.isHideSolanStakingBanner = true;
53+
await this.storage.set(StorageKeys.bannersInfo, state);
54+
}
55+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export enum StorageKeys {
2+
bannersInfo = 'banners-info',
3+
}
4+
5+
export type IState = {
6+
isHideSolanStakingBanner: boolean;
7+
isHideNetworkAssetSolanStakingBanner: boolean;
8+
};

packages/extension/src/libs/metrics/index.ts

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ import {
1212
SettingEventType,
1313
SwapEventType,
1414
UpdatesEventType,
15-
UpdatesOpenLocation
15+
UpdatesOpenLocation,
16+
SolanaStakingBannerEvents,
1617
} from './types';
1718

1819
const metrics = new Metrics();
@@ -25,19 +26,19 @@ const trackNetwork = (
2526
event: NetworkChangeEvents,
2627
options: {
2728
provider?: ProviderName;
28-
network?: NetworkNames,
29-
networkTab?: string,
30-
networkType?: NetworkType,
31-
isPinned?: boolean,
32-
sortOption?: string,
33-
customRpcUrl?: string,
34-
customNetworkName?: string,
35-
customNetworkNameLong?: string,
36-
customNetworkCurrency?: string,
37-
customNetworkCurrencyLong?: string,
38-
customChainId?: string,
39-
customBlockExplorerUrlTx?: string
40-
customBlockExplorerUrlAddr?: string
29+
network?: NetworkNames;
30+
networkTab?: string;
31+
networkType?: NetworkType;
32+
isPinned?: boolean;
33+
sortOption?: string;
34+
customRpcUrl?: string;
35+
customNetworkName?: string;
36+
customNetworkNameLong?: string;
37+
customNetworkCurrency?: string;
38+
customNetworkCurrencyLong?: string;
39+
customChainId?: string;
40+
customBlockExplorerUrlTx?: string;
41+
customBlockExplorerUrlAddr?: string;
4142
},
4243
) => {
4344
metrics.track('network', { event, ...options });
@@ -93,14 +94,16 @@ const trackDAppsEvents = (
9394
metrics.track('dapps', { event, ...options });
9495
};
9596

96-
const trackUpdatesEvents = (event: UpdatesEventType, options: {
97-
network: NetworkNames;
98-
location?: UpdatesOpenLocation;
99-
duration?: number;
100-
}): void => {
97+
const trackUpdatesEvents = (
98+
event: UpdatesEventType,
99+
options: {
100+
network: NetworkNames;
101+
location?: UpdatesOpenLocation;
102+
duration?: number;
103+
},
104+
): void => {
101105
metrics.track('updatesClick', { event, ...options });
102-
103-
}
106+
};
104107
const optOutofMetrics = (optOut: boolean) => {
105108
if (!__IS_FIREFOX__) {
106109
metrics.setOptOut(false);
@@ -112,6 +115,10 @@ const optOutofMetrics = (optOut: boolean) => {
112115
metrics.setOptOut(optOut);
113116
};
114117

118+
const trackSolanaStakingBanner = (event: SolanaStakingBannerEvents) => {
119+
metrics.track('solStakingBanner', { event });
120+
};
121+
115122
export {
116123
trackNetwork,
117124
trackSwapEvents,
@@ -121,5 +128,6 @@ export {
121128
trackDAppsEvents,
122129
optOutofMetrics,
123130
trackGenericEvents,
124-
trackUpdatesEvents
131+
trackUpdatesEvents,
132+
trackSolanaStakingBanner,
125133
};

packages/extension/src/libs/metrics/types.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,10 @@ export enum UpdatesEventType {
6969

7070
export enum UpdatesOpenLocation {
7171
settings = 'settings',
72-
logo = "logo",
72+
logo = 'logo',
73+
}
74+
75+
export enum SolanaStakingBannerEvents {
76+
SolanaWalletClicked = 'sol_staking_banner.solana_wallet.clicked',
77+
NetworkListClicked = 'sol_staking_banner.network_list.clicked',
7378
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { NetworkNames } from '@enkryptcom/types';
22

3-
const newNetworks: NetworkNames[] = [NetworkNames.Hemi];
3+
const newNetworks: NetworkNames[] = [NetworkNames.Sonic];
44
const newSwaps: NetworkNames[] = [];
55

66
export { newNetworks, newSwaps };

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ const NetworkEndpoints: Record<string, string> = {
5858
[NetworkNames.Rollux]: 'https://explorer.rollux.com/',
5959
[NetworkNames.Blast]: 'https://api.blastscan.io/',
6060
[NetworkNames.Sanko]: 'https://explorer.sanko.xyz/',
61+
[NetworkNames.Sonic]: 'https://api.sonicscan.org/',
6162
[NetworkNames.Degen]: 'https://explorer.degen.tips/',
6263
[NetworkNames.Ham]: 'https://explorer.ham.fun/',
6364
[NetworkNames.ImmutableZkevm]: 'https://explorer.immutable.com/',

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,10 @@ const supportedNetworks: Record<SupportedNetworkNames, SupportedNetwork> = {
133133
cgPlatform: CoingeckoPlatform.Rollux,
134134
bsEndpoint: true,
135135
},
136+
[NetworkNames.Sonic]: {
137+
tbName: 'sonic',
138+
cgPlatform: CoingeckoPlatform.Sonic,
139+
},
136140
[NetworkNames.Telos]: {
137141
tbName: 'tlos',
138142
cgPlatform: CoingeckoPlatform.Telos,

0 commit comments

Comments
 (0)