Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
b533d21
feat: add nibiru and nibiru testnet networks
ruslan-sh-r Sep 8, 2025
e38a7c4
fix: restore readme
ruslan-sh-r Sep 8, 2025
56a2bb1
feat: routescan provider
ruslan-sh-r Sep 8, 2025
cf3b326
Merge branch 'feat/nibiru-network' into feat/add-nibiru-network
kvhnuke Sep 10, 2025
fb5c184
Merge pull request #748 from ruslan-sh-r/feat/add-nibiru-network
kvhnuke Sep 10, 2025
8271a8f
fix: merge conflicts
kvhnuke Sep 25, 2025
65d7109
fix: fantom node
kvhnuke Oct 16, 2025
3d13b84
feat: allow rbtc swaps using changelly
ahsan-javaiid Oct 21, 2025
7056766
devop: package updates
kvhnuke Nov 3, 2025
f3f2afe
fix: remove unused parameter from mnemonicToMiniSecret
kvhnuke Nov 3, 2025
a5be057
Merge branch 'devop/package-updates-2-14' into fix/nodes
kvhnuke Nov 4, 2025
32caaf3
fix: remove OKC network references from asset handlers and configs
kvhnuke Nov 4, 2025
720ed80
fix: update Astar network node URL to use OnFinality API
kvhnuke Nov 4, 2025
ff17c94
fix: update Palm network node URL to use Infura API
kvhnuke Nov 4, 2025
03aa877
fix: remove references to Proof of Play Apex network from various files
kvhnuke Nov 4, 2025
0f3b501
fix: remove ZChains network references and associated files
kvhnuke Nov 5, 2025
7a00693
Merge branch 'devop/package-updates-2-14' into feat/nibiru-network
kvhnuke Nov 5, 2025
ef2c2d6
fix: update XLayer network node URL to use OKX RPC
kvhnuke Nov 5, 2025
bf1d1d2
fix: remove trailing slashes from NetworkEndpoints URLs
kvhnuke Nov 5, 2025
a77e69f
fix: improve error handling in getAddressActivity function
kvhnuke Nov 5, 2025
f1a2229
Merge pull request #766 from enkryptcom/fix/nodes
kvhnuke Nov 5, 2025
43df733
Merge pull request #750 from enkryptcom/feat/nibiru-network
kvhnuke Nov 5, 2025
5602f3b
Merge pull request #767 from ahsan-javaiid/rbtc-swaps
kvhnuke Nov 5, 2025
d4c8da7
fix: improve readability and add condition for getExchangeAmount resp…
kvhnuke Nov 5, 2025
d366167
feat: update version to 2.14.0 and add Nibiru network to new features
kvhnuke Nov 5, 2025
2fbdf58
fix: correct chainID for Story network from '0x5EF' to '0x5ea'
kvhnuke Nov 5, 2025
f8cc79c
refactor: remove XLayer network support from asset handlers and types
kvhnuke Nov 6, 2025
9130c31
feat: add provider names to swap
gamalielhere Nov 19, 2025
41bd3d3
devop: update packages
kvhnuke Nov 19, 2025
59f2363
feat: implement backup restoration and exclude specific signer types
kvhnuke Nov 19, 2025
0e5d94c
refactor: remove Canto network support from dapp lists and asset hand…
kvhnuke Nov 20, 2025
624f8dc
feat: update Kadena network integration and restore backup functionality
kvhnuke Nov 20, 2025
93e5180
fix: handle empty data response in OKX provider
kvhnuke Nov 20, 2025
a104588
fix: cleanup and add provider logos
gamalielhere Nov 20, 2025
859e386
devop: coderabbit recs
gamalielhere Nov 20, 2025
d6fe1e5
feat: add restricted popup
gamalielhere Nov 24, 2025
c729efe
fix: remove second loop
gamalielhere Nov 24, 2025
ca8ebfd
feat: add geolock
gamalielhere Nov 24, 2025
deb7190
fix: copy
gamalielhere Nov 25, 2025
45936d7
fix: update copy
gamalielhere Nov 25, 2025
475bb3e
feat: update more info
gamalielhere Nov 25, 2025
305d41f
Refactor code structure for improved readability and maintainability
kvhnuke Nov 25, 2025
d2f8958
Merge branch 'feat/provider-names' into feat/restricted-popup
kvhnuke Nov 25, 2025
319ad1b
Refactor Vue components for improved readability and maintainability
kvhnuke Nov 26, 2025
4269203
feat: implement geo-restriction handling in BackgroundHandler and imp…
kvhnuke Nov 26, 2025
b316433
feat: enhance UI structure and styling in App.vue and lock-screen-pas…
kvhnuke Nov 26, 2025
3c1b112
feat: improve markup and styling in index.vue and App.vue for better …
kvhnuke Nov 27, 2025
6fa4721
Merge pull request #771 from enkryptcom/feat/restricted-popup
kvhnuke Nov 27, 2025
581e162
Merge pull request #769 from enkryptcom/feat/provider-names
kvhnuke Nov 27, 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
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,8 @@ Enkrypt is a web3 wallet built from the ground up to support the multi-chain fut
- Gravity
- Unit Zero
- Unit Zero Testnet
- Nibiru
- Nibiru Testnet
- More coming soon!

