diff --git a/apps/dcellar-web-ui/CHANGELOG.json b/apps/dcellar-web-ui/CHANGELOG.json
index ab7475be..3e308ef8 100644
--- a/apps/dcellar-web-ui/CHANGELOG.json
+++ b/apps/dcellar-web-ui/CHANGELOG.json
@@ -1,6 +1,18 @@
{
"name": "dcellar-web-ui",
"entries": [
+ {
+ "version": "0.6.0",
+ "tag": "dcellar-web-ui_v0.6.0",
+ "date": "Wed, 17 Apr 2024 03:19:45 GMT",
+ "comments": {
+ "minor": [
+ {
+ "comment": "Add connect-wallet page & tutorial card"
+ }
+ ]
+ }
+ },
{
"version": "0.5.0",
"tag": "dcellar-web-ui_v0.5.0",
diff --git a/apps/dcellar-web-ui/CHANGELOG.md b/apps/dcellar-web-ui/CHANGELOG.md
index c2f1caf3..0f98df18 100644
--- a/apps/dcellar-web-ui/CHANGELOG.md
+++ b/apps/dcellar-web-ui/CHANGELOG.md
@@ -1,6 +1,13 @@
# Change Log - dcellar-web-ui
-This log was last generated on Thu, 11 Apr 2024 02:29:47 GMT and should not be manually modified.
+This log was last generated on Wed, 17 Apr 2024 03:19:45 GMT and should not be manually modified.
+
+## 0.6.0
+Wed, 17 Apr 2024 03:19:45 GMT
+
+### Minor changes
+
+- Add connect-wallet page & tutorial card
## 0.5.0
Thu, 11 Apr 2024 02:29:47 GMT
diff --git a/apps/dcellar-web-ui/package.json b/apps/dcellar-web-ui/package.json
index 24c4bcf7..6314dcb9 100644
--- a/apps/dcellar-web-ui/package.json
+++ b/apps/dcellar-web-ui/package.json
@@ -1,6 +1,6 @@
{
"name": "dcellar-web-ui",
- "version": "0.5.0",
+ "version": "0.6.0",
"private": false,
"scripts": {
"dev": "node ./scripts/dev.js -p 3200",
@@ -25,7 +25,7 @@
"@next/bundle-analyzer": "^13.1.6",
"@node-real/icons": "~2.20.3",
"@node-real/uikit": "~2.54.8",
- "@node-real/walletkit": "1.0.10-alpha.1",
+ "@node-real/walletkit": "1.0.12-alpha.1",
"axios": "^1.3.2",
"axios-retry": "^3.4.0",
"bignumber.js": "^9.1.1",
diff --git a/apps/dcellar-web-ui/public/images/connect-wallet/icon-cw-bottom.svg b/apps/dcellar-web-ui/public/images/connect-wallet/icon-cw-bottom.svg
new file mode 100644
index 00000000..bb22c97a
--- /dev/null
+++ b/apps/dcellar-web-ui/public/images/connect-wallet/icon-cw-bottom.svg
@@ -0,0 +1,9 @@
+
diff --git a/apps/dcellar-web-ui/public/images/connect-wallet/icon-cw-left.svg b/apps/dcellar-web-ui/public/images/connect-wallet/icon-cw-left.svg
new file mode 100644
index 00000000..292f5399
--- /dev/null
+++ b/apps/dcellar-web-ui/public/images/connect-wallet/icon-cw-left.svg
@@ -0,0 +1,29 @@
+
diff --git a/apps/dcellar-web-ui/public/images/connect-wallet/icon-cw-right.svg b/apps/dcellar-web-ui/public/images/connect-wallet/icon-cw-right.svg
new file mode 100644
index 00000000..424f078a
--- /dev/null
+++ b/apps/dcellar-web-ui/public/images/connect-wallet/icon-cw-right.svg
@@ -0,0 +1,9 @@
+
diff --git a/apps/dcellar-web-ui/public/js/iconfont_v0.7.min.js b/apps/dcellar-web-ui/public/js/iconfont_v0.9.min.js
similarity index 94%
rename from apps/dcellar-web-ui/public/js/iconfont_v0.7.min.js
rename to apps/dcellar-web-ui/public/js/iconfont_v0.9.min.js
index 5c742dd6..87a55e3c 100644
--- a/apps/dcellar-web-ui/public/js/iconfont_v0.7.min.js
+++ b/apps/dcellar-web-ui/public/js/iconfont_v0.9.min.js
@@ -1 +1 @@
-!function(e){var t,n,d,o,i,a,r='';function c(){i||(i=!0,d())}t=function(){var e,t,n;(n=document.createElement("div")).innerHTML=r,r=null,(t=n.getElementsByTagName("svg")[0])&&(t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.width=0,t.style.height=0,t.style.overflow="hidden",e=t,(n=document.body).firstChild?(t=n.firstChild).parentNode.insertBefore(e,t):n.appendChild(e))},document.addEventListener?["complete","loaded","interactive"].indexOf(document.readyState)>-1?setTimeout(t,0):(n=function(){document.removeEventListener("DOMContentLoaded",n,!1),t()},document.addEventListener("DOMContentLoaded",n,!1)):document.attachEvent&&(d=t,o=e.document,i=!1,(a=function(){try{o.documentElement.doScroll("left")}catch(e){return void setTimeout(a,50)}c()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,c())})}(window);
\ No newline at end of file
+!function(e){var t,n,d,o,i,a,r='';function c(){i||(i=!0,d())}t=function(){var e,t,n;(n=document.createElement("div")).innerHTML=r,r=null,(t=n.getElementsByTagName("svg")[0])&&(t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.width=0,t.style.height=0,t.style.overflow="hidden",e=t,(n=document.body).firstChild?(t=n.firstChild).parentNode.insertBefore(e,t):n.appendChild(e))},document.addEventListener?["complete","loaded","interactive"].indexOf(document.readyState)>-1?setTimeout(t,0):(n=function(){document.removeEventListener("DOMContentLoaded",n,!1),t()},document.addEventListener("DOMContentLoaded",n,!1)):document.attachEvent&&(d=t,o=e.document,i=!1,(a=function(){try{o.documentElement.doScroll("left")}catch(e){return void setTimeout(a,50)}c()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,c())})}(window);
\ No newline at end of file
diff --git a/apps/dcellar-web-ui/src/components/ConnectWallet/index.tsx b/apps/dcellar-web-ui/src/components/ConnectWallet/index.tsx
index 0c6b93f7..73778dba 100644
--- a/apps/dcellar-web-ui/src/components/ConnectWallet/index.tsx
+++ b/apps/dcellar-web-ui/src/components/ConnectWallet/index.tsx
@@ -6,7 +6,7 @@ import { ssrLandingRoutes } from '@/pages/_app';
import { useAppDispatch } from '@/store';
import { checkOffChainDataAvailable, setLoginAccount } from '@/store/slices/persist';
import { Text } from '@node-real/uikit';
-import { useModal } from '@node-real/walletkit';
+import { WalletKitEmbeddedModal, useModal } from '@node-real/walletkit';
import { useAsyncEffect } from 'ahooks';
import { useRouter } from 'next/router';
import { ReactElement, memo, useState } from 'react';
@@ -15,13 +15,14 @@ import { useAccount, useDisconnect } from 'wagmi';
interface ConnectWalletProps extends DCButtonProps {
icon?: ReactElement;
text?: string;
+ displayType?: 'button' | 'embeddedModal';
}
// for multi connect button in one page
let eventTriggerTime = Date.now();
export const ConnectWallet = memo>(function ConnectButton(props) {
- const { icon, text, ...restProps } = props;
+ const { icon, text, displayType = 'button', ...restProps } = props;
const router = useRouter();
const dispatch = useAppDispatch();
const { onOpen, onClose } = useModal();
@@ -39,7 +40,6 @@ export const ConnectWallet = memo>(function ConnectB
};
// connector may be undefined when wallet throw '(index):7 Error in event handler: Error: write after end';
-
const openModal = () => {
eventTriggerTime = Date.now();
setTrustEvent(eventTriggerTime);
@@ -56,7 +56,14 @@ export const ConnectWallet = memo>(function ConnectB
};
useAsyncEffect(async () => {
- if (trustEvent !== eventTriggerTime || isAuthPending || !address || !isConnected) return;
+ if (
+ (displayType === 'button' && trustEvent !== eventTriggerTime) ||
+ isAuthPending ||
+ !address ||
+ !isConnected
+ ) {
+ return;
+ }
const isAvailable = await dispatch(checkOffChainDataAvailable(address));
@@ -83,26 +90,32 @@ export const ConnectWallet = memo>(function ConnectB
}, [address, trustEvent, isAuthPending, router]);
return (
-
- {icon ? icon : ''}
- {text ? text : 'Connect Wallet'}
-
+ <>
+ {displayType === 'embeddedModal' ? (
+
+ ) : (
+
+ {icon ? icon : ''}
+ {text ? text : 'Connect Wallet'}
+
+ )}
+ >
);
});
diff --git a/apps/dcellar-web-ui/src/components/layout/Header/index.tsx b/apps/dcellar-web-ui/src/components/layout/Header/index.tsx
index b06df644..241965dc 100644
--- a/apps/dcellar-web-ui/src/components/layout/Header/index.tsx
+++ b/apps/dcellar-web-ui/src/components/layout/Header/index.tsx
@@ -19,7 +19,7 @@ export const Header = memo(function Header({ taskManagement = true
-
+
{runtimeEnv === 'testnet' && {networkTag(runtimeEnv)}}
diff --git a/apps/dcellar-web-ui/src/components/layout/Logo/index.tsx b/apps/dcellar-web-ui/src/components/layout/Logo/index.tsx
index cea6440b..9b150a96 100644
--- a/apps/dcellar-web-ui/src/components/layout/Logo/index.tsx
+++ b/apps/dcellar-web-ui/src/components/layout/Logo/index.tsx
@@ -14,7 +14,7 @@ interface ILogo extends BoxProps {
export const Logo: React.FC = (props) => {
const { href, target = '', title = '', ...restProps } = props;
const { basePath } = useRouter();
- const logo = ;
+ const logo = ;
return (
diff --git a/apps/dcellar-web-ui/src/context/GlobalContext/PageProtect.tsx b/apps/dcellar-web-ui/src/context/GlobalContext/PageProtect.tsx
index 96435e65..b74984db 100644
--- a/apps/dcellar-web-ui/src/context/GlobalContext/PageProtect.tsx
+++ b/apps/dcellar-web-ui/src/context/GlobalContext/PageProtect.tsx
@@ -9,7 +9,7 @@ import { isRightChain } from '@/modules/wallet/utils/isRightChain';
// protect: GNFD chain, GNFD & BSC chain and no protect.
const protectGNFDPaths = ['/buckets', '/buckets/[...path]', '/groups', '/accounts'];
-const noProtectPaths = ['/', '/terms', '/pricing-calculator', '/tool-box'];
+const noProtectPaths = ['/', '/terms', '/pricing-calculator', '/connect-wallet'];
// TODO unify the wallet page protect
export const PageProtect: React.FC = ({ children }) => {
diff --git a/apps/dcellar-web-ui/src/context/LoginContext/useLoginGuard.ts b/apps/dcellar-web-ui/src/context/LoginContext/useLoginGuard.ts
index 6e035ea0..ddbcc183 100644
--- a/apps/dcellar-web-ui/src/context/LoginContext/useLoginGuard.ts
+++ b/apps/dcellar-web-ui/src/context/LoginContext/useLoginGuard.ts
@@ -1,5 +1,6 @@
import { InternalRoutePaths } from '@/constants/paths';
import { ssrLandingRoutes } from '@/pages/_app';
+import { useAppSelector } from '@/store';
import { useMount } from 'ahooks';
import { useRouter } from 'next/router';
import { useEffect, useState } from 'react';
@@ -7,7 +8,7 @@ import { useAccount } from 'wagmi';
export function useLoginGuard(inline: boolean) {
const { address } = useAccount();
-
+ const { loginAccount } = useAppSelector((root) => root.persist);
const router = useRouter();
const { pathname, asPath } = router;
@@ -19,7 +20,7 @@ export function useLoginGuard(inline: boolean) {
});
useEffect(() => {
- if (!address) {
+ if (!address || !loginAccount) {
if (inline) {
setPass(true);
} else if (pathname.length > 0 && pathname !== '/') {
@@ -36,13 +37,13 @@ export function useLoginGuard(inline: boolean) {
if (router?.query?.originAsPath && router?.query.originAsPath.length > 0) {
const originPathname = decodeURIComponent(router.query.originAsPath as string);
router.replace(originPathname, undefined, { shallow: true });
- } else if (pathname && pathname === '/') {
+ } else if (pathname && (pathname === '/' || pathname === '/connect-wallet')) {
router.replace(InternalRoutePaths.dashboard, undefined, { shallow: true });
} else {
setPass(true);
}
}
- }, [address, asPath, pathname, router, inline]);
+ }, [address, asPath, pathname, router, inline, loginAccount]);
return {
pass: (!mounted && inline) || pass,
diff --git a/apps/dcellar-web-ui/src/context/WalletConnectContext/components/WalletConnectProvider.tsx b/apps/dcellar-web-ui/src/context/WalletConnectContext/components/WalletConnectProvider.tsx
index ce583ade..9227abec 100644
--- a/apps/dcellar-web-ui/src/context/WalletConnectContext/components/WalletConnectProvider.tsx
+++ b/apps/dcellar-web-ui/src/context/WalletConnectContext/components/WalletConnectProvider.tsx
@@ -3,7 +3,7 @@ import { customTheme } from '@/base/theme/wallet';
import { DCLink } from '@/components/common/DCLink';
import { bscChain, greenFieldChain } from '@/context/WalletConnectContext/chains';
import { reportEvent } from '@/utils/gtag';
-import { Text } from '@node-real/uikit';
+import { Text, useMediaQuery } from '@node-real/uikit';
import { WalletKitOptions, WalletKitProvider, getDefaultConfig } from '@node-real/walletkit';
import '@node-real/walletkit/styles.css';
import { metaMask, trustWallet, walletConnect } from '@node-real/walletkit/wallets';
@@ -11,6 +11,7 @@ import * as Sentry from '@sentry/nextjs';
import * as process from 'process';
import { ReactNode } from 'react';
import { WagmiConfig, createConfig } from 'wagmi';
+import { useRouter } from 'next/router';
const config = createConfig(
getDefaultConfig({
@@ -62,11 +63,14 @@ export interface WalletConnectProviderProps {
export function WalletConnectProvider(props: WalletConnectProviderProps) {
const { children } = props;
+ const router = useRouter();
+ const [isMobile] = useMediaQuery('(max-width: 767px)');
+ const isInnerModal = router.pathname === '/connect-wallet' && !isMobile;
return (
{
+ const [isMobile] = useMediaQuery('(max-width: 767px)');
+ const bg = isMobile ? `${leftBg}, ${rightBg}` : `${leftBg}, ${rightBg}, ${bottomBg}`;
+ const bodyHeight = isMobile ? 'calc(100vh - 67px)' : 'calc(100vh - 50px)';
+
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+ BNB Greenfield Storage Console
+
+
+ Empower developers to quickly get started with BNB Greenfield decentralized
+ storage and assist in the development process.
+
+ {isMobile && (
+ }
+ />
+ )}
+
+
+
+ {!isMobile && (
+
+
+
+ )}
+
+
+
+ >
+ );
+};
diff --git a/apps/dcellar-web-ui/src/modules/dashboard/components/TutorialCard.tsx b/apps/dcellar-web-ui/src/modules/dashboard/components/TutorialCard.tsx
new file mode 100644
index 00000000..f6265425
--- /dev/null
+++ b/apps/dcellar-web-ui/src/modules/dashboard/components/TutorialCard.tsx
@@ -0,0 +1,107 @@
+import { Card } from './Common';
+import { Box, Flex, Link, Text } from '@node-real/uikit';
+import { IconFont } from '@/components/IconFont';
+import { DCButton } from '@/components/common/DCButton';
+import { useRouter } from 'next/router';
+import { InternalRoutePaths } from '@/constants/paths';
+import { useAppDispatch } from '@/store';
+import { setIsShowTutorialCard } from '@/store/slices/persist';
+
+export const TutorialCard = () => {
+ const router = useRouter();
+ const dispatch = useAppDispatch();
+
+ const onHideClick = () => {
+ dispatch(setIsShowTutorialCard(false));
+ };
+
+ const steps = [
+ {
+ title: 'Create a bucket',
+ description:
+ "A bucket acts as your data's storage space. Feel free to manage your data via the console or the SDK.",
+ icon: 'create-bucket',
+ Link: (
+ router.push(InternalRoutePaths.buckets)}>Create Bucket
+ ),
+ },
+ {
+ title: 'Manage Objects',
+ description:
+ 'Upload, delete, and share objects with invited groups that have the appropriate authority levels.',
+ icon: 'upload-objects',
+ Link: (
+
+ Learn More
+
+ ),
+ },
+ {
+ title: 'Monitor Usage',
+ description:
+ 'DCellar provides a highly efficient dashboard, enabling you to manage your data usage and cost estimates with ease.',
+ icon: 'share-objects',
+ Link: (
+
+ Learn More
+
+ ),
+ },
+ ];
+
+ return (
+
+
+
+ Get Started with BNB Greenfield
+
+
+
+ Don't show again
+
+
+
+ {steps.map((step, index) => (
+ <>
+
+
+
+ {index + 1}
+
+ {step.title}
+
+
+ {step.description}
+
+ {step.Link}
+
+ {index !== steps.length - 1 && }
+ >
+ ))}
+
+
+ );
+};
diff --git a/apps/dcellar-web-ui/src/modules/dashboard/index.tsx b/apps/dcellar-web-ui/src/modules/dashboard/index.tsx
index dea5cbc0..fc1bc941 100644
--- a/apps/dcellar-web-ui/src/modules/dashboard/index.tsx
+++ b/apps/dcellar-web-ui/src/modules/dashboard/index.tsx
@@ -13,21 +13,18 @@ import { setupBucketList } from '@/store/slices/bucket';
import { setupBucketDailyStorage } from '@/store/slices/dashboard';
import { getCurMonthDetailUrl } from '@/utils/accounts';
import { useRouter } from 'next/router';
+import { TutorialCard } from './components/TutorialCard';
export const Dashboard = () => {
const dispatch = useAppDispatch();
const loginAccount = useAppSelector((root) => root.persist.loginAccount);
-
+ const isShowTutorialCard = useAppSelector((root) => root.persist.isShowTutorialCard);
const [isLessThan1200] = useMediaQuery('(max-width: 1200px)');
-
const curMonthDetailUrl = getCurMonthDetailUrl();
-
const router = useRouter();
-
const onNavigate = (path: string) => {
router.push(path);
};
-
useMount(async () => {
dispatch(setupOwnerAccount());
dispatch(setupTotalCost());
@@ -42,6 +39,7 @@ export const Dashboard = () => {
Dashboard
+ {isShowTutorialCard && }
diff --git a/apps/dcellar-web-ui/src/modules/share/ShareLogin.tsx b/apps/dcellar-web-ui/src/modules/share/ShareLogin.tsx
index 9144159c..d369528f 100644
--- a/apps/dcellar-web-ui/src/modules/share/ShareLogin.tsx
+++ b/apps/dcellar-web-ui/src/modules/share/ShareLogin.tsx
@@ -19,7 +19,7 @@ export const ShareLogin = () => {
-
+
Connect wallet to view objects in DCellar.
diff --git a/apps/dcellar-web-ui/src/pages/_document.tsx b/apps/dcellar-web-ui/src/pages/_document.tsx
index abefcdce..56e1059c 100644
--- a/apps/dcellar-web-ui/src/pages/_document.tsx
+++ b/apps/dcellar-web-ui/src/pages/_document.tsx
@@ -25,7 +25,7 @@ export default function Document() {
__html: `window.__ASSET_PREFIX = ${JSON.stringify(assetPrefix)}`,
}}
>
-
+
diff --git a/apps/dcellar-web-ui/src/pages/connect-wallet/index.tsx b/apps/dcellar-web-ui/src/pages/connect-wallet/index.tsx
new file mode 100644
index 00000000..d042af9e
--- /dev/null
+++ b/apps/dcellar-web-ui/src/pages/connect-wallet/index.tsx
@@ -0,0 +1,17 @@
+import { ConnectWallet } from '@/modules/connect-wallet';
+import { wrapper } from '@/store';
+import { ReactElement } from 'react';
+
+export default function ConnectWalletPage() {
+ return ;
+}
+
+ConnectWalletPage.getInitialProps = wrapper.getInitialAppProps(() => async () => {
+ return {
+ pageProps: {},
+ };
+});
+
+ConnectWalletPage.getLayout = (page: ReactElement) => {
+ return <>{page}>;
+};
diff --git a/apps/dcellar-web-ui/src/store/slices/persist.ts b/apps/dcellar-web-ui/src/store/slices/persist.ts
index 0b5c9999..f892acac 100644
--- a/apps/dcellar-web-ui/src/store/slices/persist.ts
+++ b/apps/dcellar-web-ui/src/store/slices/persist.ts
@@ -41,6 +41,7 @@ export interface PersistState {
billPageSize: number;
accountBillPageSize: number;
paymentAccountSortBy: SorterType;
+ isShowTutorialCard: boolean;
}
const initialState: PersistState = {
@@ -57,6 +58,7 @@ const initialState: PersistState = {
paymentAccountPageSize: 20,
billPageSize: 20,
accountBillPageSize: 20,
+ isShowTutorialCard: true,
};
export const persistSlice = createSlice({
@@ -128,6 +130,9 @@ export const persistSlice = createSlice({
setUnAvailableSps(state, { payload }: PayloadAction) {
state.unAvailableSps = payload;
},
+ setIsShowTutorialCard(state, { payload }: PayloadAction) {
+ state.isShowTutorialCard = payload;
+ },
},
});
@@ -146,6 +151,7 @@ export const {
setObjectListPageSize,
setGroupSorter,
setGroupListPageSize,
+ setIsShowTutorialCard,
} = persistSlice.actions;
export const selectAccountConfig = (address: string) => (state: AppState) =>
diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml
index b7d1bcab..14d45003 100644
--- a/common/config/rush/pnpm-lock.yaml
+++ b/common/config/rush/pnpm-lock.yaml
@@ -17,7 +17,7 @@ importers:
'@next/eslint-plugin-next': ^13.1.6
'@node-real/icons': ~2.20.3
'@node-real/uikit': ~2.54.8
- '@node-real/walletkit': 1.0.10-alpha.1
+ '@node-real/walletkit': 1.0.12-alpha.1
'@reduxjs/toolkit': ^1.9.5
'@sentry/nextjs': ~7.86.0
'@svgr/webpack': ^6.5.1
@@ -79,7 +79,7 @@ importers:
'@next/bundle-analyzer': 13.5.6
'@node-real/icons': 2.20.3_7ch5h7r5wd6efzixoihb5c76p4
'@node-real/uikit': 2.54.8_5yd7x4lo226drlrqzl7etm6ys4
- '@node-real/walletkit': 1.0.10-alpha.1_u4rurx3tsdwtryhwavg3nqina4
+ '@node-real/walletkit': 1.0.12-alpha.1_u4rurx3tsdwtryhwavg3nqina4
'@reduxjs/toolkit': 1.9.7_reiadaay42xu3uk4bvhmtbk5mu
'@sentry/nextjs': 7.86.0_next@14.1.0+react@18.2.0
'@wagmi/core': 1.4.13_e67w62csy4y75sby3mo4znpfy4
@@ -2697,23 +2697,19 @@ packages:
- '@emotion/styled'
dev: false
- /@node-real/walletkit/1.0.10-alpha.1_u4rurx3tsdwtryhwavg3nqina4:
- resolution: {integrity: sha512-/gS5lm7f6kDJdRCeLKrsZ9xjXQODavbm7ntlx9vLDTUQS0xklw1bABv7F9EXvYICyuIad1Tti54pkoYs9X19jA==}
+ /@node-real/walletkit/1.0.12-alpha.1_u4rurx3tsdwtryhwavg3nqina4:
+ resolution: {integrity: sha512-rhafUZtGIGPjEl195u5iRsuzer8J+jr93t+ZKuDZGOqbybO8lWNjPAEcq+0HkQ4JRLF9mWlzKU8ZDIlMKd7jdw==}
peerDependencies:
react: '>=17'
react-dom: '>=17'
viem: ^1.0.0
wagmi: ^1.0.0
dependencies:
- '@particle-network/auth': 1.3.1
- '@particle-network/provider': 1.3.2_b3guvw2hq722luv3ohe6cnrjee
qrcode: 1.5.3
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
viem: 1.19.15_typescript@5.2.2
wagmi: 1.4.13_jhl4td3v7ogiujz66twl7zic5a
- transitivePeerDependencies:
- - debug
dev: false
/@nodelib/fs.scandir/2.1.5:
@@ -2879,47 +2875,6 @@ packages:
'@parcel/watcher-win32-x64': 2.4.0
dev: false
- /@particle-network/analytics/1.0.1:
- resolution: {integrity: sha512-ApcSMo1BXQlywO+lvOpG3Y2/SVGNCpJzXO/4e3zHzE/9j+uMehsilDzPwWQwLhrCXZYwVm7mmE71Gs36yobiNw==}
- dependencies:
- hash.js: 1.1.7
- uuidv4: 6.2.13
- dev: false
-
- /@particle-network/auth/1.3.1:
- resolution: {integrity: sha512-hu6ie5RjjN4X+6y/vfjyCsSX3pQuS8k8ZoMb61QWwhWsnZXKzpBUVeAEk55aGfxxXY+KfBkSmZosyaZHGoHnfw==}
- dependencies:
- '@particle-network/analytics': 1.0.1
- '@particle-network/chains': 1.3.18
- '@particle-network/crypto': 1.0.1
- buffer: 6.0.3
- draggabilly: 3.0.0
- dev: false
-
- /@particle-network/chains/1.3.18:
- resolution: {integrity: sha512-R38ddazbt5Xt8noVA4Fproc89Mm7UmaRvc7Xkl0XP0sp+HaUJjEwFpL4zTCATYb2sUx3cJgV46fVOuD7/2QWIA==}
- dev: false
-
- /@particle-network/crypto/1.0.1:
- resolution: {integrity: sha512-GgvHmHcFiNkCLZdcJOgctSbgvs251yp+EAdUydOE3gSoIxN6KEr/Snu9DebENhd/nFb7FDk5ap0Hg49P7pj1fg==}
- dependencies:
- crypto-js: 4.2.0
- uuidv4: 6.2.13
- dev: false
-
- /@particle-network/provider/1.3.2_b3guvw2hq722luv3ohe6cnrjee:
- resolution: {integrity: sha512-3XAUMCISTMYE57LZik7PrVanLIUyyU1ufb5eHtsoQw5ORfH0IeX3E5o6x5mxtfOXKfxVQ0tsIoLRMw0jMmSDpA==}
- peerDependencies:
- '@particle-network/auth': '*'
- dependencies:
- '@particle-network/auth': 1.3.1
- '@particle-network/chains': 1.3.18
- axios: 1.6.7
- uuid: 8.3.2
- transitivePeerDependencies:
- - debug
- dev: false
-
/@pkgjs/parseargs/0.11.0:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
@@ -3855,10 +3810,6 @@ packages:
resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==}
dev: false
- /@types/uuid/8.3.4:
- resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==}
- dev: false
-
/@types/ws/7.4.7:
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
dependencies:
@@ -5508,10 +5459,6 @@ packages:
resolution: {integrity: sha512-c9c/o7bS3OjsdpSkvexpka0JNlesBF2JU9B2V1yNsYGwRbAafxhJQ7VI9b48D5bpONz/oxbPGMzBojy9sXoQIQ==}
dev: false
- /crypto-js/4.2.0:
- resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==}
- dev: false
-
/css-in-js-utils/3.1.0:
resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
dependencies:
@@ -5737,13 +5684,6 @@ packages:
is-obj: 2.0.0
dev: true
- /draggabilly/3.0.0:
- resolution: {integrity: sha512-aEs+B6prbMZQMxc9lgTpCBfyCUhRur/VFucHhIOvlvvdARTj7TcDmX/cdOUtqbjJJUh7+agyJXR5Z6IFe1MxwQ==}
- dependencies:
- get-size: 3.0.0
- unidragger: 3.0.1
- dev: false
-
/duplexer/0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
dev: false
@@ -6316,10 +6256,6 @@ packages:
strip-hex-prefix: 1.0.0
dev: false
- /ev-emitter/2.1.2:
- resolution: {integrity: sha512-jQ5Ql18hdCQ4qS+RCrbLfz1n+Pags27q5TwMKvZyhp5hh2UULUYZUy1keqj6k6SYsdqIYjnmz7xyyEY0V67B8Q==}
- dev: false
-
/eventemitter3/4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
dev: false
@@ -6594,10 +6530,6 @@ packages:
resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==}
dev: false
- /get-size/3.0.0:
- resolution: {integrity: sha512-Y8aiXLq4leR7807UY0yuKEwif5s3kbVp1nTv+i4jBeoUzByTLKkLWu/HorS6/pB+7gsB0o7OTogC8AoOOeT0Hw==}
- dev: false
-
/get-stream/6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
@@ -10226,12 +10158,6 @@ packages:
engines: {node: '>=4'}
dev: true
- /unidragger/3.0.1:
- resolution: {integrity: sha512-RngbGSwBFmqGBWjkaH+yB677uzR95blSQyxq6hYbrQCejH3Mx1nm8DVOuh3M9k2fQyTstWUG5qlgCnNqV/9jVw==}
- dependencies:
- ev-emitter: 2.1.2
- dev: false
-
/universalify/2.0.1:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
@@ -10358,13 +10284,6 @@ packages:
hasBin: true
dev: false
- /uuidv4/6.2.13:
- resolution: {integrity: sha512-AXyzMjazYB3ovL3q051VLH06Ixj//Knx7QnUSi1T//Ie3io6CpsPu9nVMOx5MoLWh6xV0B9J0hIaxungxXUbPQ==}
- dependencies:
- '@types/uuid': 8.3.4
- uuid: 8.3.2
- dev: false
-
/v8-compile-cache-lib/3.0.1:
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
dev: true