Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
a97128a
Created Solana stacking banners
mihailpolev May 30, 2025
13638c0
fix: node urls
kvhnuke Jun 10, 2025
d121d26
devop: update hw wallets
kvhnuke Jun 10, 2025
26cf4a7
devop: ledger typed signing complete
kvhnuke Jun 13, 2025
a88a428
feat: Add Sonic network support - Chain ID 146, RPC wss://rpc.sonicla…
sonicseg Jun 14, 2025
dd0c018
devop: trezor typed msgs
kvhnuke Jun 16, 2025
d860aea
fix: trezor typed msg signing
kvhnuke Jun 16, 2025
ef0b76b
fix: to address
kvhnuke Jun 16, 2025
73e81f6
devop: bump swap version
kvhnuke Jun 16, 2025
6753404
devop: updgrade packages
kvhnuke Jun 17, 2025
1ebe1e3
Merge pull request #714 from sonicseg/main
kvhnuke Jun 17, 2025
28f0514
fix: build
kvhnuke Jun 17, 2025
c6938f6
Merge branch 'devop/release-2-9' of github.com:enkryptcom/enKrypt int…
kvhnuke Jun 17, 2025
d9200b3
fix: to address identicon
kvhnuke Jun 17, 2025
754a0ed
fix: copy
kvhnuke Jun 17, 2025
fbb8d67
devop: prep release
kvhnuke Jun 17, 2025
86e9085
fix: tests
kvhnuke Jun 17, 2025
bd5ec9c
devop: merge
kvhnuke Jun 17, 2025
855b2ce
Merge pull request #711 from enkryptcom/fix/node-urls
kvhnuke Jun 17, 2025
f1f4567
fix: enable changelly swaps on rootstock
ahsan-javaiid Jun 18, 2025
eaf7e7e
devop: rebuild
kvhnuke Jun 18, 2025
8c4474d
Merge pull request #713 from enkryptcom/devop/hw-typed-msg
kvhnuke Jun 18, 2025
dc644eb
Merge pull request #716 from ahsan-javaiid/fix/rootstock-swaps
kvhnuke Jun 18, 2025
93eb3e6
add Metrics
mihailpolev Jun 20, 2025
10f5e84
Merge branch 'devop/release-2-9' into feature/solana-staking-banner
kvhnuke Jun 20, 2025
26381e0
fix: solana banner
kvhnuke Jun 20, 2025
4072980
fix: solana banner
kvhnuke Jun 20, 2025
caf9330
fix: solana banner
kvhnuke Jun 20, 2025
e694cbf
Merge pull request #708 from enkryptcom/feature/solana-staking-banner
kvhnuke Jun 20, 2025
c473486
Fix Solana staking banner UI bugs
mihailpolev Jun 21, 2025
9736708
fix
mihailpolev Jun 24, 2025
e17849e
devop: lint
kvhnuke Jun 24, 2025
43efc38
Merge pull request #720 from enkryptcom/fix/solana-staking-banner-fix
kvhnuke Jun 24, 2025
6207ecc
fix: typos
kvhnuke Jun 24, 2025
250286a
fix: asyn
kvhnuke Jun 24, 2025
34171cc
Merge pull request #722 from enkryptcom/fix/solana-staking-banner-fix
kvhnuke Jun 24, 2025
dc24615
Merge pull request #715 from enkryptcom/devop/release-2-9
kvhnuke Jun 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"devDependencies": {
"@commitlint/cli": "^19.8.1",
"@commitlint/config-conventional": "^19.8.1",
"@swc/core": "^1.11.29",
"@swc/core": "^1.12.1",
"concurrently": "^9.1.2",
"husky": "^9.1.7",
"node-notifier": "^10.0.1",
Expand Down
10 changes: 5 additions & 5 deletions packages/extension-bridge/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@
"devDependencies": {
"@types/node": "^22.15.24",
"@types/webextension-polyfill": "^0.12.3",
"@typescript-eslint/eslint-plugin": "^8.33.0",
"@typescript-eslint/parser": "^8.33.0",
"bumpp": "^10.1.1",
"eslint": "^9.27.0",
"@typescript-eslint/eslint-plugin": "^8.34.1",
"@typescript-eslint/parser": "^8.34.1",
"bumpp": "^10.2.0",
"eslint": "^9.29.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-prettier": "^10.1.5",
"eslint-import-resolver-alias": "^1.1.2",
Expand All @@ -61,6 +61,6 @@
"tsup": "^8.5.0",
"type-fest": "^4.41.0",
"typescript": "^5.8.3",
"typescript-eslint": "8.33.0"
"typescript-eslint": "8.34.1"
}
}
44 changes: 22 additions & 22 deletions packages/extension/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@enkryptcom/extension",
"version": "2.8.0",
"version": "2.9.0",
"private": true,
"type": "module",
"scripts": {
Expand All @@ -23,7 +23,7 @@
"watch:firefox": "yarn prebuild && cross-env BROWSER='firefox' vite"
},
"dependencies": {
"@amplitude/analytics-browser": "^2.17.6",
"@amplitude/analytics-browser": "^2.17.10",
"@enkryptcom/extension-bridge": "workspace:^",
"@enkryptcom/hw-wallets": "workspace:^",
"@enkryptcom/keyring": "workspace:^",
Expand All @@ -38,19 +38,19 @@
"@ethereumjs/wallet": "^2.0.4",
"@kadena/client": "^1.17.1",
"@kadena/pactjs-cli": "^1.17.1",
"@ledgerhq/hw-transport-webusb": "^6.29.5",
"@ledgerhq/hw-transport-webusb": "^6.29.6",
"@metamask/eth-sig-util": "^8.2.0",
"@metaplex-foundation/mpl-bubblegum": "^5.0.1",
"@metaplex-foundation/umi": "^1.2.0",
"@metaplex-foundation/umi-bundle-defaults": "^1.2.0",
"@polkadot/api": "^16.1.1",
"@polkadot/extension-inject": "^0.58.10",
"@polkadot/keyring": "^13.5.1",
"@polkadot/rpc-provider": "^16.1.1",
"@polkadot/types": "^16.1.1",
"@polkadot/types-known": "^16.1.1",
"@polkadot/api": "^16.2.2",
"@polkadot/extension-inject": "^0.59.2",
"@polkadot/keyring": "^13.5.2",
"@polkadot/rpc-provider": "^16.2.2",
"@polkadot/types": "^16.2.2",
"@polkadot/types-known": "^16.2.2",
"@polkadot/ui-shared": "^3.14.1",
"@polkadot/util": "^13.5.1",
"@polkadot/util": "^13.5.2",
"@polkadot/wasm-crypto": "^7.4.1",
"@solana-developers/helpers": "2.8.0",
"@solana/spl-token": "^0.4.13",
Expand All @@ -73,7 +73,7 @@
"moment": "^2.30.1",
"nanoevents": "^9.1.0",
"pact-lang-api": "^4.3.6",
"pinia": "^3.0.2",
"pinia": "^3.0.3",
"qrcode.vue": "^3.6.0",
"switch-ts": "^1.1.1",
"url-parse": "^1.5.10",
Expand All @@ -90,16 +90,16 @@
},
"devDependencies": {
"@crxjs/vite-plugin": "^2.0.0-beta.32",
"@rollup/plugin-commonjs": "^28.0.3",
"@rollup/plugin-commonjs": "^28.0.6",
"@rollup/plugin-inject": "^5.0.5",
"@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-node-resolve": "^16.0.1",
"@rollup/plugin-replace": "^6.0.2",
"@rollup/plugin-terser": "^0.4.4",
"@rollup/plugin-typescript": "^12.1.2",
"@tsconfig/node20": "^20.1.5",
"@rollup/plugin-typescript": "^12.1.3",
"@tsconfig/node20": "^20.1.6",
"@types/bs58": "^5.0.0",
"@types/chrome": "^0.0.323",
"@types/chrome": "^0.0.326",
"@types/ethereumjs-abi": "^0.6.5",
"@types/events": "^3.0.3",
"@types/fs-extra": "^11.0.4",
Expand All @@ -114,30 +114,30 @@
"@types/zxcvbn": "^4.4.5",
"@vitejs/plugin-vue": "^5.2.4",
"@vue/eslint-config-prettier": "^10.2.0",
"@vue/eslint-config-typescript": "^14.5.0",
"@vue/eslint-config-typescript": "^14.5.1",
"@vue/tsconfig": "^0.7.0",
"@vueuse/core": "^13.3.0",
"cross-env": "^7.0.3",
"eslint": "^9.27.0",
"eslint-plugin-vue": "^10.1.0",
"eslint": "^9.29.0",
"eslint-plugin-vue": "^10.2.0",
"fs-extra": "^11.3.0",
"jsdom": "^26.1.0",
"less": "^4.3.0",
"less-loader": "^12.3.0",
"npm-run-all2": "^8.0.4",
"prettier": "^3.5.3",
"rimraf": "^6.0.1",
"rollup": "^4.41.1",
"rollup-plugin-visualizer": "^6.0.1",
"rollup": "^4.43.0",
"rollup-plugin-visualizer": "^6.0.3",
"semver": "^7.7.2",
"systeminformation": "^5.27.1",
"systeminformation": "^5.27.3",
"tsup": "^8.5.0",
"typescript": "~5.8.3",
"url": "^0.11.4",
"vite": "^6.3.5",
"vite-plugin-node-polyfills": "0.23.0",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^3.1.4",
"vitest": "^3.2.4",
"vue-tsc": "^2.2.10",
"webextension-polyfill": "^0.12.0"
},
Expand Down
55 changes: 55 additions & 0 deletions packages/extension/src/libs/banners-state/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import BrowserStorage from '../common/browser-storage';
import { InternalStorageNamespace } from '@/types/provider';
import { StorageKeys, IState } from './types';

