From 119208da3db8d390c32e4e4c49e7cc265b57ad80 Mon Sep 17 00:00:00 2001 From: kvhnuke <10602065+kvhnuke@users.noreply.github.com> Date: Tue, 9 Dec 2025 12:16:30 -0800 Subject: [PATCH 01/13] feat: enhance restricted address handling in App.vue and index.vue --- packages/extension/env.d.ts | 12 ++- packages/extension/src/ui/action/App.vue | 61 ++++++++------- .../src/ui/action/views/restricted/index.vue | 76 ++++++++++++++++--- 3 files changed, 104 insertions(+), 45 deletions(-) diff --git a/packages/extension/env.d.ts b/packages/extension/env.d.ts index 912f111ef..e091e5bce 100644 --- a/packages/extension/env.d.ts +++ b/packages/extension/env.d.ts @@ -1,12 +1,5 @@ /// -export namespace NodeJS { - export interface ProcessEnv { - BROWSER: 'chrome' | 'firefox' | 'edge' | 'opera' | 'safari'; - MINIFY: 'true' | 'false'; - } -} - declare module '*.svg' { const content: string; export default content; @@ -20,3 +13,8 @@ declare let __IS_OPERA__: boolean; declare let __IS_CHROME__: boolean; declare let __IS_SAFARI__: boolean; declare let __BUILD_TIME__: string; + +interface Window { + // Declare your custom global variable here + readonly __PACKAGE_VERSION__: string; +} diff --git a/packages/extension/src/ui/action/App.vue b/packages/extension/src/ui/action/App.vue index bcd79762f..9e4f85986 100644 --- a/packages/extension/src/ui/action/App.vue +++ b/packages/extension/src/ui/action/App.vue @@ -2,9 +2,14 @@
- +
({ + isRestricted: false, + address: '', +}); /** ------------------- * Rate @@ -213,16 +221,6 @@ const toggleDepositWindow = () => { const openBuyPage = () => { const buyLink = (() => { switch (currentNetwork.value.name) { - case NetworkNames.KadenaTestnet: - return (currentNetwork.value as KadenaNetwork).options.buyLink; - case NetworkNames.SyscoinNEVM: - case NetworkNames.Rollux: - return `${(currentNetwork.value as EvmNetwork).options.buyLink}&address=${currentNetwork.value.displayAddress( - accountHeaderData.value.selectedAccount!.address, - )}`; - case NetworkNames.SyscoinNEVMTest: - case NetworkNames.RolluxTest: - return (currentNetwork.value as EvmNetwork).options.buyLink; case NetworkNames.Massa: return 'https://www.massa.net/get-mas'; default: @@ -344,7 +342,7 @@ const setNetwork = async (network: BaseNetwork) => { const found = activeAccounts.find(acc => acc.address === selectedAddress); if (found) selectedAccount = found; } - + checkAddress(selectedAccount); accountHeaderData.value = { activeAccounts, inactiveAccounts, @@ -354,8 +352,6 @@ const setNetwork = async (network: BaseNetwork) => { currentNetwork.value = network; - checkAddresses(activeAccounts); - router.push({ name: 'assets', params: { id: network.name } }); const tabId = await domainState.getCurrentTabId(); const curSavedNetwork = await domainState.getSelectedNetWork(); @@ -440,17 +436,20 @@ const setNetwork = async (network: BaseNetwork) => { } }; -const foundRestrictedAddress = ref(false); - -const checkAddresses = async ( - activeAccounts: AccountsHeaderData['activeAccounts'], -) => { - const promises: Promise[] = activeAccounts.map(ac => - isWalletRestricted(currentNetwork.value.displayAddress(ac.address)), +const checkAddress = async (activeAccount: EnkryptAccount) => { + isAddressRestricted.value = { + isRestricted: false, + address: '', + }; + const isRestricted = await isWalletRestricted( + currentNetwork.value.displayAddress(activeAccount.address), ); - await Promise.all(promises).then(results => { - if (results.includes(true)) foundRestrictedAddress.value = true; - }); + if (isRestricted) { + isAddressRestricted.value = { + isRestricted, + address: currentNetwork.value.displayAddress(activeAccount.address), + }; + } }; const onSelectedSubnetworkChange = async (id: string) => { @@ -461,6 +460,7 @@ const onSelectedSubnetworkChange = async (id: string) => { const onSelectedAddressChanged = async (newAccount: EnkryptAccount) => { accountHeaderData.value.selectedAccount = newAccount; + checkAddress(newAccount); const accountStates = { [ProviderName.ethereum]: EVMAccountState, [ProviderName.bitcoin]: BTCAccountState, @@ -499,6 +499,15 @@ const showNetworkMenu = computed(() => { ); }); +const switchToUnrestrictedAddress = () => { + const newAccount = accountHeaderData.value.activeAccounts.find( + aa => + currentNetwork.value.displayAddress(aa.address) !== + isAddressRestricted.value.address, + ); + if (newAccount) onSelectedAddressChanged(newAccount); +}; + const isLocked = computed(() => { return route.name == 'lock-screen'; }); diff --git a/packages/extension/src/ui/action/views/restricted/index.vue b/packages/extension/src/ui/action/views/restricted/index.vue index 83008fc5c..33c228b5a 100644 --- a/packages/extension/src/ui/action/views/restricted/index.vue +++ b/packages/extension/src/ui/action/views/restricted/index.vue @@ -2,21 +2,43 @@