@n1xyz/wallet-widget 0.0.10 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/Logic/transactionManager.d.ts +1 -1
  2. package/dist/Logic/transactionManager.js +1 -1
  3. package/dist/Logic/transactionManager.js.map +1 -1
  4. package/dist/Modal/NordFlow/NordFlow.js +22 -228
  5. package/dist/Modal/NordFlow/NordFlow.js.map +1 -1
  6. package/dist/Modal/NordFlow/components/Header.d.ts +10 -0
  7. package/dist/Modal/NordFlow/components/Header.js +11 -0
  8. package/dist/Modal/NordFlow/components/Header.js.map +1 -0
  9. package/dist/Modal/NordFlow/components/TransactionTable.js +4 -7
  10. package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -1
  11. package/dist/Modal/NordFlow/components/index.d.ts +1 -0
  12. package/dist/Modal/NordFlow/components/index.js +1 -0
  13. package/dist/Modal/NordFlow/components/index.js.map +1 -1
  14. package/dist/Modal/NordFlow/constants.js +116 -95
  15. package/dist/Modal/NordFlow/constants.js.map +1 -1
  16. package/dist/Modal/NordFlow/context/DepositContext.d.ts +27 -0
  17. package/dist/Modal/NordFlow/context/DepositContext.js +308 -0
  18. package/dist/Modal/NordFlow/context/DepositContext.js.map +1 -0
  19. package/dist/Modal/NordFlow/context/FlowContext.d.ts +23 -0
  20. package/dist/Modal/NordFlow/context/FlowContext.js +125 -0
  21. package/dist/Modal/NordFlow/context/FlowContext.js.map +1 -0
  22. package/dist/Modal/NordFlow/context/NordProvider.d.ts +10 -0
  23. package/dist/Modal/NordFlow/context/NordProvider.js +14 -0
  24. package/dist/Modal/NordFlow/context/NordProvider.js.map +1 -0
  25. package/dist/Modal/NordFlow/context/WalletConnectContext.d.ts +20 -0
  26. package/dist/Modal/NordFlow/context/WalletConnectContext.js +214 -0
  27. package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +1 -0
  28. package/dist/Modal/NordFlow/context/deposit/types.d.ts +26 -0
  29. package/dist/Modal/NordFlow/context/deposit/types.js +2 -0
  30. package/dist/Modal/NordFlow/context/deposit/types.js.map +1 -0
  31. package/dist/Modal/NordFlow/context/deposit/useDepositAuth.d.ts +7 -0
  32. package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js +113 -0
  33. package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js.map +1 -0
  34. package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.d.ts +20 -0
  35. package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js +235 -0
  36. package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js.map +1 -0
  37. package/dist/Modal/NordFlow/context/index.d.ts +5 -0
  38. package/dist/Modal/NordFlow/context/index.js +8 -0
  39. package/dist/Modal/NordFlow/context/index.js.map +1 -0
  40. package/dist/Modal/NordFlow/hooks/index.d.ts +3 -5
  41. package/dist/Modal/NordFlow/hooks/index.js +3 -5
  42. package/dist/Modal/NordFlow/hooks/index.js.map +1 -1
  43. package/dist/Modal/NordFlow/hooks/useDepositFlow.js +2 -4
  44. package/dist/Modal/NordFlow/hooks/useDepositFlow.js.map +1 -1
  45. package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +0 -6
  46. package/dist/Modal/NordFlow/hooks/useNordInstance.js +2 -358
  47. package/dist/Modal/NordFlow/hooks/useNordInstance.js.map +1 -1
  48. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.d.ts +0 -1
  49. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +0 -1
  50. package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js.map +1 -1
  51. package/dist/Modal/NordFlow/screens/00-IdleScreen.d.ts +6 -0
  52. package/dist/Modal/NordFlow/screens/00-IdleScreen.js +9 -0
  53. package/dist/Modal/NordFlow/screens/00-IdleScreen.js.map +1 -0
  54. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.d.ts +1 -6
  55. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +10 -4
  56. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -1
  57. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +1 -5
  58. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +9 -12
  59. package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +1 -1
  60. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.d.ts +1 -7
  61. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +9 -7
  62. package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +1 -1
  63. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +1 -13
  64. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +59 -31
  65. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -1
  66. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.d.ts +1 -6
  67. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +8 -3
  68. package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +1 -1
  69. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.d.ts +1 -8
  70. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +15 -4
  71. package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +1 -1
  72. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.d.ts +1 -6
  73. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +14 -120
  74. package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +1 -1
  75. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +1 -1
  76. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +9 -4
  77. package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -1
  78. package/dist/Modal/NordFlow/screens/09-ErrorScreen.d.ts +1 -7
  79. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +9 -9
  80. package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +1 -1
  81. package/dist/Modal/NordFlow/screens/index.d.ts +1 -0
  82. package/dist/Modal/NordFlow/screens/index.js +1 -0
  83. package/dist/Modal/NordFlow/screens/index.js.map +1 -1
  84. package/dist/Modal/NordFlow/types.d.ts +0 -5
  85. package/dist/Modal/NordFlow/types.js +0 -1
  86. package/dist/Modal/NordFlow/types.js.map +1 -1
  87. package/dist/Modal/NordFlow/utils/index.d.ts +0 -1
  88. package/dist/Modal/NordFlow/utils/index.js +0 -1
  89. package/dist/Modal/NordFlow/utils/index.js.map +1 -1
  90. package/dist/Provider/LazyWalletProvider.js +2 -0
  91. package/dist/Provider/LazyWalletProvider.js.map +1 -1
  92. package/dist/Provider/N1WalletProvider.js +48 -63
  93. package/dist/Provider/N1WalletProvider.js.map +1 -1
  94. package/dist/Provider/WalletErrorBoundary.d.ts +10 -0
  95. package/dist/Provider/WalletErrorBoundary.js +39 -0
  96. package/dist/Provider/WalletErrorBoundary.js.map +1 -0
  97. package/dist/Provider/hooks/useNordUserInitialization.d.ts +20 -0
  98. package/dist/Provider/hooks/useNordUserInitialization.js +293 -0
  99. package/dist/Provider/hooks/useNordUserInitialization.js.map +1 -0
  100. package/dist/Provider/useN1WalletProvider.d.ts +37 -0
  101. package/dist/Provider/useN1WalletProvider.js +398 -0
  102. package/dist/Provider/useN1WalletProvider.js.map +1 -0
  103. package/dist/main.css +1 -1
  104. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/Modal/NordFlow/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,oDAAuC,CAAA;IACvC,gDAAmC,CAAA;IACnC,gDAAmC,CAAA;IACnC,0CAA6B,CAAA;IAC7B,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;IAC/B,4BAAe,CAAA;AACjB,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB;AA+BD;;GAEG;AACH,MAAM,CAAC,IAAM,kBAAkB,GAAgB;IAC7C,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,KAAK;IACrB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,IAAI;IACnB,MAAM,EAAE,EAAE;IACV,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,SAAS;IACvB,gBAAgB,EAAE,IAAI;CACvB,CAAC","sourcesContent":["import React from 'react';\n\n/**\n * Types for the wallet connection flow state machine\n */\n\n/**\n * Enum representing all possible states in the wallet connection flow\n */\nexport enum FlowState {\n IDLE = 'IDLE',\n CONNECTING_WALLET = 'CONNECTING_WALLET',\n ETH_TO_SOL_AUTH = 'ETH_TO_SOL_AUTH',\n CHAIN_SELECTION = 'CHAIN_SELECTION',\n AMOUNT_INPUT = 'AMOUNT_INPUT',\n DEPOSIT_PROGRESS = 'DEPOSIT_PROGRESS',\n DEPOSIT_SUCCESS = 'DEPOSIT_SUCCESS',\n AUTH_LOADING = 'AUTH_LOADING',\n FINAL_SUCCESS = 'FINAL_SUCCESS',\n ERROR = 'ERROR',\n}\n\n/**\n * Interface representing the flow context, containing all data necessary\n * for the wallet connection flow\n */\nexport interface FlowContext {\n walletType: 'solana' | 'ethereum' | null;\n hasNordAccount: boolean;\n hasActiveSession: boolean;\n selectedChain: string | null;\n amount: string;\n transactionId: string | null;\n error: Error | null;\n depositError?: string;\n lastInterruption: {\n timestamp: number;\n state: FlowState;\n context: Partial<FlowContext>;\n } | null;\n}\n\n/**\n * Interface for state transitions in the flow\n */\nexport interface StateTransition {\n from: FlowState | FlowState[];\n to: FlowState;\n condition?: (context: FlowContext) => boolean;\n}\n\n/**\n * Initial flow context with default values\n */\nexport const initialFlowContext: FlowContext = {\n walletType: null,\n hasNordAccount: false,\n hasActiveSession: false,\n selectedChain: null,\n amount: '',\n transactionId: null,\n error: null,\n depositError: undefined,\n lastInterruption: null,\n};\n\nexport interface TableValues {\n amount?: { text: string; visible: boolean; typing: boolean };\n tx: { text: string; visible: boolean; typing: boolean };\n from: { text: string; visible: boolean; typing: boolean };\n to: { text: string; visible: boolean; typing: boolean };\n network: { text: string; visible: boolean; typing: boolean };\n status: { text: string; visible: boolean; typing: boolean };\n}\n\nexport interface WaitingMessageState {\n title: string;\n subtitle: string;\n visible: boolean;\n isTyping: boolean;\n}\n\n/**\n * Interface for a blockchain network\n */\nexport interface Chain {\n id: string;\n name: string;\n logo: string | React.ReactNode;\n disabled?: boolean;\n network?: string;\n description?: string;\n}\n\nexport interface App {\n name: string;\n color: string;\n progress: number;\n}\n\nexport type ButtonKey = 'deposit' | 'continue' | 'openApp';\n\nexport interface ButtonState {\n text: string;\n isTyping: boolean;\n showCursor: boolean;\n}\n\nexport type ButtonStates = Record<ButtonKey, ButtonState>;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/Modal/NordFlow/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,oDAAuC,CAAA;IACvC,gDAAmC,CAAA;IACnC,gDAAmC,CAAA;IACnC,0CAA6B,CAAA;IAC7B,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;IAC/B,4BAAe,CAAA;AACjB,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB;AA4BD;;GAEG;AACH,MAAM,CAAC,IAAM,kBAAkB,GAAgB;IAC7C,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,KAAK;IACrB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,IAAI;IACnB,MAAM,EAAE,EAAE;IACV,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,SAAS;CACxB,CAAC","sourcesContent":["import React from 'react';\n\n/**\n * Types for the wallet connection flow state machine\n */\n\n/**\n * Enum representing all possible states in the wallet connection flow\n */\nexport enum FlowState {\n IDLE = 'IDLE',\n CONNECTING_WALLET = 'CONNECTING_WALLET',\n ETH_TO_SOL_AUTH = 'ETH_TO_SOL_AUTH',\n CHAIN_SELECTION = 'CHAIN_SELECTION',\n AMOUNT_INPUT = 'AMOUNT_INPUT',\n DEPOSIT_PROGRESS = 'DEPOSIT_PROGRESS',\n DEPOSIT_SUCCESS = 'DEPOSIT_SUCCESS',\n AUTH_LOADING = 'AUTH_LOADING',\n FINAL_SUCCESS = 'FINAL_SUCCESS',\n ERROR = 'ERROR',\n}\n\n\n\n/**\n * Interface representing the flow context, containing all data necessary\n * for the wallet connection flow\n */\nexport interface FlowContext {\n walletType: 'solana' | 'ethereum' | null;\n hasNordAccount: boolean;\n hasActiveSession: boolean;\n selectedChain: string | null;\n amount: string;\n transactionId: string | null;\n error: Error | null;\n depositError?: string;\n}\n\n/**\n * Interface for state transitions in the flow\n */\nexport interface StateTransition {\n from: FlowState | FlowState[];\n to: FlowState;\n condition?: (context: FlowContext) => boolean;\n}\n\n/**\n * Initial flow context with default values\n */\nexport const initialFlowContext: FlowContext = {\n walletType: null,\n hasNordAccount: false,\n hasActiveSession: false,\n selectedChain: null,\n amount: '',\n transactionId: null,\n error: null,\n depositError: undefined,\n};\n\nexport interface TableValues {\n amount?: { text: string; visible: boolean; typing: boolean };\n tx: { text: string; visible: boolean; typing: boolean };\n from: { text: string; visible: boolean; typing: boolean };\n to: { text: string; visible: boolean; typing: boolean };\n network: { text: string; visible: boolean; typing: boolean };\n status: { text: string; visible: boolean; typing: boolean };\n}\n\nexport interface WaitingMessageState {\n title: string;\n subtitle: string;\n visible: boolean;\n isTyping: boolean;\n}\n\n/**\n * Interface for a blockchain network\n */\nexport interface Chain {\n id: string;\n name: string;\n logo: string | React.ReactNode;\n disabled?: boolean;\n network?: string;\n description?: string;\n}\n\nexport interface App {\n name: string;\n color: string;\n progress: number;\n}\n\nexport type ButtonKey = 'deposit' | 'continue' | 'openApp';\n\nexport interface ButtonState {\n text: string;\n isTyping: boolean;\n showCursor: boolean;\n}\n\nexport type ButtonStates = Record<ButtonKey, ButtonState>;\n"]}