export default class BannersState {
private storage: BrowserStorage;

constructor() {
this.storage = new BrowserStorage(InternalStorageNamespace.bannersState);
}

private async getOrInitializeState(): Promise<IState> {
const state: IState | undefined = await this.storage.get(
StorageKeys.bannersInfo,
);
if (state) {
return state;
}
const newState: IState = {
isHideSolanStakingBanner: false,
isHideNetworkAssetSolanStakingBanner: false,
};
await this.storage.set(StorageKeys.bannersInfo, newState);
return newState;
}

async resetBanners(): Promise<void> {
const state = await this.getOrInitializeState();
state.isHideNetworkAssetSolanStakingBanner = false;
state.isHideSolanStakingBanner = false;
await this.storage.set(StorageKeys.bannersInfo, state);
}

async showSolanaStakingBanner(): Promise<boolean> {
const state = await this.getOrInitializeState();
return !state.isHideSolanStakingBanner;
}

async showNetworkAssetsSolanaStakingBanner(): Promise<boolean> {
const state = await this.getOrInitializeState();
return !state.isHideNetworkAssetSolanStakingBanner;
}

async hideNetworkAssetsSolanaStakingBanner() {
const state = await this.getOrInitializeState();
state.isHideNetworkAssetSolanStakingBanner = true;
await this.storage.set(StorageKeys.bannersInfo, state);
}

async hideSolanaStakingBanner() {
const state = await this.getOrInitializeState();
state.isHideSolanStakingBanner = true;
await this.storage.set(StorageKeys.bannersInfo, state);
}
}
8 changes: 8 additions & 0 deletions packages/extension/src/libs/banners-state/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
export enum StorageKeys {
bannersInfo = 'banners-info',
}

