From 94d5d9d8d7dccf515e48e56d45d19798c94d03a4 Mon Sep 17 00:00:00 2001 From: Dmitriy <34593263+shelegdmitriy@users.noreply.github.com> Date: Tue, 16 Jan 2024 17:14:34 +0200 Subject: [PATCH 1/2] fix: fetch data from idOS (#926) --- src/components/vm/VmInitializer.tsx | 4 ++- src/pages/settings.tsx | 48 ++++++++++++++++++----------- 2 files changed, 33 insertions(+), 19 deletions(-) diff --git a/src/components/vm/VmInitializer.tsx b/src/components/vm/VmInitializer.tsx index 0125edf23..aaa3b1c0c 100644 --- a/src/components/vm/VmInitializer.tsx +++ b/src/components/vm/VmInitializer.tsx @@ -61,6 +61,7 @@ export default function VmInitializer() { const setVmStore = useVmStore((store) => store.set); const { requestAuthentication, saveCurrentUrl } = useSignInRedirect(); const idOS = useIdOS(); + const idosSDK = useIdosStore((state) => state.idOS); useEffect(() => { initNear && @@ -188,6 +189,7 @@ export default function VmInitializer() { if (!near) { return; } + await idosSDK?.reset({ enclave: true }); useIdosStore.persist.clearStorage(); const wallet = await (await near.selector).wallet(); wallet.signOut(); @@ -196,7 +198,7 @@ export default function VmInitializer() { setSignedAccountId(null); resetAnalytics(); localStorage.removeItem('accountId'); - }, [near]); + }, [idosSDK, near]); const refreshAllowance = useCallback(async () => { alert("You're out of access key allowance. Need sign in again to refresh it"); diff --git a/src/pages/settings.tsx b/src/pages/settings.tsx index 9f27c21cf..95b19606e 100644 --- a/src/pages/settings.tsx +++ b/src/pages/settings.tsx @@ -3,9 +3,10 @@ import hereImage from '@near-wallet-selector/here-wallet/assets/here-wallet-icon import meteorImage from '@near-wallet-selector/meteor-wallet/assets/meteor-icon.png'; import myNearImage from '@near-wallet-selector/my-near-wallet/assets/my-near-wallet-icon.png'; import nightlyImage from '@near-wallet-selector/nightly/assets/nightly.png'; -import { useCallback, useState } from 'react'; +import { useCallback, useEffect, useState } from 'react'; import { openToast } from '@/components/lib/Toast'; +import type { ToastType } from '@/components/lib/Toast/store'; import { ComponentWrapperPage } from '@/components/near-org/ComponentWrapperPage'; import { useBosComponents } from '@/hooks/useBosComponents'; import { useDefaultLayout } from '@/hooks/useLayout'; @@ -22,7 +23,14 @@ const SettingsPage: NextPageWithLayout = () => { const idosCredentials = useIdosStore((state) => state.credentials); const connectedWallet = useIdosStore((state) => state.connectedWallet); const setIdosStore = useIdosStore((state) => state.set); - const [error, setError] = useState(null); + const [error, setError] = useState<{ type: ToastType; title: string; description?: string } | null>(null); + + const walletImages = [ + { name: 'meteor-wallet', ...meteorImage }, + { name: 'here-wallet', ...hereImage }, + { name: 'my-near-wallet', ...myNearImage }, + { name: 'nightly-wallet', ...nightlyImage }, + ]; const connectIdOS = useCallback(async () => { if (!near || !idOS || !accountId) return; @@ -34,28 +42,32 @@ const SettingsPage: NextPageWithLayout = () => { await idOS.setSigner('NEAR', wallet); const credentials = idosCredentials ?? (await idOS.data.list('credentials')); setIdosStore({ credentials }); + } else { + setError({ + type: 'INFO', + title: `No idOS profile found for ${accountId}`, + }); } } catch (error: any) { console.error('Failed to init wallet + idOS: ', error); const errorMessage = error.message ? error.message : 'unknown'; - setError(errorMessage); - } finally { - if (!idosCredentials && error) { - openToast({ - type: 'ERROR', - title: 'Failed to init wallet + idOS:', - description: `${error}`, - }); - } + setError({ + type: 'ERROR', + title: 'Falilure during idOS initialization:', + description: `${errorMessage}`, + }); } - }, [near, idOS, accountId, setIdosStore, idosCredentials, error]); + }, [near, idOS, accountId, setIdosStore, idosCredentials]); - const walletImages = [ - { name: 'meteor-wallet', ...meteorImage }, - { name: 'here-wallet', ...hereImage }, - { name: 'my-near-wallet', ...myNearImage }, - { name: 'nightly-wallet', ...nightlyImage }, - ]; + useEffect(() => { + if (!idosCredentials && error) { + openToast({ + type: error.type, + title: error.title, + description: error.description, + }); + } + }, [error, idosCredentials]); return ( Date: Tue, 16 Jan 2024 13:04:57 -0500 Subject: [PATCH 2/2] chore: bump to the latest vm pacth --- package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index a2f7500e5..4ff1451e9 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "local-storage": "^2.0.0", "lodash": "^4.17.21", "near-fastauth-wallet": "^0.0.10", - "near-social-vm": "github:NearSocial/VM#1344e8650e8f9a1b5781271183536bcfc815493f", + "near-social-vm": "github:NearSocial/VM#use_attr_patch", "next": "^13.5.6", "react": "^18.2.0", "react-bootstrap": "^2.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a6ca42df7..6190d28ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,9 +1,5 @@ lockfileVersion: '6.0' -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - dependencies: '@idos-network/idos-sdk': specifier: ^0.0.30 @@ -114,8 +110,8 @@ dependencies: specifier: ^0.0.10 version: 0.0.10 near-social-vm: - specifier: github:NearSocial/VM#1344e8650e8f9a1b5781271183536bcfc815493f - version: github.com/NearSocial/VM/1344e8650e8f9a1b5781271183536bcfc815493f(@babel/core@7.23.3)(@popperjs/core@2.11.8)(@types/react-dom@18.2.10)(@types/react@18.2.25)(near-api-js@2.1.4)(prop-types@15.8.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0) + specifier: github:NearSocial/VM#use_attr_patch + version: github.com/NearSocial/VM/9bdcc988b721a0305ce7056e2e431ec7a05301d0(@babel/core@7.23.3)(@popperjs/core@2.11.8)(@types/react-dom@18.2.10)(@types/react@18.2.25)(near-api-js@2.1.4)(prop-types@15.8.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0) next: specifier: ^13.5.6 version: 13.5.6(@babel/core@7.23.3)(react-dom@18.2.0)(react@18.2.0) @@ -13899,11 +13895,11 @@ packages: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} dev: false - github.com/NearSocial/VM/1344e8650e8f9a1b5781271183536bcfc815493f(@babel/core@7.23.3)(@popperjs/core@2.11.8)(@types/react-dom@18.2.10)(@types/react@18.2.25)(near-api-js@2.1.4)(prop-types@15.8.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0): - resolution: {tarball: https://codeload.github.com/NearSocial/VM/tar.gz/1344e8650e8f9a1b5781271183536bcfc815493f} - id: github.com/NearSocial/VM/1344e8650e8f9a1b5781271183536bcfc815493f + github.com/NearSocial/VM/9bdcc988b721a0305ce7056e2e431ec7a05301d0(@babel/core@7.23.3)(@popperjs/core@2.11.8)(@types/react-dom@18.2.10)(@types/react@18.2.25)(near-api-js@2.1.4)(prop-types@15.8.1)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0): + resolution: {tarball: https://codeload.github.com/NearSocial/VM/tar.gz/9bdcc988b721a0305ce7056e2e431ec7a05301d0} + id: github.com/NearSocial/VM/9bdcc988b721a0305ce7056e2e431ec7a05301d0 name: near-social-vm - version: 2.5.4 + version: 2.5.5 peerDependencies: near-api-js: 2.1.3 react: ^18.2.0 @@ -13981,3 +13977,7 @@ packages: - supports-color - utf-8-validate dev: false + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false