@@ -1,3 +1,2 @@
1
1
  export * from './imageUtils';
2
- export * from './persistence';
3
2
  export * from './nordUtils';
@@ -1,4 +1,3 @@
1
1
  export * from './imageUtils';
2
- export * from './persistence';
3
2
  export * from './nordUtils';
4
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC","sourcesContent":["export * from './imageUtils';\nexport * from './persistence';\nexport * from './nordUtils';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC","sourcesContent":["export * from './imageUtils';\nexport * from './nordUtils';\n"]}
@@ -118,7 +118,9 @@ function DynamicContextConsumer(_a) {
118
118
  }, [handleLogOut, setDynamicHandleLogOut]);
119
119
  // Set the SDK loaded flag when it changes - only when it actually changes
120
120
  useEffect(function () {
121
+ console.log(sdkHasLoaded, 'sdkHasLoaded');
121
122
  if (sdkHasLoaded !== prevSdkHasLoadedRef.current) {
123
+ console.log(sdkHasLoaded, 'SADASDAS');
122
124
  prevSdkHasLoadedRef.current = sdkHasLoaded;
123
125
  setDynamicSdkHasLoaded(sdkHasLoaded);
124
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LazyWalletProvider.js","sourceRoot":"","sources":["../../src/Provider/LazyWalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { useN1WalletInternalContext } from './hooks';\nimport { N1SessionMode } from './types';\nimport { logger } from '../utils/logger';\n\nfunction DynamicContextConsumer({ children }: { children: any }) {\n const [DynamicContext, setDynamicContext] = useState<any>(null);\n const showAuthFlowRef = useRef<((show: boolean) => void) | null>(null);\n\n // Use refs to track previous values and prevent unnecessary updates\n const prevPrimaryWalletRef = useRef<any>(null);\n const prevHandleLogOutRef = useRef<any>(null);\n const prevSdkHasLoadedRef = useRef<boolean | null>(null);\n\n const {\n setDynamicWallet,\n setDynamicHandleLogOut,\n setDynamicSdkHasLoaded,\n setAddress,\n setShowDynamicWidget,\n } = useN1WalletInternalContext();\n\n // Load the Dynamic context only once\n useEffect(() => {\n let isMounted = true;\n import('@dynamic-labs/sdk-react-core').then(({ useDynamicContext }) => {\n if (isMounted) {\n setDynamicContext(() => useDynamicContext);\n }\n });\n return () => {\n isMounted = false;\n };\n }, []);\n\n // Set up a stable widget function that uses the ref - only once\n useEffect(() => {\n const stableShowWidget = (show: boolean) => {\n if (showAuthFlowRef.current) {\n showAuthFlowRef.current(show);\n }\n };\n\n setShowDynamicWidget(() => stableShowWidget);\n }, [setShowDynamicWidget]);\n\n if (!DynamicContext) {\n return <>{children}</>;\n }\n\n const DynamicComponent = () => {\n const { primaryWallet, sdkHasLoaded, setShowAuthFlow, handleLogOut } =\n DynamicContext();\n\n // Store setShowAuthFlow in ref to avoid re-renders - only when it changes\n useEffect(() => {\n if (setShowAuthFlow !== showAuthFlowRef.current) {\n showAuthFlowRef.current = setShowAuthFlow;\n }\n }, [setShowAuthFlow]);\n\n // Set the dynamic wallet and address when the primary wallet changes\n // Use deep comparison to prevent unnecessary updates\n useEffect(() => {\n // Skip if the wallet hasn't actually changed\n if (primaryWallet === prevPrimaryWalletRef.current) {\n return;\n }\n\n prevPrimaryWalletRef.current = primaryWallet;\n\n if (primaryWallet) {\n setDynamicWallet(primaryWallet);\n setAddress(primaryWallet.address);\n } else {\n setDynamicWallet(null);\n setAddress('');\n }\n }, [primaryWallet, setDynamicWallet, setAddress]);\n\n // Set the logout handler when it changes - only when it actually changes\n useEffect(() => {\n if (handleLogOut && handleLogOut !== prevHandleLogOutRef.current) {\n prevHandleLogOutRef.current = handleLogOut;\n setDynamicHandleLogOut(() => handleLogOut);\n }\n }, [handleLogOut, setDynamicHandleLogOut]);\n\n // Set the SDK loaded flag when it changes - only when it actually changes\n useEffect(() => {\n if (sdkHasLoaded !== prevSdkHasLoadedRef.current) {\n prevSdkHasLoadedRef.current = sdkHasLoaded;\n setDynamicSdkHasLoaded(sdkHasLoaded);\n }\n }, [sdkHasLoaded, setDynamicSdkHasLoaded]);\n\n return <>{children}</>;\n };\n\n return <DynamicComponent />;\n}\n\nconst getSettings = (darkMode: boolean) => ({\n initialAuthenticationMode: 'connect-only',\n environmentId: '61fe6031-545b-4e27-bc05-03c8a09f190b',\n silentAuthentication: true,\n silentAuth: true,\n theme: {\n mode: darkMode ? 'dark' : 'light',\n },\n events: {\n onAuthSuccess: (args: any) => {\n logger.debug('onAuthSuccess was called', args);\n },\n },\n});\n\nfunction LazyInternal(props: { children: any }) {\n const [Provider, setProvider] = useState<any>(null);\n const [walletConnectors, setWalletConnectors] = useState<any[]>([]);\n const { darkMode, sessionMode } = useN1WalletInternalContext();\n\n // Use a ref to track the previous session mode\n const prevSessionModeRef = useRef<N1SessionMode | null>(null);\n\n useEffect(() => {\n // Skip if the session mode hasn't changed\n if (sessionMode === prevSessionModeRef.current) {\n return;\n }\n\n prevSessionModeRef.current = sessionMode;\n\n const loadDynamicDeps = async () => {\n try {\n const [\n { DynamicContextProvider },\n { EthereumWalletConnectors },\n { SolanaWalletConnectors },\n ] = await Promise.all([\n import('@dynamic-labs/sdk-react-core'),\n import('@dynamic-labs/ethereum'),\n import('@dynamic-labs/solana'),\n ]);\n\n setProvider(() => DynamicContextProvider);\n\n if (sessionMode === N1SessionMode.Nord) {\n // Only use Solana wallet connectors for Nord mode\n setWalletConnectors([SolanaWalletConnectors]);\n } else {\n // Use all wallet connectors for NTS mode\n setWalletConnectors([\n EthereumWalletConnectors,\n SolanaWalletConnectors,\n ]);\n }\n } catch (error) {\n logger.error('Failed to load Dynamic dependencies:', error);\n }\n };\n\n loadDynamicDeps();\n }, [sessionMode]);\n\n // Memoize the dynamic settings to prevent unnecessary re-renders\n const dynamicSettings = useCallback(\n () => ({\n ...getSettings(darkMode),\n walletConnectors,\n }),\n [darkMode, walletConnectors]\n );\n\n if (!Provider || walletConnectors.length === 0) {\n return null;\n }\n\n return (\n <Provider settings={dynamicSettings()} theme={darkMode ? 'dark' : 'light'}>\n <DynamicContextConsumer>{props.children}</DynamicContextConsumer>\n </Provider>\n );\n}\n\nexport function LazyWalletProvider({ children }: any) {\n return <LazyInternal>{children}</LazyInternal>;\n}\n"]}
1
+ {"version":3,"file":"LazyWalletProvider.js","sourceRoot":"","sources":["../../src/Provider/LazyWalletProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,SAAS,sBAAsB,CAAC,EAA+B;QAA7B,QAAQ,cAAA;IAClC,IAAA,KAAsC,QAAQ,CAAM,IAAI,CAAC,EAAxD,cAAc,QAAA,EAAE,iBAAiB,QAAuB,CAAC;IAChE,IAAM,eAAe,GAAG,MAAM,CAAmC,IAAI,CAAC,CAAC;IAEvE,oEAAoE;IACpE,IAAM,oBAAoB,GAAG,MAAM,CAAM,IAAI,CAAC,CAAC;IAC/C,IAAM,mBAAmB,GAAG,MAAM,CAAM,IAAI,CAAC,CAAC;IAC9C,IAAM,mBAAmB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEnD,IAAA,KAMF,0BAA0B,EAAE,EAL9B,gBAAgB,sBAAA,EAChB,sBAAsB,4BAAA,EACtB,sBAAsB,4BAAA,EACtB,UAAU,gBAAA,EACV,oBAAoB,0BACU,CAAC;IAEjC,qCAAqC;IACrC,SAAS,CAAC;QACR,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,UAAC,EAAqB;gBAAnB,iBAAiB,uBAAA;YAC9D,IAAI,SAAS,EAAE,CAAC;gBACd,iBAAiB,CAAC,cAAM,OAAA,iBAAiB,EAAjB,CAAiB,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO;YACL,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,gEAAgE;IAChE,SAAS,CAAC;QACR,IAAM,gBAAgB,GAAG,UAAC,IAAa;YACrC,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC5B,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC;QAEF,oBAAoB,CAAC,cAAM,OAAA,gBAAgB,EAAhB,CAAgB,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,4BAAG,QAAQ,GAAI,CAAC;IACzB,CAAC;IAED,IAAM,gBAAgB,GAAG;QACjB,IAAA,KACJ,cAAc,EAAE,EADV,aAAa,mBAAA,EAAE,YAAY,kBAAA,EAAE,eAAe,qBAAA,EAAE,YAAY,kBAChD,CAAC;QAEnB,0EAA0E;QAC1E,SAAS,CAAC;YACR,IAAI,eAAe,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;gBAChD,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC;YAC5C,CAAC;QACH,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QAEtB,qEAAqE;QACrE,qDAAqD;QACrD,SAAS,CAAC;YACR,6CAA6C;YAC7C,IAAI,aAAa,KAAK,oBAAoB,CAAC,OAAO,EAAE,CAAC;gBACnD,OAAO;YACT,CAAC;YAED,oBAAoB,CAAC,OAAO,GAAG,aAAa,CAAC;YAE7C,IAAI,aAAa,EAAE,CAAC;gBAClB,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBAChC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvB,UAAU,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC;QAElD,yEAAyE;QACzE,SAAS,CAAC;YACR,IAAI,YAAY,IAAI,YAAY,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBACjE,mBAAmB,CAAC,OAAO,GAAG,YAAY,CAAC;gBAC3C,sBAAsB,CAAC,cAAM,OAAA,YAAY,EAAZ,CAAY,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,EAAE,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAE3C,0EAA0E;QAC1E,SAAS,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;YACzC,IAAI,YAAY,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;gBACrC,mBAAmB,CAAC,OAAO,GAAG,YAAY,CAAC;gBAC3C,sBAAsB,CAAC,YAAY,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,EAAE,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAE3C,OAAO,4BAAG,QAAQ,GAAI,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,KAAC,gBAAgB,KAAG,CAAC;AAC9B,CAAC;AAED,IAAM,WAAW,GAAG,UAAC,QAAiB,IAAK,OAAA,CAAC;IAC1C,yBAAyB,EAAE,cAAc;IACzC,aAAa,EAAE,sCAAsC;IACrD,oBAAoB,EAAE,IAAI;IAC1B,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;KAClC;IACD,MAAM,EAAE;QACN,aAAa,EAAE,UAAC,IAAS;YACvB,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;KACF;CACF,CAAC,EAbyC,CAazC,CAAC;AAEH,SAAS,YAAY,CAAC,KAAwB;IAA9C,iBAkEC;IAjEO,IAAA,KAA0B,QAAQ,CAAM,IAAI,CAAC,EAA5C,QAAQ,QAAA,EAAE,WAAW,QAAuB,CAAC;IAC9C,IAAA,KAA0C,QAAQ,CAAQ,EAAE,CAAC,EAA5D,gBAAgB,QAAA,EAAE,mBAAmB,QAAuB,CAAC;IAC9D,IAAA,KAA4B,0BAA0B,EAAE,EAAtD,QAAQ,cAAA,EAAE,WAAW,iBAAiC,CAAC;IAE/D,+CAA+C;IAC/C,IAAM,kBAAkB,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAC;IAE9D,SAAS,CAAC;QACR,0CAA0C;QAC1C,IAAI,WAAW,KAAK,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,kBAAkB,CAAC,OAAO,GAAG,WAAW,CAAC;QAEzC,IAAM,eAAe,GAAG;;;;;;wBAMhB,qBAAM,OAAO,CAAC,GAAG,CAAC;gCACpB,MAAM,CAAC,8BAA8B,CAAC;gCACtC,MAAM,CAAC,wBAAwB,CAAC;gCAChC,MAAM,CAAC,sBAAsB,CAAC;6BAC/B,CAAC,EAAA;;wBARI,KAIF,SAIF,EAPE,uDAAsB,EACtB,wBAAwB,iCAAA,EACxB,sBAAsB,+BAAA;wBAO1B,WAAW,CAAC,cAAM,OAAA,wBAAsB,EAAtB,CAAsB,CAAC,CAAC;wBAE1C,IAAI,WAAW,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;4BACvC,kDAAkD;4BAClD,mBAAmB,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;wBAChD,CAAC;6BAAM,CAAC;4BACN,yCAAyC;4BACzC,mBAAmB,CAAC;gCAClB,wBAAwB;gCACxB,sBAAsB;6BACvB,CAAC,CAAC;wBACL,CAAC;;;;wBAED,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,OAAK,CAAC,CAAC;;;;;aAE/D,CAAC;QAEF,eAAe,EAAE,CAAC;IACpB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,iEAAiE;IACjE,IAAM,eAAe,GAAG,WAAW,CACjC,cAAM,OAAA,uBACD,WAAW,CAAC,QAAQ,CAAC,KACxB,gBAAgB,kBAAA,IAChB,EAHI,CAGJ,EACF,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAC7B,CAAC;IAEF,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,QAAQ,IAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,YACvE,KAAC,sBAAsB,cAAE,KAAK,CAAC,QAAQ,GAA0B,GACxD,CACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAiB;QAAf,QAAQ,cAAA;IAC3C,OAAO,KAAC,YAAY,cAAE,QAAQ,GAAgB,CAAC;AACjD,CAAC","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { useN1WalletInternalContext } from './hooks';\nimport { N1SessionMode } from './types';\nimport { logger } from '../utils/logger';\n\nfunction DynamicContextConsumer({ children }: { children: any }) {\n const [DynamicContext, setDynamicContext] = useState<any>(null);\n const showAuthFlowRef = useRef<((show: boolean) => void) | null>(null);\n\n // Use refs to track previous values and prevent unnecessary updates\n const prevPrimaryWalletRef = useRef<any>(null);\n const prevHandleLogOutRef = useRef<any>(null);\n const prevSdkHasLoadedRef = useRef<boolean | null>(null);\n\n const {\n setDynamicWallet,\n setDynamicHandleLogOut,\n setDynamicSdkHasLoaded,\n setAddress,\n setShowDynamicWidget,\n } = useN1WalletInternalContext();\n\n // Load the Dynamic context only once\n useEffect(() => {\n let isMounted = true;\n import('@dynamic-labs/sdk-react-core').then(({ useDynamicContext }) => {\n if (isMounted) {\n setDynamicContext(() => useDynamicContext);\n }\n });\n return () => {\n isMounted = false;\n };\n }, []);\n\n // Set up a stable widget function that uses the ref - only once\n useEffect(() => {\n const stableShowWidget = (show: boolean) => {\n if (showAuthFlowRef.current) {\n showAuthFlowRef.current(show);\n }\n };\n\n setShowDynamicWidget(() => stableShowWidget);\n }, [setShowDynamicWidget]);\n\n if (!DynamicContext) {\n return <>{children}</>;\n }\n\n const DynamicComponent = () => {\n const { primaryWallet, sdkHasLoaded, setShowAuthFlow, handleLogOut } =\n DynamicContext();\n\n // Store setShowAuthFlow in ref to avoid re-renders - only when it changes\n useEffect(() => {\n if (setShowAuthFlow !== showAuthFlowRef.current) {\n showAuthFlowRef.current = setShowAuthFlow;\n }\n }, [setShowAuthFlow]);\n\n // Set the dynamic wallet and address when the primary wallet changes\n // Use deep comparison to prevent unnecessary updates\n useEffect(() => {\n // Skip if the wallet hasn't actually changed\n if (primaryWallet === prevPrimaryWalletRef.current) {\n return;\n }\n\n prevPrimaryWalletRef.current = primaryWallet;\n\n if (primaryWallet) {\n setDynamicWallet(primaryWallet);\n setAddress(primaryWallet.address);\n } else {\n setDynamicWallet(null);\n setAddress('');\n }\n }, [primaryWallet, setDynamicWallet, setAddress]);\n\n // Set the logout handler when it changes - only when it actually changes\n useEffect(() => {\n if (handleLogOut && handleLogOut !== prevHandleLogOutRef.current) {\n prevHandleLogOutRef.current = handleLogOut;\n setDynamicHandleLogOut(() => handleLogOut);\n }\n }, [handleLogOut, setDynamicHandleLogOut]);\n\n // Set the SDK loaded flag when it changes - only when it actually changes\n useEffect(() => {\n console.log(sdkHasLoaded, 'sdkHasLoaded')\n if (sdkHasLoaded !== prevSdkHasLoadedRef.current) {\n console.log(sdkHasLoaded, 'SADASDAS')\n prevSdkHasLoadedRef.current = sdkHasLoaded;\n setDynamicSdkHasLoaded(sdkHasLoaded);\n }\n }, [sdkHasLoaded, setDynamicSdkHasLoaded]);\n\n return <>{children}</>;\n };\n\n return <DynamicComponent />;\n}\n\nconst getSettings = (darkMode: boolean) => ({\n initialAuthenticationMode: 'connect-only',\n environmentId: '61fe6031-545b-4e27-bc05-03c8a09f190b',\n silentAuthentication: true,\n silentAuth: true,\n theme: {\n mode: darkMode ? 'dark' : 'light',\n },\n events: {\n onAuthSuccess: (args: any) => {\n logger.debug('onAuthSuccess was called', args);\n },\n },\n});\n\nfunction LazyInternal(props: { children: any }) {\n const [Provider, setProvider] = useState<any>(null);\n const [walletConnectors, setWalletConnectors] = useState<any[]>([]);\n const { darkMode, sessionMode } = useN1WalletInternalContext();\n\n // Use a ref to track the previous session mode\n const prevSessionModeRef = useRef<N1SessionMode | null>(null);\n\n useEffect(() => {\n // Skip if the session mode hasn't changed\n if (sessionMode === prevSessionModeRef.current) {\n return;\n }\n\n prevSessionModeRef.current = sessionMode;\n\n const loadDynamicDeps = async () => {\n try {\n const [\n { DynamicContextProvider },\n { EthereumWalletConnectors },\n { SolanaWalletConnectors },\n ] = await Promise.all([\n import('@dynamic-labs/sdk-react-core'),\n import('@dynamic-labs/ethereum'),\n import('@dynamic-labs/solana'),\n ]);\n\n setProvider(() => DynamicContextProvider);\n\n if (sessionMode === N1SessionMode.Nord) {\n // Only use Solana wallet connectors for Nord mode\n setWalletConnectors([SolanaWalletConnectors]);\n } else {\n // Use all wallet connectors for NTS mode\n setWalletConnectors([\n EthereumWalletConnectors,\n SolanaWalletConnectors,\n ]);\n }\n } catch (error) {\n logger.error('Failed to load Dynamic dependencies:', error);\n }\n };\n\n loadDynamicDeps();\n }, [sessionMode]);\n\n // Memoize the dynamic settings to prevent unnecessary re-renders\n const dynamicSettings = useCallback(\n () => ({\n ...getSettings(darkMode),\n walletConnectors,\n }),\n [darkMode, walletConnectors]\n );\n\n if (!Provider || walletConnectors.length === 0) {\n return null;\n }\n\n return (\n <Provider settings={dynamicSettings()} theme={darkMode ? 'dark' : 'light'}>\n <DynamicContextConsumer>{props.children}</DynamicContextConsumer>\n </Provider>\n );\n}\n\nexport function LazyWalletProvider({ children }: any) {\n return <LazyInternal>{children}</LazyInternal>;\n}\n"]}
@@ -1,19 +1,4 @@
1
1
  'use client';
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -50,70 +35,57 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
50
35
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
36
  }
52
37
  };
53
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
38
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
54
39
  import React, { Suspense, useCallback, useEffect, useState } from 'react';
55
40
  import { N1WalletModal } from '../Modal/N1WalletModal';
41
+ import { NordProvider } from '../Modal/NordFlow/context';
56
42
  import { WalletError, WalletErrorCode } from '../errors/types';
57
43
  import { logger } from '../utils/logger';
44
+ import WalletErrorBoundary from './WalletErrorBoundary';
58
45
  import { N1InternalWalletContext, N1WalletContext } from './context';
59
46
  import { N1ModalViewMode, N1SessionMode, } from './types';
47
+ import { useNordUserInitialization } from './hooks/useNordUserInitialization';
60
48
  var LazyWalletProvider = React.lazy(function () {
61
49
  return import('./LazyWalletProvider').then(function (mod) { return ({
62
50
  default: mod.LazyWalletProvider,
63
51
  }); });
64
52
  });
65
- // Error boundary to catch WalletErrors
66
- var WalletErrorBoundary = /** @class */ (function (_super) {
67
- __extends(WalletErrorBoundary, _super);
68
- function WalletErrorBoundary() {
69
- return _super !== null && _super.apply(this, arguments) || this;
70
- }
71
- WalletErrorBoundary.prototype.componentDidCatch = function (error) {
72
- if (error instanceof WalletError) {
73
- this.props.onError(error);
74
- }
75
- else {
76
- // Convert unknown errors to WalletError
77
- this.props.onError(new WalletError(WalletErrorCode.UNKNOWN, error.message || 'An unexpected error occurred', { originalError: error }));
78
- }
79
- };
80
- WalletErrorBoundary.prototype.render = function () {
81
- return this.props.children;
82
- };
83
- return WalletErrorBoundary;
84
- }(React.Component));
85
53
  export function N1WalletProvider(_a) {
86
54
  var _this = this;
87
55
  var children = _a.children, providedSessionMode = _a.providedSessionMode, appId = _a.appId, _b = _a.darkMode, darkMode = _b === void 0 ? true : _b, onError = _a.onError, faucetUrl = _a.faucetUrl, nord = _a.nord;
88
56
  var _c = useState(false), isConnected = _c[0], setIsConnected = _c[1];
89
57
  var _d = useState(null), ntsInterface = _d[0], setNtsInterface = _d[1];
90
- var _e = useState(false), showLogin = _e[0], setShowLogin = _e[1];
91
- var _f = useState(null), sessionPubKey = _f[0], setSessionPubKey = _f[1];
92
- var _g = useState(null), walletPubKey = _g[0], setWalletPubKey = _g[1];
93
- var _h = useState(null), userChain = _h[0], setUserChain = _h[1];
94
- var _j = useState(''), username = _j[0], setUsername = _j[1];
95
- var _k = useState(null), signMessageWithSessionKey = _k[0], setSignMessageWithSessionKey = _k[1];
96
- var _l = useState(null), signMessageWithWalletKey = _l[0], setSignMessageWithWalletKey = _l[1];
97
- var _m = useState(null), signTransactionWithWalletKey = _m[0], setSignTransactionWithWalletKey = _m[1];
98
- var _o = useState(false), showSidebar = _o[0], setShowSidebar = _o[1];
99
- var _p = useState(false), startClosingLogin = _p[0], setStartClosingLogin = _p[1];
100
- var _q = useState(false), loading = _q[0], setLoading = _q[1];
101
- var _r = useState(N1ModalViewMode.Connect), viewMode = _r[0], setViewMode = _r[1];
102
- var _s = useState(null), nordUser = _s[0], setNordUser = _s[1];
58
+ var _e = useState(null), sessionPubKey = _e[0], setSessionPubKey = _e[1];
59
+ var _f = useState(null), walletPubKey = _f[0], setWalletPubKey = _f[1];
60
+ var _g = useState(null), userChain = _g[0], setUserChain = _g[1];
61
+ var _h = useState(''), username = _h[0], setUsername = _h[1];
62
+ var _j = useState(null), signMessageWithSessionKey = _j[0], setSignMessageWithSessionKey = _j[1];
63
+ var _k = useState(null), signMessageWithWalletKey = _k[0], setSignMessageWithWalletKey = _k[1];
64
+ var _l = useState(null), signTransactionWithWalletKey = _l[0], setSignTransactionWithWalletKey = _l[1];
65
+ var _m = useState(false), loading = _m[0], setLoading = _m[1];
66
+ var _o = useState(N1ModalViewMode.Connect), viewMode = _o[0], setViewMode = _o[1];
67
+ var _p = useState(null), nordUser = _p[0], setNordUser = _p[1];
103
68
  // dynamic
104
- var _t = useState(''), address = _t[0], setAddress = _t[1];
105
- var _u = useState([]), balances = _u[0], setBalances = _u[1];
106
- var _v = useState(''), chain = _v[0], setChain = _v[1];
107
- var _w = useState(null), dynamicSdkHasLoaded = _w[0], setDynamicSdkHasLoaded = _w[1];
108
- var _x = useState(null), dynamicHandleLogOut = _x[0], setDynamicHandleLogOut = _x[1];
109
- var _y = useState(null), sessionMode = _y[0], setSessionMode = _y[1];
110
- var _z = useState(null), dynamicWallet = _z[0], setDynamicWallet = _z[1];
111
- var _0 = useState(null), showDynamicWidget = _0[0], setShowDynamicWidget = _0[1];
69
+ var _q = useState([]), balances = _q[0], setBalances = _q[1];
70
+ var _r = useState(''), chain = _r[0], setChain = _r[1];
71
+ var _s = useState(null), dynamicSdkHasLoaded = _s[0], setDynamicSdkHasLoaded = _s[1];
72
+ var _t = useState(null), sessionMode = _t[0], setSessionMode = _t[1];
73
+ var _u = useState(false), showLogin = _u[0], setShowLogin = _u[1];
74
+ var _v = useState(false), startClosingLogin = _v[0], setStartClosingLogin = _v[1];
75
+ var _w = useState(false), showSidebar = _w[0], setShowSidebar = _w[1];
76
+ var _x = useState(null), showDynamicWidget = _x[0], setShowDynamicWidget = _x[1];
77
+ // dynamic
78
+ var _y = useState(''), address = _y[0], setAddress = _y[1];
79
+ var _z = useState(null), dynamicHandleLogOut = _z[0], setDynamicHandleLogOut = _z[1];
80
+ var _0 = useState(null), dynamicWallet = _0[0], setDynamicWallet = _0[1];
112
81
  // Combine SDK loading and initialization into a single effect
113
82
  useEffect(function () {
114
83
  var mounted = true;
115
84
  // Set the session mode from props
116
85
  setSessionMode(providedSessionMode);
86
+ if (providedSessionMode === N1SessionMode.Nord) {
87
+ return;
88
+ }
117
89
  // Load the appropriate SDK
118
90
  var loadSDK = function () { return __awaiter(_this, void 0, void 0, function () {
119
91
  var NTSInterface, error_1;
@@ -122,9 +94,6 @@ export function N1WalletProvider(_a) {
122
94
  case 0:
123
95
  // eslint-disable-next-line no-console
124
96
  logger.debug('Loading NTS SDK');
125
- if (providedSessionMode === N1SessionMode.Nord) {
126
- return [2 /*return*/];
127
- }
128
97
  _a.label = 1;
129
98
  case 1:
130
99
  _a.trys.push([1, 3, , 4]);
@@ -162,7 +131,6 @@ export function N1WalletProvider(_a) {
162
131
  var handleError = useCallback(function (error) {
163
132
  onError === null || onError === void 0 ? void 0 : onError(error);
164
133
  }, [onError]);
165
- // Simple function to test error handler
166
134
  var throwTestError = function () { return __awaiter(_this, void 0, void 0, function () {
167
135
  return __generator(this, function (_a) {
168
136
  handleError(new WalletError(WalletErrorCode.WALLET_NOT_FOUND, 'Test error: No compatible wallet was found'));
@@ -193,7 +161,24 @@ export function N1WalletProvider(_a) {
193
161
  nord: nord,
194
162
  nordUser: nordUser,
195
163
  };
196
- return (_jsx(WalletErrorBoundary, { onError: handleError, children: _jsx(N1WalletContext.Provider, { value: walletContextValue, children: _jsxs(N1InternalWalletContext.Provider, { value: {
164
+ // Use the extracted hook for NordUser initialization
165
+ useNordUserInitialization({
166
+ sessionMode: providedSessionMode,
167
+ dynamicWallet: dynamicWallet,
168
+ address: address,
169
+ nord: nord,
170
+ signMessageWithSessionKey: signMessageWithSessionKey,
171
+ signMessageWithWalletKey: signMessageWithWalletKey,
172
+ signTransactionWithWalletKey: signTransactionWithWalletKey,
173
+ sessionPubKey: sessionPubKey,
174
+ nordUser: nordUser,
175
+ setNordUser: setNordUser,
176
+ setSessionPubKey: setSessionPubKey,
177
+ setSignMessageWithSessionKey: setSignMessageWithSessionKey,
178
+ setSignMessageWithWalletKey: setSignMessageWithWalletKey,
179
+ setSignTransactionWithWalletKey: setSignTransactionWithWalletKey,
180
+ });
181
+ return (_jsx(WalletErrorBoundary, { onError: handleError, children: _jsx(N1WalletContext.Provider, { value: walletContextValue, children: _jsx(N1InternalWalletContext.Provider, { value: {
197
182
  dynamicHandleLogOut: dynamicHandleLogOut,
198
183
  dynamicWallet: dynamicWallet,
199
184
  loading: loading,
@@ -227,6 +212,6 @@ export function N1WalletProvider(_a) {
227
212
  sessionMode: sessionMode,
228
213
  faucetUrl: faucetUrl,
229
214
  setNordUser: setNordUser,
230
- }, children: [children, _jsx(N1WalletModal, {}), _jsx(Suspense, { fallback: null, children: _jsx(LazyWalletProvider, {}) })] }) }) }));
215
+ }, children: sessionMode === N1SessionMode.Nord ? (_jsx(NordProvider, { children: _jsxs(_Fragment, { children: [children, _jsx(N1WalletModal, {}), _jsx(Suspense, { fallback: null, children: _jsx(LazyWalletProvider, {}) })] }) })) : (_jsxs(_Fragment, { children: [children, _jsx(N1WalletModal, {}), _jsx(Suspense, { fallback: null, children: _jsx(LazyWalletProvider, {}) })] })) }) }) }));
231
216
  }
232
217
  //# sourceMappingURL=N1WalletProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"N1WalletProvider.js","sourceRoot":"","sources":["../../src/Provider/N1WalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, { Suspense, useCallback, useEffect, useState } from 'react';\nimport { N1WalletModal } from '../Modal/N1WalletModal';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport { N1InternalWalletContext, N1WalletContext } from './context';\nimport {\n Balance,\n N1ModalViewMode,\n N1SessionMode,\n N1WalletProviderProps,\n} from './types';\n\nconst LazyWalletProvider = React.lazy(() =>\n import('./LazyWalletProvider').then((mod) => ({\n default: mod.LazyWalletProvider,\n }))\n);\n\n// Error boundary to catch WalletErrors\nclass WalletErrorBoundary extends React.Component<{\n children: React.ReactNode;\n onError: (error: WalletError) => void;\n}> {\n componentDidCatch(error: Error) {\n if (error instanceof WalletError) {\n this.props.onError(error);\n } else {\n // Convert unknown errors to WalletError\n this.props.onError(\n new WalletError(\n WalletErrorCode.UNKNOWN,\n error.message || 'An unexpected error occurred',\n { originalError: error }\n )\n );\n }\n }\n\n render() {\n return this.props.children;\n }\n}\n\nexport function N1WalletProvider({\n children,\n providedSessionMode,\n appId,\n darkMode = true,\n onError,\n faucetUrl,\n nord,\n}: N1WalletProviderProps) {\n const [isConnected, setIsConnected] = useState<boolean>(false);\n const [ntsInterface, setNtsInterface] = useState<any>(null);\n const [showLogin, setShowLogin] = useState<boolean>(false);\n const [sessionPubKey, setSessionPubKey] = useState<Uint8Array | null>(null);\n const [walletPubKey, setWalletPubKey] = useState<Uint8Array | null>(null);\n const [userChain, setUserChain] = useState<string | null>(null);\n const [username, setUsername] = useState<string>('');\n const [signMessageWithSessionKey, setSignMessageWithSessionKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signMessageWithWalletKey, setSignMessageWithWalletKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signTransactionWithWalletKey, setSignTransactionWithWalletKey] =\n useState<((transaction: any) => Promise<any>) | null>(null);\n const [showSidebar, setShowSidebar] = useState<boolean>(false);\n const [startClosingLogin, setStartClosingLogin] = useState<boolean>(false);\n const [loading, setLoading] = useState<boolean>(false);\n const [viewMode, setViewMode] = useState<N1ModalViewMode>(\n N1ModalViewMode.Connect\n );\n const [nordUser, setNordUser] = useState<any>(null);\n\n // dynamic\n const [address, setAddress] = useState<string>('');\n const [balances, setBalances] = useState<Balance[]>([]);\n const [chain, setChain] = useState<string>('');\n const [dynamicSdkHasLoaded, setDynamicSdkHasLoaded] = useState<any>(null);\n const [dynamicHandleLogOut, setDynamicHandleLogOut] = useState<any>(null);\n const [sessionMode, setSessionMode] = useState<N1SessionMode | null>(null);\n const [dynamicWallet, setDynamicWallet] = useState<any>(null);\n const [showDynamicWidget, setShowDynamicWidget] = useState<any>(null);\n\n\n // Combine SDK loading and initialization into a single effect\n useEffect(() => {\n let mounted = true;\n\n // Set the session mode from props\n setSessionMode(providedSessionMode);\n\n // Load the appropriate SDK\n const loadSDK = async () => {\n // eslint-disable-next-line no-console\n logger.debug('Loading NTS SDK');\n\n if (providedSessionMode === N1SessionMode.Nord) {\n return;\n }\n\n try {\n const { NTSInterface } = await import('@n1xyz/nts-sdk');\n if (mounted) {\n // eslint-disable-next-line no-console\n logger.debug('NTS SDK loaded successfully');\n setNtsInterface(new NTSInterface(process.env.NTS_URL!));\n }\n } catch (error) {\n if (mounted) {\n // eslint-disable-next-line no-console\n logger.error('Error loading NTS SDK:', error);\n }\n }\n };\n\n loadSDK();\n\n return () => {\n mounted = false;\n };\n }, [providedSessionMode, onError]);\n\n // Separate effect to handle loading state based on both SDKs\n useEffect(() => {\n const isDynamicReady =\n dynamicSdkHasLoaded || providedSessionMode === N1SessionMode.Nord;\n const isNtsReady =\n ntsInterface || providedSessionMode === N1SessionMode.Nord;\n\n setLoading(!isDynamicReady || !isNtsReady);\n }, [dynamicSdkHasLoaded, ntsInterface, providedSessionMode]);\n\n const handleError = useCallback(\n (error: WalletError) => {\n onError?.(error);\n },\n [onError]\n );\n\n // Simple function to test error handler\n const throwTestError = async () => {\n handleError(\n new WalletError(\n WalletErrorCode.WALLET_NOT_FOUND,\n 'Test error: No compatible wallet was found'\n )\n );\n };\n\n // Create the wallet context value\n const walletContextValue = {\n address,\n appId,\n balances,\n chain,\n isConnected,\n ntsInterface,\n sessionMode,\n sessionPubKey,\n setShowLogin,\n showLogin,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n userChain,\n username,\n viewMode,\n walletPubKey,\n throwTestError,\n faucetUrl,\n nord,\n nordUser,\n };\n\n return (\n <WalletErrorBoundary onError={handleError}>\n <N1WalletContext.Provider value={walletContextValue}>\n <N1InternalWalletContext.Provider\n value={{\n dynamicHandleLogOut,\n dynamicWallet,\n loading,\n dynamicSdkHasLoaded,\n handleError,\n setDynamicSdkHasLoaded,\n setAddress,\n setBalances,\n setChain,\n setDynamicHandleLogOut,\n setDynamicWallet,\n setIsConnected,\n setLoading,\n setNtsInterface,\n setSessionMode,\n setSessionPubKey,\n setShowSidebar,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n setStartClosingLogin,\n setUsername,\n setUserChain,\n setViewMode,\n setWalletPubKey,\n showSidebar,\n startClosingLogin,\n showDynamicWidget,\n setShowDynamicWidget,\n darkMode,\n sessionMode,\n faucetUrl,\n setNordUser,\n }}\n >\n {children}\n <N1WalletModal />\n <Suspense fallback={null}>\n <LazyWalletProvider />\n </Suspense>\n </N1InternalWalletContext.Provider>\n </N1WalletContext.Provider>\n </WalletErrorBoundary>\n );\n}\n"]}
1
+ {"version":3,"file":"N1WalletProvider.js","sourceRoot":"","sources":["../../src/Provider/N1WalletProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport { NordUser } from '@n1xyz/nord-ts';\nimport React, { Suspense, useCallback, useEffect, useState } from 'react';\nimport { N1WalletModal } from '../Modal/N1WalletModal';\nimport { NordProvider } from '../Modal/NordFlow/context';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport WalletErrorBoundary from './WalletErrorBoundary';\nimport { N1InternalWalletContext, N1WalletContext } from './context';\nimport {\n Balance,\n N1ModalViewMode,\n N1SessionMode,\n N1WalletProviderProps,\n} from './types';\nimport { useNordUserInitialization } from './hooks/useNordUserInitialization';\n\nconst LazyWalletProvider = React.lazy(() =>\n import('./LazyWalletProvider').then((mod) => ({\n default: mod.LazyWalletProvider,\n }))\n);\n\nexport function N1WalletProvider({\n children,\n providedSessionMode,\n appId,\n darkMode = true,\n onError,\n faucetUrl,\n nord,\n}: N1WalletProviderProps) {\n const [isConnected, setIsConnected] = useState<boolean>(false);\n const [ntsInterface, setNtsInterface] = useState<any>(null);\n const [sessionPubKey, setSessionPubKey] = useState<Uint8Array | null>(null);\n const [walletPubKey, setWalletPubKey] = useState<Uint8Array | null>(null);\n const [userChain, setUserChain] = useState<string | null>(null);\n const [username, setUsername] = useState<string>('');\n const [signMessageWithSessionKey, setSignMessageWithSessionKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signMessageWithWalletKey, setSignMessageWithWalletKey] = useState<\n ((message: any) => Promise<any>) | null\n >(null);\n const [signTransactionWithWalletKey, setSignTransactionWithWalletKey] =\n useState<((transaction: any) => Promise<any>) | null>(null);\n const [loading, setLoading] = useState<boolean>(false);\n const [viewMode, setViewMode] = useState<N1ModalViewMode>(\n N1ModalViewMode.Connect\n );\n const [nordUser, setNordUser] = useState<any>(null);\n\n // dynamic\n const [balances, setBalances] = useState<Balance[]>([]);\n const [chain, setChain] = useState<string>('');\n const [dynamicSdkHasLoaded, setDynamicSdkHasLoaded] = useState<any>(null);\n const [sessionMode, setSessionMode] = useState<N1SessionMode | null>(null);\n\n const [showLogin, setShowLogin] = useState<boolean>(false);\n const [startClosingLogin, setStartClosingLogin] = useState<boolean>(false);\n const [showSidebar, setShowSidebar] = useState<boolean>(false);\n const [showDynamicWidget, setShowDynamicWidget] = useState<any>(null);\n\n // dynamic\n const [address, setAddress] = useState<string>('');\n const [dynamicHandleLogOut, setDynamicHandleLogOut] = useState<any>(null);\n const [dynamicWallet, setDynamicWallet] = useState<any>(null);\n\n // Combine SDK loading and initialization into a single effect\n useEffect(() => {\n let mounted = true;\n\n // Set the session mode from props\n setSessionMode(providedSessionMode);\n if (providedSessionMode === N1SessionMode.Nord) {\n return\n }\n\n // Load the appropriate SDK\n const loadSDK = async () => {\n // eslint-disable-next-line no-console\n logger.debug('Loading NTS SDK');\n\n try {\n const { NTSInterface } = await import('@n1xyz/nts-sdk');\n if (mounted) {\n // eslint-disable-next-line no-console\n logger.debug('NTS SDK loaded successfully');\n setNtsInterface(new NTSInterface(process.env.NTS_URL!));\n }\n } catch (error) {\n if (mounted) {\n // eslint-disable-next-line no-console\n logger.error('Error loading NTS SDK:', error);\n }\n }\n };\n\n loadSDK();\n\n return () => {\n mounted = false;\n };\n }, [providedSessionMode, onError]);\n\n // Separate effect to handle loading state based on both SDKs\n useEffect(() => {\n const isDynamicReady =\n dynamicSdkHasLoaded || providedSessionMode === N1SessionMode.Nord;\n const isNtsReady =\n ntsInterface || providedSessionMode === N1SessionMode.Nord;\n\n setLoading(!isDynamicReady || !isNtsReady);\n }, [dynamicSdkHasLoaded, ntsInterface, providedSessionMode]);\n\n const handleError = useCallback(\n (error: WalletError) => {\n onError?.(error);\n },\n [onError]\n );\n\n const throwTestError = async () => {\n handleError(\n new WalletError(\n WalletErrorCode.WALLET_NOT_FOUND,\n 'Test error: No compatible wallet was found'\n )\n );\n };\n\n // Create the wallet context value\n const walletContextValue = {\n address,\n appId,\n balances,\n chain,\n isConnected,\n ntsInterface,\n sessionMode,\n sessionPubKey,\n setShowLogin,\n showLogin,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n userChain,\n username,\n viewMode,\n walletPubKey,\n throwTestError,\n faucetUrl,\n nord,\n nordUser,\n };\n\n // Use the extracted hook for NordUser initialization\n useNordUserInitialization({\n sessionMode: providedSessionMode,\n dynamicWallet,\n address,\n nord,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n nordUser,\n setNordUser,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n });\n\n return (\n <WalletErrorBoundary onError={handleError}>\n <N1WalletContext.Provider value={walletContextValue}>\n <N1InternalWalletContext.Provider\n value={{\n dynamicHandleLogOut,\n dynamicWallet,\n loading,\n dynamicSdkHasLoaded,\n handleError,\n setDynamicSdkHasLoaded,\n setAddress,\n setBalances,\n setChain,\n setDynamicHandleLogOut,\n setDynamicWallet,\n setIsConnected,\n setLoading,\n setNtsInterface,\n setSessionMode,\n setSessionPubKey,\n setShowSidebar,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n setStartClosingLogin,\n setUsername,\n setUserChain,\n setViewMode,\n setWalletPubKey,\n showSidebar,\n startClosingLogin,\n showDynamicWidget,\n setShowDynamicWidget,\n darkMode,\n sessionMode,\n faucetUrl,\n setNordUser,\n }}\n >\n {sessionMode === N1SessionMode.Nord ? (\n <NordProvider>\n <>\n {children}\n <N1WalletModal />\n <Suspense fallback={null}>\n <LazyWalletProvider />\n </Suspense>\n </>\n </NordProvider>\n ) : (\n <>\n {children}\n <N1WalletModal />\n <Suspense fallback={null}>\n <LazyWalletProvider />\n </Suspense>\n </>\n )}\n </N1InternalWalletContext.Provider>\n </N1WalletContext.Provider>\n </WalletErrorBoundary>\n );\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { WalletError } from '../errors/types';
3
+ declare class WalletErrorBoundary extends React.Component<{
4
+ children: React.ReactNode;
5
+ onError: (error: WalletError) => void;
6
+ }> {
7
+ componentDidCatch(error: Error): void;
8
+ render(): React.ReactNode;
9
+ }
10
+ export default WalletErrorBoundary;
@@ -0,0 +1,39 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ import React from 'react';
17
+ import { WalletError, WalletErrorCode } from '../errors/types';
18
+ // Error boundary to catch WalletErrors
19
+ var WalletErrorBoundary = /** @class */ (function (_super) {
20
+ __extends(WalletErrorBoundary, _super);
21
+ function WalletErrorBoundary() {
22
+ return _super !== null && _super.apply(this, arguments) || this;
23
+ }
24
+ WalletErrorBoundary.prototype.componentDidCatch = function (error) {
25
+ if (error instanceof WalletError) {
26
+ this.props.onError(error);
27
+ }
28
+ else {
29
+ // Convert unknown errors to WalletError
30
+ this.props.onError(new WalletError(WalletErrorCode.UNKNOWN, error.message || 'An unexpected error occurred', { originalError: error }));
31
+ }
32
+ };
33
+ WalletErrorBoundary.prototype.render = function () {
34
+ return this.props.children;
35
+ };
36
+ return WalletErrorBoundary;
37
+ }(React.Component));
38
+ export default WalletErrorBoundary;
39
+ //# sourceMappingURL=WalletErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletErrorBoundary.js","sourceRoot":"","sources":["../../src/Provider/WalletErrorBoundary.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE/D,uCAAuC;AACvC;IAAkC,uCAGhC;IAHF;;IAsBA,CAAC;IAlBC,+CAAiB,GAAjB,UAAkB,KAAY;QAC5B,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAChB,IAAI,WAAW,CACb,eAAe,CAAC,OAAO,EACvB,KAAK,CAAC,OAAO,IAAI,8BAA8B,EAC/C,EAAE,aAAa,EAAE,KAAK,EAAE,CACzB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,oCAAM,GAAN;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IACH,0BAAC;AAAD,CAAC,AAtBD,CAAkC,KAAK,CAAC,SAAS,GAsBhD;AAED,eAAe,mBAAmB,CAAC","sourcesContent":["import React from 'react';\nimport { WalletError, WalletErrorCode } from '../errors/types';\n\n// Error boundary to catch WalletErrors\nclass WalletErrorBoundary extends React.Component<{\n children: React.ReactNode;\n onError: (error: WalletError) => void;\n}> {\n componentDidCatch(error: Error) {\n if (error instanceof WalletError) {\n this.props.onError(error);\n } else {\n // Convert unknown errors to WalletError\n this.props.onError(\n new WalletError(\n WalletErrorCode.UNKNOWN,\n error.message || 'An unexpected error occurred',\n { originalError: error }\n )\n );\n }\n }\n\n render() {\n return this.props.children;\n }\n}\n\nexport default WalletErrorBoundary; "]}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { N1SessionMode } from '../types';
3
+ interface UseNordUserInitializationParams {
4
+ sessionMode: N1SessionMode;
5
+ dynamicWallet: any;
6
+ address: string;
7
+ nord: any;
8
+ signMessageWithSessionKey: ((message: any) => Promise<any>) | null;
9
+ signMessageWithWalletKey: ((message: any) => Promise<any>) | null;
10
+ signTransactionWithWalletKey: ((transaction: any) => Promise<any>) | null;
11
+ sessionPubKey: Uint8Array | null;
12
+ nordUser: any;
13
+ setNordUser: (user: any) => void;
14
+ setSessionPubKey: (pubKey: Uint8Array) => void;
15
+ setSignMessageWithSessionKey: React.Dispatch<React.SetStateAction<((message: any) => Promise<any>) | null>>;
16
+ setSignMessageWithWalletKey: React.Dispatch<React.SetStateAction<((message: any) => Promise<any>) | null>>;
17
+ setSignTransactionWithWalletKey: React.Dispatch<React.SetStateAction<((transaction: any) => Promise<any>) | null>>;
18
+ }
19
+ export declare function useNordUserInitialization({ sessionMode, dynamicWallet, address, nord, signMessageWithSessionKey, signMessageWithWalletKey, signTransactionWithWalletKey, sessionPubKey, nordUser, setNordUser, setSessionPubKey, setSignMessageWithSessionKey, setSignMessageWithWalletKey, setSignTransactionWithWalletKey, }: UseNordUserInitializationParams): void;
20
+ export {};