Looking to add your project? [Contact us!](https://mewwallet.typeform.com/enkrypt-inquiry?typeform-source=www.enkrypt.com)
Expand Down Expand Up @@ -226,4 +228,4 @@ Email - info@enkrypt.com

Homepage - [https://www.enkrypt.com/](https://www.enkrypt.com/)

<p align="right">(<a href="#top">back to top</a>)</p>
<p align="right">(<a href="#top">back to top</a>)</p>
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,13 @@
"prepare": "husky"
},
"devDependencies": {
"@commitlint/cli": "^20.0.0",
"@commitlint/cli": "^20.1.0",
"@commitlint/config-conventional": "^20.0.0",
"@swc/core": "^1.13.19",
"@swc/core": "^1.15.2",
"concurrently": "^9.2.1",
"husky": "^9.1.7",
"node-notifier": "^10.0.1",
"nodemon": "^3.1.10",
"nodemon": "^3.1.11",
"ultra-runner": "^3.10.5",
"vite-plugin-node-polyfills": "0.24.0"
},
Expand Down
20 changes: 10 additions & 10 deletions packages/extension-bridge/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,12 @@
"webextension-polyfill": "^0.12.0"
},
"devDependencies": {
"@types/node": "^22.18.6",
"@types/webextension-polyfill": "^0.12.3",
"@typescript-eslint/eslint-plugin": "^8.44.1",
"@typescript-eslint/parser": "^8.44.1",
"bumpp": "^10.2.3",
"eslint": "^9.36.0",
"@types/node": "^22.19.1",
"@types/webextension-polyfill": "^0.12.4",
"@typescript-eslint/eslint-plugin": "^8.47.0",
"@typescript-eslint/parser": "^8.47.0",
"bumpp": "^10.3.1",
"eslint": "^9.39.1",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-prettier": "^10.1.8",
"eslint-import-resolver-alias": "^1.1.2",
Expand All @@ -58,9 +58,9 @@
"prettier": "^3.6.2",
"ts-node": "^10.9.2",
"tsconfig-paths": "^4.2.0",
"tsup": "^8.5.0",
"type-fest": "^5.0.1",
"typescript": "^5.9.2",
"typescript-eslint": "8.44.1"
"tsup": "^8.5.1",
"type-fest": "^5.2.0",
"typescript": "^5.9.3",
"typescript-eslint": "8.47.0"
}
}
86 changes: 43 additions & 43 deletions packages/extension/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@enkryptcom/extension",
"version": "2.13.1",
"version": "2.14.0",
"private": true,
"type": "module",
"scripts": {
Expand All @@ -16,14 +16,14 @@
"build:chrome": "yarn prebuild && cross-env BROWSER='chrome' MINIFY='true' vite build",
"build:firefox": "yarn prebuild && cross-env BROWSER='firefox' MINIFY='true' vite build && node configs/get-system-info.js",
"build:opera": "yarn prebuild && cross-env BROWSER='opera' MINIFY='true' vite build",
"kadena:prebuild": "pactjs contract-generate --contract=coin --api https://api.chainweb.com/chainweb/0.0/mainnet01/chain/1/pact",
"kadena:prebuild": "pactjs contract-generate --contract=coin --api https://api.chainweb-community.org/chainweb/0.0/mainnet01/chain/1/pact",
"test": "vitest run -c ./configs/vitest.config.mts",
"watch": "yarn dev",
"watch:chrome": "yarn dev",
"watch:firefox": "yarn prebuild && cross-env BROWSER='firefox' vite"
},
"dependencies": {
"@amplitude/analytics-browser": "^2.25.0",
"@amplitude/analytics-browser": "^2.31.1",
"@enkryptcom/extension-bridge": "workspace:^",
"@enkryptcom/hw-wallets": "workspace:^",
"@enkryptcom/keyring": "workspace:^",
Expand All @@ -36,23 +36,23 @@
"@ethereumjs/tx": "^5.4.0",
"@ethereumjs/util": "^9.1.0",
"@ethereumjs/wallet": "^2.0.4",
"@kadena/client": "^1.18.2",
"@kadena/pactjs-cli": "^1.18.2",
"@ledgerhq/hw-transport-webusb": "^6.29.11",
"@kadena/client": "^1.18.3",
"@kadena/pactjs-cli": "^1.18.3",
"@ledgerhq/hw-transport-webusb": "^6.29.13",
"@massalabs/massa-web3": "^5.3.0",
"@metamask/eth-sig-util": "^8.2.0",
"@metaplex-foundation/mpl-bubblegum": "^5.0.2",
"@metaplex-foundation/umi": "^1.4.1",
"@metaplex-foundation/umi-bundle-defaults": "^1.4.1",
"@polkadot/api": "^16.4.8",
"@polkadot/extension-inject": "^0.62.1",
"@polkadot/keyring": "^13.5.6",
"@polkadot/rpc-provider": "^16.4.8",
"@polkadot/types": "^16.4.8",
"@polkadot/types-known": "^16.4.8",
"@polkadot/ui-shared": "^3.16.1",
"@polkadot/util": "^13.5.6",
"@polkadot/wasm-crypto": "^7.5.1",
"@polkadot/api": "^16.5.2",
"@polkadot/extension-inject": "^0.62.5",
"@polkadot/keyring": "^13.5.8",
"@polkadot/rpc-provider": "^16.5.2",
"@polkadot/types": "^16.5.2",
"@polkadot/types-known": "^16.5.2",
"@polkadot/ui-shared": "^3.16.3",
"@polkadot/util": "^13.5.8",
"@polkadot/wasm-crypto": "^7.5.2",
"@solana-developers/helpers": "2.8.0",
"@solana/spl-token": "^0.4.14",
"@solana/wallet-standard-features": "^1.3.0",
Expand All @@ -74,14 +74,14 @@
"moment": "^2.30.1",
"nanoevents": "^9.1.0",
"pact-lang-api": "^4.3.6",
"pinia": "^3.0.3",
"pinia": "^3.0.4",
"qrcode.vue": "^3.6.0",
"switch-ts": "^1.1.1",
"url-parse": "^1.5.10",
"uuid": "^13.0.0",
"vue": "^3.5.22",
"vue-echarts": "7.0.3",
"vue-router": "^4.5.1",
"vue": "^3.5.24",
"vue-echarts": "8.0.1",
"vue-router": "^4.6.3",
"vue3-lottie": "^3.3.1",
"vuedraggable": "^4.1.0",
"web3-eth": "^1.10.4",
Expand All @@ -90,56 +90,56 @@
"zxcvbn": "^4.4.2"
},
"devDependencies": {
"@crxjs/vite-plugin": "^2.2.0",
"@rollup/plugin-commonjs": "^28.0.6",
"@crxjs/vite-plugin": "^2.2.1",
"@rollup/plugin-commonjs": "^29.0.0",
"@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-node-resolve": "^16.0.3",
"@rollup/plugin-replace": "^6.0.3",
"@rollup/plugin-terser": "^0.4.4",
"@rollup/plugin-typescript": "^12.1.4",
"@tsconfig/node20": "^20.1.6",
"@rollup/plugin-typescript": "^12.3.0",
"@tsconfig/node20": "^20.1.8",
"@types/bs58": "^5.0.0",
"@types/chrome": "^0.1.12",
"@types/chrome": "^0.1.31",
"@types/ethereumjs-abi": "^0.6.5",
"@types/events": "^3.0.3",
"@types/fs-extra": "^11.0.4",
"@types/less": "^3.0.8",
"@types/lodash": "^4.17.20",
"@types/node": "^22.18.6",
"@types/node": "^22.19.1",
"@types/semver": "^7.7.1",
"@types/url-parse": "^1.4.11",
"@types/utf-8-validate": "^5.0.2",
"@types/uuid": "^11.0.0",
"@types/wif": "^2.0.5",
"@types/zxcvbn": "^4.4.5",
"@vitejs/plugin-vue": "^6.0.1",
"@vitejs/plugin-vue": "^6.0.2",
"@vue/eslint-config-prettier": "^10.2.0",
"@vue/eslint-config-typescript": "^14.6.0",
"@vue/tsconfig": "^0.8.1",
"@vueuse/core": "^13.9.0",
"cross-env": "^10.0.0",
"eslint": "^9.36.0",
"eslint-plugin-vue": "^10.5.0",
"@vueuse/core": "^14.0.0",
"cross-env": "^10.1.0",
"eslint": "^9.39.1",
"eslint-plugin-vue": "^10.5.1",
"fs-extra": "^11.3.2",
"jsdom": "^26.1.0",
"less": "^4.4.1",
"less": "^4.4.2",
"less-loader": "^12.3.0",
"npm-run-all2": "^8.0.4",
"prettier": "^3.6.2",
"rimraf": "^6.0.1",
"rollup": "^4.52.2",
"rollup-plugin-visualizer": "^6.0.3",
"semver": "^7.7.2",
"systeminformation": "^5.27.10",
"tsup": "^8.5.0",
"typescript": "~5.9.2",
"rimraf": "^6.1.2",
"rollup": "^4.53.3",
"rollup-plugin-visualizer": "^6.0.5",
"semver": "^7.7.3",
"systeminformation": "^5.27.11",
"tsup": "^8.5.1",
"typescript": "~5.9.3",
"url": "^0.11.4",
"vite": "^7.1.7",
"vite": "^7.2.2",
"vite-plugin-node-polyfills": "0.24.0",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^3.2.4",
"vue-tsc": "^3.0.8",
"vitest": "^4.0.10",
"vue-tsc": "^3.1.4",
"webextension-polyfill": "^0.12.0"
},
"installConfig": {
Expand Down
18 changes: 18 additions & 0 deletions packages/extension/src/libs/background/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import {
} from './internal';
import { handlePersistentEvents } from './external';
import SettingsState from '../settings-state';
import { isGeoRestricted } from '../utils/screening';

class BackgroundHandler {
#keyring: KeyRingBase;
Expand All @@ -36,6 +37,7 @@ class BackgroundHandler {
#persistentEvents: PersistentEvents;
#domainState: DomainState;
#settingsState: SettingsState;
#geoRestricted: boolean | undefined;

constructor() {
this.#keyring = new KeyRingBase();
Expand All @@ -51,6 +53,10 @@ class BackgroundHandler {
[ProviderName.massa]: {},
};
this.#providers = Providers;
this.#geoRestricted = undefined;
isGeoRestricted().then(restricted => {
this.#geoRestricted = restricted;
});
}
async init(): Promise<void> {
await handlePersistentEvents.bind(this)();
Expand Down Expand Up @@ -83,6 +89,9 @@ class BackgroundHandler {
method === InternalMethods.newWindowUnload
) {
this.#persistentEvents.deleteEvents(_tabid);
isGeoRestricted().then(restricted => {
this.#geoRestricted = restricted;
});
return {
result: JSON.stringify(true),
};
Expand All @@ -97,6 +106,15 @@ class BackgroundHandler {
error: JSON.stringify(getCustomError('Enkrypt: not implemented')),
};
}
if (this.#geoRestricted !== undefined && this.#geoRestricted) {
return {
error: JSON.stringify(
getCustomError(
'Enkrypt: Geo restricted https://www.myetherwallet.com/blocked',
),
),
};
}
const tabInfo = TabInfo(await Browser.tabs.get(_tabid));
if (!this.#tabProviders[_provider][_tabid]) {
const toWindow = (message: string) => {
Expand Down
2 changes: 2 additions & 0 deletions packages/extension/src/libs/backup-state/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ class BackupState {

async restoreBackup(userId: string, keyringPassword: string): Promise<void> {
const mainWallet = await this.getMainWallet();
const exludedSignerTypes: SignerType[] = [];
await sendUsingInternalMessengers({
method: InternalMethods.unlock,
params: [keyringPassword, false],
Expand Down Expand Up @@ -207,6 +208,7 @@ class BackupState {

for (const key of Object.keys(highestPathIndex)) {
const [basePath, signerType] = key.split('###');
if (exludedSignerTypes.includes(signerType as SignerType)) continue;
for (let i = 0; i <= highestPathIndex[key]; i++) {
const newAccount = getAccountByIndex(
decryptedBackup.accounts,
Expand Down
8 changes: 0 additions & 8 deletions packages/extension/src/libs/dapp-list/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,16 +33,12 @@ const lists: Partial<Record<NetworkNames, string>> = {
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/okc.json',
[NetworkNames.Optimism]:
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/op.json',
[NetworkNames.Canto]:
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/canto.json',
[NetworkNames.Bifrost]:
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/bifrost.json',
[NetworkNames.BifrostKusama]:
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/bifrost.json',
[NetworkNames.Edgeware]:
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/edg.json',
[NetworkNames.ZkSyncGoerli]:
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/zksyncgoerli.json',
[NetworkNames.ZkSync]:
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/zksync.json',
[NetworkNames.Rootstock]:
Expand Down Expand Up @@ -75,8 +71,6 @@ const lists: Partial<Record<NetworkNames, string>> = {
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/godwoken.json',
[NetworkNames.ImmutableZkevm]:
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/imx.json',
[NetworkNames.ZChains]:
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/zchains.json',
[NetworkNames.MantaPacific]:
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/manta.json',
[NetworkNames.Mode]:
Expand All @@ -85,8 +79,6 @@ const lists: Partial<Record<NetworkNames, string>> = {
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/opBNB.json',
[NetworkNames.Palm]:
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/palm.json',
[NetworkNames.ProofOfPlayApex]:
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/popApex.json',
[NetworkNames.Scroll]:
'https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/scroll.json',
[NetworkNames.Rari]:
Expand Down
2 changes: 1 addition & 1 deletion packages/extension/src/libs/utils/initialize-wallet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import KeyRing from '@/libs/keyring/keyring';
import EthereumNetworks from '@/providers/ethereum/networks';
import PolkadotNetworks from '@/providers/polkadot/networks';
import BitcoinNetworks from '@/providers/bitcoin/networks';
import KadenaNetworks from '@/providers/kadena/networks';
import SolanaNetworks from '@/providers/solana/networks';
import KadenaNetworks from '@/providers/kadena/networks';
import MassaNetworks from '@/providers/massa/networks';
import { NetworkNames, WalletType } from '@enkryptcom/types';
import { getAccountsByNetworkName } from '@/libs/utils/accounts';
Expand Down
32 changes: 32 additions & 0 deletions packages/extension/src/libs/utils/screening.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
const isGeoRestricted = async (): Promise<boolean> => {
return fetch('https://partners.mewapi.io/o/ipcomply')
.then(async res => {
if (res.ok) {
const json = await res.json();
return json.isRestricted;
}
return false;
})
.catch(() => false);
};

const walletCache: Record<string, boolean> = {};
const isWalletRestricted = async (walletAddress: string): Promise<boolean> => {
if (walletCache[walletAddress] !== undefined)
return walletCache[walletAddress];
const result = await fetch(
`https://partners.mewapi.io/o/walletscreen?address=${walletAddress}`,
)
.then(async res => {
if (res.ok) {
const { isRestricted } = await res.json();
return isRestricted;
}
return false;
})
.catch(() => false);
walletCache[walletAddress] = result;
return result;
};

export { isGeoRestricted, isWalletRestricted };
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { NetworkNames } from '@enkryptcom/types';

const newNetworks: NetworkNames[] = [];
const newNetworks: NetworkNames[] = [NetworkNames.Nibiru];
const newSwaps: NetworkNames[] = [];

export { newNetworks, newSwaps };
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import TomoScan from './providers/tomoscan';
import OntEVMActivity from './providers/ont-evm';
import TelosActivity from './providers/telos';
import GodwokenActivity from './providers/godwoken';
import RoutescanActivity from './providers/routescan';
export {
RivetActivity,
EtherscanActivity,
Expand All @@ -13,4 +14,5 @@ export {
TomoScan,
TelosActivity,
GodwokenActivity,
RoutescanActivity,
};
Loading