export type IState = {
isHideSolanStakingBanner: boolean;
isHideNetworkAssetSolanStakingBanner: boolean;
};
52 changes: 30 additions & 22 deletions packages/extension/src/libs/metrics/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ import {
SettingEventType,
SwapEventType,
UpdatesEventType,
UpdatesOpenLocation
UpdatesOpenLocation,
SolanaStakingBannerEvents,
} from './types';

const metrics = new Metrics();
Expand All @@ -25,19 +26,19 @@ const trackNetwork = (
event: NetworkChangeEvents,
options: {
provider?: ProviderName;
network?: NetworkNames,
networkTab?: string,
networkType?: NetworkType,
isPinned?: boolean,
sortOption?: string,
customRpcUrl?: string,
customNetworkName?: string,
customNetworkNameLong?: string,
customNetworkCurrency?: string,
customNetworkCurrencyLong?: string,
customChainId?: string,
customBlockExplorerUrlTx?: string
customBlockExplorerUrlAddr?: string
network?: NetworkNames;
networkTab?: string;
networkType?: NetworkType;
isPinned?: boolean;
sortOption?: string;
customRpcUrl?: string;
customNetworkName?: string;
customNetworkNameLong?: string;
customNetworkCurrency?: string;
customNetworkCurrencyLong?: string;
customChainId?: string;
customBlockExplorerUrlTx?: string;
customBlockExplorerUrlAddr?: string;
},
) => {
metrics.track('network', { event, ...options });
Expand Down Expand Up @@ -93,14 +94,16 @@ const trackDAppsEvents = (
metrics.track('dapps', { event, ...options });
};

const trackUpdatesEvents = (event: UpdatesEventType, options: {
network: NetworkNames;
location?: UpdatesOpenLocation;
duration?: number;
}): void => {
const trackUpdatesEvents = (
event: UpdatesEventType,
options: {
network: NetworkNames;
location?: UpdatesOpenLocation;
duration?: number;
},
): void => {
metrics.track('updatesClick', { event, ...options });

}
};
const optOutofMetrics = (optOut: boolean) => {
if (!__IS_FIREFOX__) {
metrics.setOptOut(false);
Expand All @@ -112,6 +115,10 @@ const optOutofMetrics = (optOut: boolean) => {
metrics.setOptOut(optOut);
};

const trackSolanaStakingBanner = (event: SolanaStakingBannerEvents) => {
metrics.track('solStakingBanner', { event });
};

export {
trackNetwork,
trackSwapEvents,
Expand All @@ -121,5 +128,6 @@ export {
trackDAppsEvents,
optOutofMetrics,
trackGenericEvents,
trackUpdatesEvents
trackUpdatesEvents,
trackSolanaStakingBanner,
};
7 changes: 6 additions & 1 deletion packages/extension/src/libs/metrics/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,5 +69,10 @@ export enum UpdatesEventType {

export enum UpdatesOpenLocation {
settings = 'settings',
logo = "logo",
logo = 'logo',
}

export enum SolanaStakingBannerEvents {
SolanaWalletClicked = 'sol_staking_banner.solana_wallet.clicked',
NetworkListClicked = 'sol_staking_banner.network_list.clicked',
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { NetworkNames } from '@enkryptcom/types';

const newNetworks: NetworkNames[] = [NetworkNames.Hemi];
const newNetworks: NetworkNames[] = [NetworkNames.Sonic];
const newSwaps: NetworkNames[] = [];

export { newNetworks, newSwaps };
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ const NetworkEndpoints: Record<string, string> = {
[NetworkNames.Rollux]: 'https://explorer.rollux.com/',
[NetworkNames.Blast]: 'https://api.blastscan.io/',
[NetworkNames.Sanko]: 'https://explorer.sanko.xyz/',
[NetworkNames.Sonic]: 'https://api.sonicscan.org/',
[NetworkNames.Degen]: 'https://explorer.degen.tips/',
[NetworkNames.Ham]: 'https://explorer.ham.fun/',
[NetworkNames.ImmutableZkevm]: 'https://explorer.immutable.com/',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,10 @@ const supportedNetworks: Record<SupportedNetworkNames, SupportedNetwork> = {
cgPlatform: CoingeckoPlatform.Rollux,
bsEndpoint: true,
},
[NetworkNames.Sonic]: {
tbName: 'sonic',
cgPlatform: CoingeckoPlatform.Sonic,
},
[NetworkNames.Telos]: {
tbName: 'tlos',
cgPlatform: CoingeckoPlatform.Telos,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ const TokenList: Record<SupportedNetworkNames, string> = {
[NetworkNames.Ink]: `https://tokens.coingecko.com/${CoingeckoPlatform.Ink}/all.json`,
[NetworkNames.Bera]: `https://tokens.coingecko.com/${CoingeckoPlatform.Berachain}/all.json`,
[NetworkNames.Unichain]: `https://tokens.coingecko.com/${CoingeckoPlatform.Unichain}/all.json`,
[NetworkNames.Sonic]: `https://tokens.coingecko.com/${CoingeckoPlatform.Sonic}/all.json`,
[NetworkNames.Conflux]: `https://tokens.coingecko.com/${CoingeckoPlatform.Conflux}/all.json`,
};

const getKnownNetworkTokens = async (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ export type SupportedNetworkNames =
| NetworkNames.Telos
| NetworkNames.SyscoinNEVM
| NetworkNames.Rollux
| NetworkNames.Sonic
| NetworkNames.Sanko
| NetworkNames.Degen
| NetworkNames.Blast
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ class Transaction {
feeHistory: {} as FeeHistoryResult,
}));
// Gets the number of transactions that they will have sent by the next pending block
const nonce = await this.web3.getTransactionCount(this.tx.from, 'pending');
const nonce = await this.web3.getTransactionCount(this.tx.from.toLowerCase(), 'pending'); // web3 rejects rootstock checksum addr so use lowercase addr
if (!isFeeMarketNetwork) {
// Legacy transaction
const gasPrice = await this.web3.getGasPrice();
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions packages/extension/src/providers/ethereum/networks/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ import syscoinNEVMNode from './syscoin/nevm';
import rolluxTestNode from './syscoin/rollux-testnet';
import rolluxNode from './syscoin/rollux';
import cagaAnkara from './cagaAnkara';
import sonicNode from './sonic';
import telosNode from './tlos';
import blastNode from './blast';
import sankoNode from './dmt';
Expand Down Expand Up @@ -130,6 +131,7 @@ export default {
rolluxTest: rolluxTestNode,
rollux: rolluxNode,
cagaAnkara: cagaAnkara,
sonic: sonicNode,
telos: telosNode,
blast: blastNode,
sanko: sankoNode,
Expand Down
2 changes: 1 addition & 1 deletion packages/extension/src/providers/ethereum/networks/sdn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const sdnOptions: EvmNetworkOptions = {
isTestNetwork: false,
currencyName: 'SDN',
currencyNameLong: 'Shiden',
node: 'wss://shiden.public.blastapi.io',
node: 'wss://shiden.api.onfinality.io/public-ws',
icon,
coingeckoID: 'shiden',
coingeckoPlatform: CoingeckoPlatform.Shiden,
Expand Down
Loading