@n1xyz/wallet-widget 0.0.33-alpha.3 → 0.0.34

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 (216) hide show
  1. package/dist/animations/N1Loader.js +8 -14
  2. package/dist/animations/N1Loader.js.map +1 -1
  3. package/dist/animations/Processing.js +8 -14
  4. package/dist/animations/Processing.js.map +1 -1
  5. package/dist/components/LoadingFallback.js +2 -6
  6. package/dist/components/LoadingFallback.js.map +1 -1
  7. package/dist/components/Logo.js +22 -25
  8. package/dist/components/Logo.js.map +1 -1
  9. package/dist/components/N1ConnectButton.js +12 -18
  10. package/dist/components/N1ConnectButton.js.map +1 -1
  11. package/dist/components/logos/ArbitrumLogo.js +3 -7
  12. package/dist/components/logos/ArbitrumLogo.js.map +1 -1
  13. package/dist/components/logos/BaseLogo.js +3 -7
  14. package/dist/components/logos/BaseLogo.js.map +1 -1
  15. package/dist/components/logos/BeraLogo.js +3 -7
  16. package/dist/components/logos/BeraLogo.js.map +1 -1
  17. package/dist/components/logos/BitcoinLogo.js +3 -7
  18. package/dist/components/logos/BitcoinLogo.js.map +1 -1
  19. package/dist/components/logos/EthereumLogo.js +3 -7
  20. package/dist/components/logos/EthereumLogo.js.map +1 -1
  21. package/dist/components/logos/HyperliquidLogo.js +3 -7
  22. package/dist/components/logos/HyperliquidLogo.js.map +1 -1
  23. package/dist/components/logos/OptimismLogo.js +3 -7
  24. package/dist/components/logos/OptimismLogo.js.map +1 -1
  25. package/dist/components/logos/SolanaLogo.js +3 -7
  26. package/dist/components/logos/SolanaLogo.js.map +1 -1
  27. package/dist/components/logos/ZeroOneLogo.js +3 -7
  28. package/dist/components/logos/ZeroOneLogo.js.map +1 -1
  29. package/dist/components/logos/index.js +9 -25
  30. package/dist/components/logos/index.js.map +1 -1
  31. package/dist/config/dynamic.d.ts +1 -0
  32. package/dist/config/dynamic.js +13 -0
  33. package/dist/config/dynamic.js.map +1 -0
  34. package/dist/config/solana.js +3 -7
  35. package/dist/config/solana.js.map +1 -1
  36. package/dist/config/turnkey.d.ts +2 -0
  37. package/dist/config/turnkey.js +35 -0
  38. package/dist/config/turnkey.js.map +1 -0
  39. package/dist/config.js +2 -5
  40. package/dist/config.js.map +1 -1
  41. package/dist/context/n1-wallet-context.js +4 -8
  42. package/dist/context/n1-wallet-context.js.map +1 -1
  43. package/dist/errors/types.js +3 -6
  44. package/dist/errors/types.js.map +1 -1
  45. package/dist/features/onboarding-flow/N1WalletModal.js +23 -59
  46. package/dist/features/onboarding-flow/N1WalletModal.js.map +1 -1
  47. package/dist/features/onboarding-flow/OnboardingFlow.js +46 -50
  48. package/dist/features/onboarding-flow/OnboardingFlow.js.map +1 -1
  49. package/dist/features/onboarding-flow/components/ChainButton.js +4 -7
  50. package/dist/features/onboarding-flow/components/ChainButton.js.map +1 -1
  51. package/dist/features/onboarding-flow/components/Header.js +11 -15
  52. package/dist/features/onboarding-flow/components/Header.js.map +1 -1
  53. package/dist/features/onboarding-flow/components/ImageWithFallback.js +6 -10
  54. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -1
  55. package/dist/features/onboarding-flow/components/TransactionTable.js +10 -13
  56. package/dist/features/onboarding-flow/components/TransactionTable.js.map +1 -1
  57. package/dist/features/onboarding-flow/components/WaitingMessage.js +8 -14
  58. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +1 -1
  59. package/dist/features/onboarding-flow/components/index.js +5 -21
  60. package/dist/features/onboarding-flow/components/index.js.map +1 -1
  61. package/dist/features/onboarding-flow/index.js +1 -5
  62. package/dist/features/onboarding-flow/index.js.map +1 -1
  63. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +55 -60
  64. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -1
  65. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +43 -48
  66. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -1
  67. package/dist/features/onboarding-flow/providers/StateProvider.js +7 -11
  68. package/dist/features/onboarding-flow/providers/StateProvider.js.map +1 -1
  69. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +69 -74
  70. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -1
  71. package/dist/features/onboarding-flow/providers/debug.js +18 -21
  72. package/dist/features/onboarding-flow/providers/debug.js.map +1 -1
  73. package/dist/features/onboarding-flow/providers/index.js +5 -16
  74. package/dist/features/onboarding-flow/providers/index.js.map +1 -1
  75. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js +15 -20
  76. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -1
  77. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js +8 -11
  78. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -1
  79. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +34 -38
  80. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +1 -1
  81. package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.d.ts +1 -0
  82. package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js +18 -0
  83. package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +1 -0
  84. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +47 -51
  85. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +1 -1
  86. package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.d.ts +1 -0
  87. package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +18 -0
  88. package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +1 -0
  89. package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.d.ts +31 -0
  90. package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.js +100 -0
  91. package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +1 -0
  92. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +8 -12
  93. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +1 -1
  94. package/dist/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +6 -0
  95. package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js +360 -0
  96. package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js.map +1 -0
  97. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js +25 -28
  98. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +1 -1
  99. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +10 -13
  100. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +1 -1
  101. package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.d.ts +3 -0
  102. package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js +31 -0
  103. package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +1 -0
  104. package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +1 -0
  105. package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.js +136 -0
  106. package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +1 -0
  107. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +7 -10
  108. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +1 -1
  109. package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +1 -0
  110. package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.js +31 -0
  111. package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +1 -0
  112. package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.d.ts +1 -0
  113. package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js +18 -0
  114. package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js.map +1 -0
  115. package/dist/features/onboarding-flow/screens/09-ErrorScreen.d.ts +1 -0
  116. package/dist/features/onboarding-flow/screens/09-ErrorScreen.js +14 -0
  117. package/dist/features/onboarding-flow/screens/09-ErrorScreen.js.map +1 -0
  118. package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.d.ts +1 -0
  119. package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js +18 -0
  120. package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js.map +1 -0
  121. package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.d.ts +1 -0
  122. package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js +18 -0
  123. package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js.map +1 -0
  124. package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.d.ts +1 -0
  125. package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js +18 -0
  126. package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js.map +1 -0
  127. package/dist/features/onboarding-flow/screens/index.js +7 -23
  128. package/dist/features/onboarding-flow/screens/index.js.map +1 -1
  129. package/dist/features/onboarding-flow/types.js +3 -6
  130. package/dist/features/onboarding-flow/types.js.map +1 -1
  131. package/dist/features/onboarding-flow/utils/depositStorage.js +3 -8
  132. package/dist/features/onboarding-flow/utils/depositStorage.js.map +1 -1
  133. package/dist/features/onboarding-flow/utils/imageUtils.js +3 -9
  134. package/dist/features/onboarding-flow/utils/imageUtils.js.map +1 -1
  135. package/dist/features/onboarding-flow/utils/nordUser.js +2 -38
  136. package/dist/features/onboarding-flow/utils/nordUser.js.map +1 -1
  137. package/dist/features/onboarding-flow/utils/nordUtils.js +5 -12
  138. package/dist/features/onboarding-flow/utils/nordUtils.js.map +1 -1
  139. package/dist/features/onboarding-flow/utils/session.js +14 -17
  140. package/dist/features/onboarding-flow/utils/session.js.map +1 -1
  141. package/dist/features/onboarding-flow/utils/transaction.js +1 -4
  142. package/dist/features/onboarding-flow/utils/transaction.js.map +1 -1
  143. package/dist/features/onboarding-flow/utils/utils.js +8 -16
  144. package/dist/features/onboarding-flow/utils/utils.js.map +1 -1
  145. package/dist/features/onboarding-flow/utils/withImageFallback.js +9 -15
  146. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -1
  147. package/dist/features/turnkey/createTurnkeyWallet.d.ts +25 -0
  148. package/dist/features/turnkey/createTurnkeyWallet.js +119 -0
  149. package/dist/features/turnkey/createTurnkeyWallet.js.map +1 -0
  150. package/dist/hooks/index.js +2 -18
  151. package/dist/hooks/index.js.map +1 -1
  152. package/dist/hooks/useN1Wallet.js +6 -10
  153. package/dist/hooks/useN1Wallet.js.map +1 -1
  154. package/dist/hooks/useNordUserInitialization.js +31 -34
  155. package/dist/hooks/useNordUserInitialization.js.map +1 -1
  156. package/dist/index.js +7 -21
  157. package/dist/index.js.map +1 -1
  158. package/dist/{styles/main.css → main.css} +2 -2
  159. package/dist/polyfills/windowEthereumGuard.js +1 -2
  160. package/dist/polyfills/windowEthereumGuard.js.map +1 -1
  161. package/dist/providers/LazyWalletProvider.js +38 -74
  162. package/dist/providers/LazyWalletProvider.js.map +1 -1
  163. package/dist/providers/N1WalletProvider.js +70 -109
  164. package/dist/providers/N1WalletProvider.js.map +1 -1
  165. package/dist/providers/ShadowRootWrapper.js +4 -10
  166. package/dist/providers/ShadowRootWrapper.js.map +1 -1
  167. package/dist/providers/TurnkeyProviderBridge.d.ts +7 -0
  168. package/dist/providers/TurnkeyProviderBridge.js +20 -0
  169. package/dist/providers/TurnkeyProviderBridge.js.map +1 -0
  170. package/dist/providers/WalletErrorBoundary.js +6 -11
  171. package/dist/providers/WalletErrorBoundary.js.map +1 -1
  172. package/dist/styles/embedded-main-css.d.ts +1 -1
  173. package/dist/styles/embedded-main-css.js +1 -3
  174. package/dist/styles/embedded-main-css.js.map +1 -1
  175. package/dist/turnkey/TurnkeyProvider.d.ts +9 -0
  176. package/dist/turnkey/TurnkeyProvider.js +378 -0
  177. package/dist/turnkey/TurnkeyProvider.js.map +1 -0
  178. package/dist/turnkey/createWalletProvider.d.ts +3 -0
  179. package/dist/turnkey/createWalletProvider.js +180 -0
  180. package/dist/turnkey/createWalletProvider.js.map +1 -0
  181. package/dist/turnkey/index.d.ts +3 -0
  182. package/dist/turnkey/index.js +3 -0
  183. package/dist/turnkey/index.js.map +1 -0
  184. package/dist/turnkey/types.d.ts +48 -0
  185. package/dist/turnkey/types.js +8 -0
  186. package/dist/turnkey/types.js.map +1 -0
  187. package/dist/types/wallet.js +4 -7
  188. package/dist/types/wallet.js.map +1 -1
  189. package/dist/utils/ed25519.js +14 -20
  190. package/dist/utils/ed25519.js.map +1 -1
  191. package/dist/utils/getPseudoName.js +7 -10
  192. package/dist/utils/getPseudoName.js.map +1 -1
  193. package/dist/utils/logger.js +3 -5
  194. package/dist/utils/logger.js.map +1 -1
  195. package/dist/utils/shortenString.js +2 -6
  196. package/dist/utils/shortenString.js.map +1 -1
  197. package/dist/utils/turnkeySessionStorage.d.ts +3 -0
  198. package/dist/utils/turnkeySessionStorage.js +33 -0
  199. package/dist/utils/turnkeySessionStorage.js.map +1 -0
  200. package/dist/utils/words.js +1 -4
  201. package/dist/utils/words.js.map +1 -1
  202. package/package.json +3 -3
  203. package/dist/assets/fonts/apk-galeria/APK-Galeria-Bold-Italic-Trial.otf +0 -0
  204. package/dist/assets/fonts/apk-galeria/APK-Galeria-Bold-Trial.otf +0 -0
  205. package/dist/assets/fonts/apk-galeria/APK-Galeria-Extra-Bold-Italic-Trial.otf +0 -0
  206. package/dist/assets/fonts/apk-galeria/APK-Galeria-Extra-Bold-Trial.otf +0 -0
  207. package/dist/assets/fonts/apk-galeria/APK-Galeria-Light-Italic-Trial.otf +0 -0
  208. package/dist/assets/fonts/apk-galeria/APK-Galeria-Light-Trial.otf +0 -0
  209. package/dist/assets/fonts/apk-galeria/APK-Galeria-Medium-Italic-Trial.otf +0 -0
  210. package/dist/assets/fonts/apk-galeria/APK-Galeria-Medium-Trial.otf +0 -0
  211. package/dist/assets/fonts/apk-galeria/APK-Galeria-Regular-Italic-Trial.otf +0 -0
  212. package/dist/assets/fonts/apk-galeria/APK-Galeria-Regular-Trial.otf +0 -0
  213. package/dist/assets/fonts/apk-galeria/APK-Galeria-Semi-Bold-Italic-Trial.otf +0 -0
  214. package/dist/assets/fonts/apk-galeria/APK-Galeria-Semi-Bold-Trial.otf +0 -0
  215. package/dist/assets/fonts/apk-galeria/APK-Galeria-Thin-Italic-Trial.otf +0 -0
  216. package/dist/assets/fonts/apk-galeria/APK-Galeria-Thin-Trial.otf +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n generateEd25519KeyPair,\n generateRandomUint8Array as createRandomUint8Array,\n} from '../../../utils/ed25519';\n\nexport const generateSessionKeyPair = generateEd25519KeyPair;\nexport const generateRandomUint8Array = createRandomUint8Array;\n\nexport function arrayBufferToBase64(buffer: Uint8Array) {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < bytes.length; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n}\n\n// Convert Base64 string back to Uint8Array\nexport function base64ToUint8Array(base64String: string) {\n const binaryString = atob(base64String);\n const length = binaryString.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\n\n// Function to store keys with a custom ID format in local storage, including private key\nexport function storeSessionKeysInLocalStorage({\n privKey,\n publicKey,\n walletPublicKey,\n chainName,\n}: {\n privKey: Uint8Array;\n publicKey: Uint8Array;\n walletPublicKey: string;\n chainName: string;\n}) {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n const data = {\n ed25519PrivateKey: arrayBufferToBase64(privKey),\n ed25519PublicKey: arrayBufferToBase64(publicKey),\n walletPublicKey,\n chainName,\n createdAt: new Date().toISOString(),\n };\n\n localStorage.setItem(storageKey, JSON.stringify(data));\n}\n\n// Retrieve data from local storage by wallet key and convert the private and public key back to Uint8Array\nexport function getSessionKeysFromLocalStorage(walletPublicKey: string): {\n ed25519PrivateKey: Uint8Array;\n ed25519PublicKey: Uint8Array | null;\n walletPublicKey: string;\n chainName: string;\n createdAt: string;\n} | null {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n const data = localStorage.getItem(storageKey);\n if (data) {\n const parsedData = JSON.parse(data);\n if (parsedData.ed25519PrivateKey) {\n parsedData.ed25519PrivateKey = base64ToUint8Array(\n parsedData.ed25519PrivateKey\n );\n } else {\n throw new Error('Missing ed25519PrivateKey in session storage');\n }\n if (parsedData.ed25519PublicKey) {\n parsedData.ed25519PublicKey = base64ToUint8Array(\n parsedData.ed25519PublicKey\n );\n } else {\n throw new Error('Missing ed25519PublicKey in session storage');\n }\n // Validate keys: check that public key is present and is Uint8Array of length 32\n if (!parsedData.ed25519PublicKey || !(parsedData.ed25519PublicKey instanceof Uint8Array) || parsedData.ed25519PublicKey.length !== 32) {\n throw new Error('Invalid public key in session storage');\n }\n return parsedData;\n }\n return null;\n}\n\n// Function to remove data from local storage by wallet key\nexport function removeKeysFromLocalStorage(walletPublicKey: string) {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n localStorage.removeItem(storageKey);\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n generateEd25519KeyPair,\n generateRandomUint8Array as createRandomUint8Array,\n} from '../../../utils/ed25519';\n\nexport const generateSessionKeyPair = generateEd25519KeyPair;\nexport const generateRandomUint8Array = createRandomUint8Array;\n\nexport function arrayBufferToBase64(buffer: Uint8Array) {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < bytes.length; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n}\n\n// Convert Base64 string back to Uint8Array\nexport function base64ToUint8Array(base64String: string) {\n const binaryString = atob(base64String);\n const length = binaryString.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\n\n// Function to store keys with a custom ID format in local storage, including private key\nexport function storeSessionKeysInLocalStorage({\n privKey,\n publicKey,\n walletPublicKey,\n chainName,\n}: {\n privKey: Uint8Array;\n publicKey: Uint8Array;\n walletPublicKey: string;\n chainName: string;\n}) {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n const data = {\n ed25519PrivateKey: arrayBufferToBase64(privKey),\n ed25519PublicKey: arrayBufferToBase64(publicKey),\n walletPublicKey,\n chainName,\n createdAt: new Date().toISOString(),\n };\n\n localStorage.setItem(storageKey, JSON.stringify(data));\n}\n\n// Retrieve data from local storage by wallet key and convert the private and public key back to Uint8Array\nexport function getSessionKeysFromLocalStorage(walletPublicKey: string): {\n ed25519PrivateKey: Uint8Array;\n ed25519PublicKey: Uint8Array | null;\n walletPublicKey: string;\n chainName: string;\n createdAt: string;\n} | null {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n const data = localStorage.getItem(storageKey);\n if (data) {\n const parsedData = JSON.parse(data);\n if (parsedData.ed25519PrivateKey) {\n parsedData.ed25519PrivateKey = base64ToUint8Array(\n parsedData.ed25519PrivateKey\n );\n } else {\n throw new Error('Missing ed25519PrivateKey in session storage');\n }\n if (parsedData.ed25519PublicKey) {\n parsedData.ed25519PublicKey = base64ToUint8Array(\n parsedData.ed25519PublicKey\n );\n } else {\n throw new Error('Missing ed25519PublicKey in session storage');\n }\n // Validate keys: check that public key is present and is Uint8Array of length 32\n if (!parsedData.ed25519PublicKey || !(parsedData.ed25519PublicKey instanceof Uint8Array) || parsedData.ed25519PublicKey.length !== 32) {\n throw new Error('Invalid public key in session storage');\n }\n return parsedData;\n }\n return null;\n}\n\n// Function to remove data from local storage by wallet key\nexport function removeKeysFromLocalStorage(walletPublicKey: string) {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n localStorage.removeItem(storageKey);\n}\n"]}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __assign = (this && this.__assign) || function () {
3
2
  __assign = Object.assign || function(t) {
4
3
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -21,42 +20,37 @@ var __rest = (this && this.__rest) || function (s, e) {
21
20
  }
22
21
  return t;
23
22
  };
24
- var __importDefault = (this && this.__importDefault) || function (mod) {
25
- return (mod && mod.__esModule) ? mod : { "default": mod };
26
- };
27
- Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.withImageFallback = withImageFallback;
29
- var jsx_runtime_1 = require("react/jsx-runtime");
30
- var react_1 = __importDefault(require("react"));
31
- var components_1 = require("../components");
23
+ import { jsx as _jsx } from "react/jsx-runtime";
24
+ import React from 'react';
25
+ import { ImageWithFallback } from '../components';
32
26
  /**
33
27
  * A Higher-Order Component (HOC) that adds image fallback functionality to a component
34
28
  * @param WrappedComponent The component to wrap
35
29
  * @returns A new component with image fallback functionality
36
30
  */
37
- function withImageFallback(WrappedComponent) {
31
+ export function withImageFallback(WrappedComponent) {
38
32
  // Create a new component that wraps the original component
39
33
  var WithImageFallback = function (props) {
40
34
  // Function to recursively process React elements
41
35
  var processNode = function (node) {
42
- if (!react_1.default.isValidElement(node)) {
36
+ if (!React.isValidElement(node)) {
43
37
  return node;
44
38
  }
45
39
  var element = node;
46
40
  // If it's an img element, replace it with ImageWithFallback
47
41
  if (element.type === 'img') {
48
42
  var _a = element.props, src = _a.src, alt = _a.alt, width = _a.width, height = _a.height, className = _a.className, rest = __rest(_a, ["src", "alt", "width", "height", "className"]);
49
- return ((0, jsx_runtime_1.jsx)(components_1.ImageWithFallback, __assign({ src: src, alt: alt || 'Image', width: width, height: height, className: className }, rest)));
43
+ return (_jsx(ImageWithFallback, __assign({ src: src, alt: alt || 'Image', width: width, height: height, className: className }, rest)));
50
44
  }
51
45
  // If it has children, process them recursively
52
46
  if (element.props && element.props.children) {
53
- var children = react_1.default.Children.map(element.props.children, processNode);
54
- return react_1.default.cloneElement(element, __assign({}, element.props), children);
47
+ var children = React.Children.map(element.props.children, processNode);
48
+ return React.cloneElement(element, __assign({}, element.props), children);
55
49
  }
56
50
  return element;
57
51
  };
58
52
  // Render the wrapped component and process its output
59
- var renderedComponent = (0, jsx_runtime_1.jsx)(WrappedComponent, __assign({}, props));
53
+ var renderedComponent = _jsx(WrappedComponent, __assign({}, props));
60
54
  return processNode(renderedComponent);
61
55
  };
62
56
  // Set display name for debugging
@@ -1 +1 @@
1
- {"version":3,"file":"withImageFallback.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/withImageFallback.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,8CAqDC;;AA7DD,gDAA6C;AAC7C,4CAAkD;AAElD;;;;GAIG;AACH,SAAgB,iBAAiB,CAC/B,gBAAkC;IAElC,2DAA2D;IAC3D,IAAM,iBAAiB,GAAgB,UAAC,KAAK;QAC3C,iDAAiD;QACjD,IAAM,WAAW,GAAG,UAAC,IAAqB;YACxC,IAAI,CAAC,eAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAM,OAAO,GAAG,IAA0B,CAAC;YAE3C,4DAA4D;YAC5D,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3B,IAAM,KAAkD,OAAO,CAAC,KAAK,EAA7D,GAAG,SAAA,EAAE,GAAG,SAAA,EAAE,KAAK,WAAA,EAAE,MAAM,YAAA,EAAE,SAAS,eAAA,EAAK,IAAI,cAA7C,8CAA+C,CAAgB,CAAC;gBAEtE,OAAO,CACL,uBAAC,8BAAiB,aAChB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,IAAI,OAAO,EACnB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,IAChB,IAAI,EACR,CACH,CAAC;YACJ,CAAC;YAED,+CAA+C;YAC/C,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC5C,IAAM,QAAQ,GAAG,eAAK,CAAC,QAAQ,CAAC,GAAG,CACjC,OAAO,CAAC,KAAK,CAAC,QAAQ,EACtB,WAAW,CACZ,CAAC;gBAEF,OAAO,eAAK,CAAC,YAAY,CAAC,OAAO,eAAO,OAAO,CAAC,KAAK,GAAI,QAAQ,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,sDAAsD;QACtD,IAAM,iBAAiB,GAAG,uBAAC,gBAAgB,eAAK,KAAK,EAAI,CAAC;QAC1D,OAAO,WAAW,CAAC,iBAAiB,CAAuB,CAAC;IAC9D,CAAC,CAAC;IAEF,iCAAiC;IACjC,IAAM,oBAAoB,GACxB,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,IAAI,WAAW,CAAC;IACvE,iBAAiB,CAAC,WAAW,GAAG,4BAAqB,oBAAoB,MAAG,CAAC;IAE7E,OAAO,iBAAiB,CAAC;AAC3B,CAAC","sourcesContent":["import React, { ComponentType } from 'react';\nimport { ImageWithFallback } from '../components';\n\n/**\n * A Higher-Order Component (HOC) that adds image fallback functionality to a component\n * @param WrappedComponent The component to wrap\n * @returns A new component with image fallback functionality\n */\nexport function withImageFallback<P extends object>(\n WrappedComponent: ComponentType<P>\n): React.FC<P> {\n // Create a new component that wraps the original component\n const WithImageFallback: React.FC<P> = (props) => {\n // Function to recursively process React elements\n const processNode = (node: React.ReactNode): React.ReactNode => {\n if (!React.isValidElement(node)) {\n return node;\n }\n\n const element = node as React.ReactElement;\n\n // If it's an img element, replace it with ImageWithFallback\n if (element.type === 'img') {\n const { src, alt, width, height, className, ...rest } = element.props;\n\n return (\n <ImageWithFallback\n src={src}\n alt={alt || 'Image'}\n width={width}\n height={height}\n className={className}\n {...rest}\n />\n );\n }\n\n // If it has children, process them recursively\n if (element.props && element.props.children) {\n const children = React.Children.map(\n element.props.children,\n processNode\n );\n\n return React.cloneElement(element, { ...element.props }, children);\n }\n\n return element;\n };\n\n // Render the wrapped component and process its output\n const renderedComponent = <WrappedComponent {...props} />;\n return processNode(renderedComponent) as React.ReactElement;\n };\n\n // Set display name for debugging\n const wrappedComponentName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n WithImageFallback.displayName = `withImageFallback(${wrappedComponentName})`;\n\n return WithImageFallback;\n}\n"]}
1
+ {"version":3,"file":"withImageFallback.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/withImageFallback.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,gBAAkC;IAElC,2DAA2D;IAC3D,IAAM,iBAAiB,GAAgB,UAAC,KAAK;QAC3C,iDAAiD;QACjD,IAAM,WAAW,GAAG,UAAC,IAAqB;YACxC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAM,OAAO,GAAG,IAA0B,CAAC;YAE3C,4DAA4D;YAC5D,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3B,IAAM,KAAkD,OAAO,CAAC,KAAK,EAA7D,GAAG,SAAA,EAAE,GAAG,SAAA,EAAE,KAAK,WAAA,EAAE,MAAM,YAAA,EAAE,SAAS,eAAA,EAAK,IAAI,cAA7C,8CAA+C,CAAgB,CAAC;gBAEtE,OAAO,CACL,KAAC,iBAAiB,aAChB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,IAAI,OAAO,EACnB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,IAChB,IAAI,EACR,CACH,CAAC;YACJ,CAAC;YAED,+CAA+C;YAC/C,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC5C,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CACjC,OAAO,CAAC,KAAK,CAAC,QAAQ,EACtB,WAAW,CACZ,CAAC;gBAEF,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,eAAO,OAAO,CAAC,KAAK,GAAI,QAAQ,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,sDAAsD;QACtD,IAAM,iBAAiB,GAAG,KAAC,gBAAgB,eAAK,KAAK,EAAI,CAAC;QAC1D,OAAO,WAAW,CAAC,iBAAiB,CAAuB,CAAC;IAC9D,CAAC,CAAC;IAEF,iCAAiC;IACjC,IAAM,oBAAoB,GACxB,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,IAAI,WAAW,CAAC;IACvE,iBAAiB,CAAC,WAAW,GAAG,4BAAqB,oBAAoB,MAAG,CAAC;IAE7E,OAAO,iBAAiB,CAAC;AAC3B,CAAC","sourcesContent":["import React, { ComponentType } from 'react';\nimport { ImageWithFallback } from '../components';\n\n/**\n * A Higher-Order Component (HOC) that adds image fallback functionality to a component\n * @param WrappedComponent The component to wrap\n * @returns A new component with image fallback functionality\n */\nexport function withImageFallback<P extends object>(\n WrappedComponent: ComponentType<P>\n): React.FC<P> {\n // Create a new component that wraps the original component\n const WithImageFallback: React.FC<P> = (props) => {\n // Function to recursively process React elements\n const processNode = (node: React.ReactNode): React.ReactNode => {\n if (!React.isValidElement(node)) {\n return node;\n }\n\n const element = node as React.ReactElement;\n\n // If it's an img element, replace it with ImageWithFallback\n if (element.type === 'img') {\n const { src, alt, width, height, className, ...rest } = element.props;\n\n return (\n <ImageWithFallback\n src={src}\n alt={alt || 'Image'}\n width={width}\n height={height}\n className={className}\n {...rest}\n />\n );\n }\n\n // If it has children, process them recursively\n if (element.props && element.props.children) {\n const children = React.Children.map(\n element.props.children,\n processNode\n );\n\n return React.cloneElement(element, { ...element.props }, children);\n }\n\n return element;\n };\n\n // Render the wrapped component and process its output\n const renderedComponent = <WrappedComponent {...props} />;\n return processNode(renderedComponent) as React.ReactElement;\n };\n\n // Set display name for debugging\n const wrappedComponentName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n WithImageFallback.displayName = `withImageFallback(${wrappedComponentName})`;\n\n return WithImageFallback;\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { Transaction, VersionedTransaction } from '@solana/web3.js';
2
+ import type { SignMessageParams, WalletAccount } from '@turnkey/core';
3
+ interface SignMessageResult {
4
+ r?: string;
5
+ s?: string;
6
+ signature?: string;
7
+ }
8
+ export interface TurnkeySignerFactoryParams {
9
+ walletAccount: WalletAccount;
10
+ signMessage: (params: SignMessageParams) => Promise<SignMessageResult>;
11
+ }
12
+ /**
13
+ * Creates a lightweight wallet facade that matches the Dynamic wallet API surface
14
+ * so the rest of the widget can interact with a Turnkey-backed Solana account.
15
+ */
16
+ export declare function createTurnkeySolanaWallet({ walletAccount, signMessage, }: TurnkeySignerFactoryParams): {
17
+ address: string;
18
+ chain: string;
19
+ type: string;
20
+ getSigner: () => Promise<{
21
+ signTransaction: (tx: Transaction | VersionedTransaction) => Promise<Transaction | VersionedTransaction>;
22
+ signMessage: (message: Uint8Array) => Promise<Uint8Array>;
23
+ }>;
24
+ };
25
+ export {};
@@ -0,0 +1,119 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { Buffer } from 'buffer';
38
+ import { PublicKey, } from '@solana/web3.js';
39
+ var HEX_ENCODING = 'PAYLOAD_ENCODING_HEXADECIMAL';
40
+ var NO_OP_HASH = 'HASH_FUNCTION_NOT_APPLICABLE';
41
+ var bytesToHex = function (bytes) {
42
+ return Array.from(bytes)
43
+ .map(function (byte) { return byte.toString(16).padStart(2, '0'); })
44
+ .join('');
45
+ };
46
+ var hexToBytes = function (hex) {
47
+ var normalized = hex.startsWith('0x') ? hex.slice(2) : hex;
48
+ var output = new Uint8Array(normalized.length / 2);
49
+ for (var i = 0; i < normalized.length; i += 2) {
50
+ output[i / 2] = parseInt(normalized.slice(i, i + 2), 16);
51
+ }
52
+ return output;
53
+ };
54
+ var serializeSolanaMessage = function (tx) {
55
+ if ('serializeMessage' in tx && typeof tx.serializeMessage === 'function') {
56
+ return tx.serializeMessage();
57
+ }
58
+ var versioned = tx;
59
+ return Uint8Array.from(versioned.message.serialize());
60
+ };
61
+ /**
62
+ * Creates a lightweight wallet facade that matches the Dynamic wallet API surface
63
+ * so the rest of the widget can interact with a Turnkey-backed Solana account.
64
+ */
65
+ export function createTurnkeySolanaWallet(_a) {
66
+ var _this = this;
67
+ var walletAccount = _a.walletAccount, signMessage = _a.signMessage;
68
+ var publicKey = new PublicKey(walletAccount.address);
69
+ var signWithTurnkey = function (message) { return __awaiter(_this, void 0, void 0, function () {
70
+ var result, r, s;
71
+ var _a, _b;
72
+ return __generator(this, function (_c) {
73
+ switch (_c.label) {
74
+ case 0: return [4 /*yield*/, signMessage({
75
+ walletAccount: walletAccount,
76
+ message: bytesToHex(message),
77
+ encoding: HEX_ENCODING,
78
+ hashFunction: NO_OP_HASH,
79
+ })];
80
+ case 1:
81
+ result = _c.sent();
82
+ if (result.signature) {
83
+ return [2 /*return*/, hexToBytes(result.signature)];
84
+ }
85
+ r = (_a = result.r) !== null && _a !== void 0 ? _a : '';
86
+ s = (_b = result.s) !== null && _b !== void 0 ? _b : '';
87
+ return [2 /*return*/, hexToBytes("".concat(r).concat(s))];
88
+ }
89
+ });
90
+ }); };
91
+ var signer = {
92
+ signTransaction: function (tx) { return __awaiter(_this, void 0, void 0, function () {
93
+ var signature;
94
+ return __generator(this, function (_a) {
95
+ switch (_a.label) {
96
+ case 0: return [4 /*yield*/, signWithTurnkey(serializeSolanaMessage(tx))];
97
+ case 1:
98
+ signature = _a.sent();
99
+ tx.addSignature(publicKey, Buffer.from(signature));
100
+ return [2 /*return*/, tx];
101
+ }
102
+ });
103
+ }); },
104
+ signMessage: function (message) { return __awaiter(_this, void 0, void 0, function () {
105
+ return __generator(this, function (_a) {
106
+ return [2 /*return*/, signWithTurnkey(message)];
107
+ });
108
+ }); },
109
+ };
110
+ return {
111
+ address: walletAccount.address,
112
+ chain: 'SOL',
113
+ type: 'turnkey',
114
+ getSigner: function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
115
+ return [2 /*return*/, signer];
116
+ }); }); },
117
+ };
118
+ }
119
+ //# sourceMappingURL=createTurnkeyWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTurnkeyWallet.js","sourceRoot":"","sources":["../../../src/features/turnkey/createTurnkeyWallet.ts"],"names":[],"mappings":"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","sourcesContent":["import { Buffer } from 'buffer';\nimport {\n PublicKey,\n Transaction,\n VersionedTransaction,\n} from '@solana/web3.js';\nimport type { SignMessageParams, WalletAccount } from '@turnkey/core';\n\nconst HEX_ENCODING = 'PAYLOAD_ENCODING_HEXADECIMAL';\nconst NO_OP_HASH = 'HASH_FUNCTION_NOT_APPLICABLE';\n\ninterface SignMessageResult {\n r?: string;\n s?: string;\n signature?: string;\n}\n\nexport interface TurnkeySignerFactoryParams {\n walletAccount: WalletAccount;\n signMessage: (params: SignMessageParams) => Promise<SignMessageResult>;\n}\n\nconst bytesToHex = (bytes: Uint8Array): string =>\n Array.from(bytes)\n .map((byte) => byte.toString(16).padStart(2, '0'))\n .join('');\n\nconst hexToBytes = (hex: string): Uint8Array => {\n const normalized = hex.startsWith('0x') ? hex.slice(2) : hex;\n const output = new Uint8Array(normalized.length / 2);\n for (let i = 0; i < normalized.length; i += 2) {\n output[i / 2] = parseInt(normalized.slice(i, i + 2), 16);\n }\n return output;\n};\n\nconst serializeSolanaMessage = (\n tx: Transaction | VersionedTransaction\n): Uint8Array => {\n if ('serializeMessage' in tx && typeof tx.serializeMessage === 'function') {\n return tx.serializeMessage();\n }\n\n const versioned = tx as VersionedTransaction;\n return Uint8Array.from(versioned.message.serialize());\n};\n\n/**\n * Creates a lightweight wallet facade that matches the Dynamic wallet API surface\n * so the rest of the widget can interact with a Turnkey-backed Solana account.\n */\nexport function createTurnkeySolanaWallet({\n walletAccount,\n signMessage,\n}: TurnkeySignerFactoryParams) {\n const publicKey = new PublicKey(walletAccount.address);\n\n const signWithTurnkey = async (message: Uint8Array): Promise<Uint8Array> => {\n const result = await signMessage({\n walletAccount,\n message: bytesToHex(message),\n encoding: HEX_ENCODING as SignMessageParams['encoding'],\n hashFunction: NO_OP_HASH as SignMessageParams['hashFunction'],\n });\n\n if (result.signature) {\n return hexToBytes(result.signature);\n }\n\n const r = result.r ?? '';\n const s = result.s ?? '';\n return hexToBytes(`${r}${s}`);\n };\n\n const signer = {\n signTransaction: async (\n tx: Transaction | VersionedTransaction\n ): Promise<Transaction | VersionedTransaction> => {\n const signature = await signWithTurnkey(serializeSolanaMessage(tx));\n tx.addSignature(publicKey, Buffer.from(signature));\n return tx;\n },\n signMessage: async (message: Uint8Array): Promise<Uint8Array> => {\n return signWithTurnkey(message);\n },\n };\n\n return {\n address: walletAccount.address,\n chain: 'SOL',\n type: 'turnkey',\n getSigner: async () => signer,\n };\n}\n"]}
@@ -1,19 +1,3 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./useN1Wallet"), exports);
18
- __exportStar(require("./useNordUserInitialization"), exports);
1
+ export * from './useN1Wallet';
2
+ export * from './useNordUserInitialization';
19
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,8DAA4C","sourcesContent":["export * from './useN1Wallet';\nexport * from './useNordUserInitialization';\n\n\n\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC","sourcesContent":["export * from './useN1Wallet';\nexport * from './useNordUserInitialization';\n\n"]}
@@ -1,18 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useN1WalletContext = useN1WalletContext;
4
- exports.useN1WalletInternalContext = useN1WalletInternalContext;
5
- var react_1 = require("react");
6
- var n1_wallet_context_1 = require("../context/n1-wallet-context");
7
- function useN1WalletContext() {
8
- var context = (0, react_1.useContext)(n1_wallet_context_1.N1WalletContext);
1
+ import { useContext } from 'react';
2
+ import { N1WalletContext, N1InternalWalletContext } from '../context/n1-wallet-context';
3
+ export function useN1WalletContext() {
4
+ var context = useContext(N1WalletContext);
9
5
  if (context === undefined) {
10
6
  throw new Error('useN1WalletContext must be used within a N1WalletProvider');
11
7
  }
12
8
  return context;
13
9
  }
14
- function useN1WalletInternalContext() {
15
- var context = (0, react_1.useContext)(n1_wallet_context_1.N1InternalWalletContext);
10
+ export function useN1WalletInternalContext() {
11
+ var context = useContext(N1InternalWalletContext);
16
12
  if (context === undefined) {
17
13
  throw new Error('useN1WalletInternalContext must be used within a N1WalletProvider');
18
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useN1Wallet.js","sourceRoot":"","sources":["../../src/hooks/useN1Wallet.ts"],"names":[],"mappings":";;AAGA,gDAQC;AAED,gEAQC;AArBD,+BAAmC;AACnC,kEAAwF;AAExF,SAAgB,kBAAkB;IAChC,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,mCAAe,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,0BAA0B;IACxC,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,2CAAuB,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { useContext } from 'react';\nimport { N1WalletContext, N1InternalWalletContext } from '../context/n1-wallet-context';\n\nexport function useN1WalletContext() {\n const context = useContext(N1WalletContext);\n if (context === undefined) {\n throw new Error(\n 'useN1WalletContext must be used within a N1WalletProvider'\n );\n }\n return context;\n}\n\nexport function useN1WalletInternalContext() {\n const context = useContext(N1InternalWalletContext);\n if (context === undefined) {\n throw new Error(\n 'useN1WalletInternalContext must be used within a N1WalletProvider'\n );\n }\n return context;\n}\n"]}
1
+ {"version":3,"file":"useN1Wallet.js","sourceRoot":"","sources":["../../src/hooks/useN1Wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAExF,MAAM,UAAU,kBAAkB;IAChC,IAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,IAAM,OAAO,GAAG,UAAU,CAAC,uBAAuB,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { useContext } from 'react';\nimport { N1WalletContext, N1InternalWalletContext } from '../context/n1-wallet-context';\n\nexport function useN1WalletContext() {\n const context = useContext(N1WalletContext);\n if (context === undefined) {\n throw new Error(\n 'useN1WalletContext must be used within a N1WalletProvider'\n );\n }\n return context;\n}\n\nexport function useN1WalletInternalContext() {\n const context = useContext(N1InternalWalletContext);\n if (context === undefined) {\n throw new Error(\n 'useN1WalletInternalContext must be used within a N1WalletProvider'\n );\n }\n return context;\n}\n"]}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
2
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
3
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -35,24 +34,22 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
34
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
35
  }
37
36
  };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.useNordUserInitialization = useNordUserInitialization;
40
- var react_1 = require("react");
41
- var web3_js_1 = require("@solana/web3.js");
42
- var ed25519_1 = require("../utils/ed25519");
43
- var types_1 = require("../errors/types");
44
- var logger_1 = require("../utils/logger");
45
- var wallet_1 = require("../types/wallet");
46
- var useN1Wallet_1 = require("./useN1Wallet");
47
- var utils_1 = require("../features/onboarding-flow/utils/utils");
48
- var nordUser_1 = require("../features/onboarding-flow/utils/nordUser");
49
- function useNordUserInitialization() {
37
+ import { useEffect } from 'react';
38
+ import { PublicKey } from '@solana/web3.js';
39
+ import { signEd25519Message } from '../utils/ed25519';
40
+ import { WalletError, WalletErrorCode } from '../errors/types';
41
+ import { logger } from '../utils/logger';
42
+ import { N1SessionMode } from '../types/wallet';
43
+ import { useN1WalletContext, useN1WalletInternalContext } from './useN1Wallet';
44
+ import { generateSessionKeyPair, getSessionKeysFromLocalStorage, storeSessionKeysInLocalStorage } from '../features/onboarding-flow/utils/utils';
45
+ import { dynamicImportNordUser } from '../features/onboarding-flow/utils/nordUser';
46
+ export function useNordUserInitialization() {
50
47
  var _this = this;
51
- var _a = (0, useN1Wallet_1.useN1WalletInternalContext)(), setNordUser = _a.setNordUser, setSessionPubKey = _a.setSessionPubKey, setSignMessageWithSessionKey = _a.setSignMessageWithSessionKey, setSignMessageWithWalletKey = _a.setSignMessageWithWalletKey, setSignTransactionWithWalletKey = _a.setSignTransactionWithWalletKey, dynamicWallet = _a.dynamicWallet;
52
- var _b = (0, useN1Wallet_1.useN1WalletContext)(), address = _b.address, nordUser = _b.nordUser, sessionMode = _b.sessionMode, nord = _b.nord, signMessageWithSessionKey = _b.signMessageWithSessionKey, signMessageWithWalletKey = _b.signMessageWithWalletKey, signTransactionWithWalletKey = _b.signTransactionWithWalletKey, sessionPubKey = _b.sessionPubKey;
48
+ var _a = useN1WalletInternalContext(), setNordUser = _a.setNordUser, setSessionPubKey = _a.setSessionPubKey, setSignMessageWithSessionKey = _a.setSignMessageWithSessionKey, setSignMessageWithWalletKey = _a.setSignMessageWithWalletKey, setSignTransactionWithWalletKey = _a.setSignTransactionWithWalletKey, dynamicWallet = _a.dynamicWallet;
49
+ var _b = useN1WalletContext(), address = _b.address, nordUser = _b.nordUser, sessionMode = _b.sessionMode, nord = _b.nord, signMessageWithSessionKey = _b.signMessageWithSessionKey, signMessageWithWalletKey = _b.signMessageWithWalletKey, signTransactionWithWalletKey = _b.signTransactionWithWalletKey, sessionPubKey = _b.sessionPubKey;
53
50
  // First useEffect: Initialize signing functions
54
- (0, react_1.useEffect)(function () {
55
- if (sessionMode !== wallet_1.N1SessionMode.Nord || address === null || address === '') {
51
+ useEffect(function () {
52
+ if (sessionMode !== N1SessionMode.Nord || address === null || address === '') {
56
53
  return;
57
54
  }
58
55
  var createTransactionSignFunction = function () {
@@ -70,17 +67,17 @@ function useNordUserInitialization() {
70
67
  case 1: return [4 /*yield*/, (_a.sent()).signTransaction(transaction)];
71
68
  case 2:
72
69
  signedTransaction = _a.sent();
73
- logger_1.logger.debug('Solana transaction signature received');
70
+ logger.debug('Solana transaction signature received');
74
71
  // const serializedTx = signedTransaction.serialize();
75
72
  // return Transaction.from(serializedTx);
76
73
  console.log('signedTransaction', signedTransaction.signatures);
77
74
  console.log('signedTransaction - 2', signedTransaction);
78
75
  return [2 /*return*/, signedTransaction];
79
- case 3: throw new types_1.WalletError(types_1.WalletErrorCode.USER_REJECTED, 'Unsupported chain', { originalError: new Error('Unsupported chain') });
76
+ case 3: throw new WalletError(WalletErrorCode.USER_REJECTED, 'Unsupported chain', { originalError: new Error('Unsupported chain') });
80
77
  case 4:
81
78
  error_1 = _a.sent();
82
79
  console.error('Error signing transaction with wallet:', error_1);
83
- throw new types_1.WalletError(types_1.WalletErrorCode.USER_REJECTED, 'Failed to sign transaction with wallet', { originalError: error_1 });
80
+ throw new WalletError(WalletErrorCode.USER_REJECTED, 'Failed to sign transaction with wallet', { originalError: error_1 });
84
81
  case 5: return [2 /*return*/];
85
82
  }
86
83
  });
@@ -111,13 +108,13 @@ function useNordUserInitialization() {
111
108
  if (!(result === null || result === void 0 ? void 0 : result.signature)) {
112
109
  throw new Error('Wallet did not return a signature');
113
110
  }
114
- logger_1.logger.debug('Solana message signature received');
111
+ logger.debug('Solana message signature received');
115
112
  return [2 /*return*/, result.signature];
116
- case 3: throw new types_1.WalletError(types_1.WalletErrorCode.USER_REJECTED, 'Unsupported chain', { originalError: new Error('Unsupported chain') });
113
+ case 3: throw new WalletError(WalletErrorCode.USER_REJECTED, 'Unsupported chain', { originalError: new Error('Unsupported chain') });
117
114
  case 4:
118
115
  error_2 = _a.sent();
119
116
  console.error('Error signing message with wallet:', error_2);
120
- throw new types_1.WalletError(types_1.WalletErrorCode.USER_REJECTED, 'Failed to sign message with wallet', { originalError: error_2 });
117
+ throw new WalletError(WalletErrorCode.USER_REJECTED, 'Failed to sign message with wallet', { originalError: error_2 });
121
118
  case 5: return [2 /*return*/];
122
119
  }
123
120
  });
@@ -135,7 +132,7 @@ function useNordUserInitialization() {
135
132
  sessionKeyPair_1 = null;
136
133
  if (address) {
137
134
  try {
138
- storedKeys = (0, utils_1.getSessionKeysFromLocalStorage)(address);
135
+ storedKeys = getSessionKeysFromLocalStorage(address);
139
136
  if (storedKeys) {
140
137
  sessionKeyPair_1 = {
141
138
  privateKey: storedKeys.ed25519PrivateKey,
@@ -149,7 +146,7 @@ function useNordUserInitialization() {
149
146
  }
150
147
  }
151
148
  if (!!sessionKeyPair_1) return [3 /*break*/, 2];
152
- return [4 /*yield*/, (0, utils_1.generateSessionKeyPair)()];
149
+ return [4 /*yield*/, generateSessionKeyPair()];
153
150
  case 1:
154
151
  sessionKeyPair_1 = _a.sent();
155
152
  _a.label = 2;
@@ -160,7 +157,7 @@ function useNordUserInitialization() {
160
157
  switch (_a.label) {
161
158
  case 0:
162
159
  _a.trys.push([0, 2, , 3]);
163
- return [4 /*yield*/, (0, ed25519_1.signEd25519Message)(message, sessionKeyPair_1.privateKey)];
160
+ return [4 /*yield*/, signEd25519Message(message, sessionKeyPair_1.privateKey)];
164
161
  case 1: return [2 /*return*/, _a.sent()];
165
162
  case 2:
166
163
  error_4 = _a.sent();
@@ -170,7 +167,7 @@ function useNordUserInitialization() {
170
167
  }
171
168
  });
172
169
  }); };
173
- (0, utils_1.storeSessionKeysInLocalStorage)({
170
+ storeSessionKeysInLocalStorage({
174
171
  privKey: sessionKeyPair_1.privateKey,
175
172
  publicKey: sessionKeyPair_1.publicKey,
176
173
  walletPublicKey: address,
@@ -217,8 +214,8 @@ function useNordUserInitialization() {
217
214
  signTransactionWithWalletKey,
218
215
  ]);
219
216
  // Second useEffect: Initialize NordUser
220
- (0, react_1.useEffect)(function () {
221
- if (sessionMode !== wallet_1.N1SessionMode.Nord) {
217
+ useEffect(function () {
218
+ if (sessionMode !== N1SessionMode.Nord) {
222
219
  return;
223
220
  }
224
221
  var createNordUser = function () { return __awaiter(_this, void 0, void 0, function () {
@@ -233,13 +230,13 @@ function useNordUserInitialization() {
233
230
  sessionId = undefined;
234
231
  if (address) {
235
232
  try {
236
- sessionKeyData = (0, utils_1.getSessionKeysFromLocalStorage)(address);
233
+ sessionKeyData = getSessionKeysFromLocalStorage(address);
237
234
  if (sessionKeyData) {
238
235
  sessionIdKey = "n1_sessionId_".concat(address);
239
236
  storedSessionId = localStorage.getItem(sessionIdKey);
240
237
  if (storedSessionId !== null) {
241
238
  sessionId = BigInt(storedSessionId);
242
- logger_1.logger.debug('Found existing sessionId in localStorage', {
239
+ logger.debug('Found existing sessionId in localStorage', {
243
240
  sessionId: storedSessionId,
244
241
  });
245
242
  }
@@ -249,12 +246,12 @@ function useNordUserInitialization() {
249
246
  console.error('Error retrieving sessionId from localStorage:', error);
250
247
  }
251
248
  }
252
- return [4 /*yield*/, (0, nordUser_1.dynamicImportNordUser)()];
249
+ return [4 /*yield*/, dynamicImportNordUser()];
253
250
  case 1:
254
251
  NordUser = _a.sent();
255
252
  return [4 /*yield*/, NordUser.new({
256
253
  nord: nord,
257
- walletPubkey: new web3_js_1.PublicKey(address),
254
+ walletPubkey: new PublicKey(address),
258
255
  sessionPubkey: sessionPubKey,
259
256
  sessionId: sessionId,
260
257
  signSessionFn: signMessageWithSessionKey,
@@ -291,7 +288,7 @@ function useNordUserInitialization() {
291
288
  signTransactionWithWalletKey &&
292
289
  sessionPubKey &&
293
290
  nordUser === null) {
294
- logger_1.logger.debug('Dependencies available, initializing NordUser');
291
+ logger.debug('Dependencies available, initializing NordUser');
295
292
  createNordUser();
296
293
  }
297
294
  }, [
@@ -1 +1 @@
1
- {"version":3,"file":"useNordUserInitialization.js","sourceRoot":"","sources":["../../src/hooks/useNordUserInitialization.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect } from 'react';\nimport { PublicKey } from '@solana/web3.js';\nimport { signEd25519Message } from '../utils/ed25519';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport { N1SessionMode } from '../types/wallet';\nimport { useN1WalletContext, useN1WalletInternalContext } from './useN1Wallet';\nimport { generateSessionKeyPair, getSessionKeysFromLocalStorage, storeSessionKeysInLocalStorage } from '../features/onboarding-flow/utils/utils';\nimport { dynamicImportNordUser } from '../features/onboarding-flow/utils/nordUser';\n\n\n\nexport function useNordUserInitialization() {\n const {\n setNordUser,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n dynamicWallet,\n } = useN1WalletInternalContext();\n\n const {\n address,\n nordUser,\n sessionMode,\n nord,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n } = useN1WalletContext();\n // First useEffect: Initialize signing functions\n useEffect(() => {\n if (sessionMode !== N1SessionMode.Nord || address === null || address === '') {\n return;\n }\n\n const createTransactionSignFunction = () => {\n if (!dynamicWallet) {\n return null;\n }\n\n const signTransactionWithWallet = async (\n transaction: any\n ): Promise<any> => {\n try {\n if (dynamicWallet.chain === 'SOL') {\n const signedTransaction = await (\n await dynamicWallet.getSigner()\n ).signTransaction(transaction);\n logger.debug('Solana transaction signature received');\n\n // const serializedTx = signedTransaction.serialize();\n // return Transaction.from(serializedTx);\n console.log('signedTransaction', signedTransaction.signatures);\n console.log('signedTransaction - 2', signedTransaction);\n return signedTransaction;\n }\n\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Unsupported chain',\n { originalError: new Error('Unsupported chain') }\n );\n } catch (error) {\n console.error('Error signing transaction with wallet:', error);\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Failed to sign transaction with wallet',\n { originalError: error }\n );\n }\n };\n\n setSignTransactionWithWalletKey(() => signTransactionWithWallet);\n return signTransactionWithWallet;\n };\n\n const createWalletMessageSignFunction = () => {\n if (!dynamicWallet) {\n return null;\n }\n\n const signMessageWithWallet = async (\n message: Uint8Array\n ): Promise<Uint8Array> => {\n try {\n if (dynamicWallet.chain === 'SOL') {\n const signer = await dynamicWallet.getSigner();\n if (!signer?.signMessage) {\n throw new Error('signMessage is not supported by this wallet');\n }\n const result = await signer.signMessage(message);\n if (!result?.signature) {\n throw new Error('Wallet did not return a signature');\n }\n logger.debug('Solana message signature received');\n return result.signature;\n }\n\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Unsupported chain',\n { originalError: new Error('Unsupported chain') }\n );\n } catch (error) {\n console.error('Error signing message with wallet:', error);\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Failed to sign message with wallet',\n { originalError: error }\n );\n }\n };\n\n setSignMessageWithWalletKey(() => signMessageWithWallet);\n return signMessageWithWallet;\n };\n\n const createSession = async () => {\n try {\n let sessionKeyPair = null;\n if (address) {\n try {\n const storedKeys = getSessionKeysFromLocalStorage(address);\n if (storedKeys) {\n sessionKeyPair = {\n privateKey: storedKeys.ed25519PrivateKey,\n publicKey: storedKeys.ed25519PublicKey,\n };\n }\n } catch (error) {\n console.error(\n 'Error reconstructing key pair from stored keys:',\n error\n );\n sessionKeyPair = null;\n }\n }\n\n if (!sessionKeyPair) {\n sessionKeyPair = await generateSessionKeyPair();\n }\n\n const signFn = async (message: any): Promise<any> => {\n try {\n return await signEd25519Message(message, sessionKeyPair.privateKey);\n } catch (error) {\n console.error('Error signing with session key:', error);\n throw error;\n }\n };\n\n\n storeSessionKeysInLocalStorage({\n privKey: sessionKeyPair.privateKey,\n publicKey: sessionKeyPair.publicKey!,\n walletPublicKey: address,\n chainName: dynamicWallet?.chain || 'ETH',\n });\n\n setSessionPubKey(sessionKeyPair.publicKey!);\n setSignMessageWithSessionKey(() => signFn);\n return signFn;\n } catch (error) {\n console.error('Error creating session:', error);\n return null;\n }\n };\n\n // Initialize signing functions if needed\n const initSigningFunctions = async () => {\n if (!signTransactionWithWalletKey && dynamicWallet) {\n createTransactionSignFunction();\n }\n\n if (!signMessageWithWalletKey && dynamicWallet) {\n createWalletMessageSignFunction();\n }\n\n if (!signMessageWithSessionKey) {\n await createSession();\n }\n };\n\n initSigningFunctions();\n }, [\n dynamicWallet,\n address,\n sessionMode,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n ]);\n\n // Second useEffect: Initialize NordUser\n useEffect(() => {\n if (sessionMode !== N1SessionMode.Nord) {\n return;\n }\n\n const createNordUser = async () => {\n try {\n if (!nord || !address || !sessionPubKey || !signMessageWithSessionKey || !signMessageWithWalletKey || !signTransactionWithWalletKey) {\n return null;\n }\n\n let sessionId = undefined;\n if (address) {\n try {\n const sessionKeyData = getSessionKeysFromLocalStorage(address);\n if (sessionKeyData) {\n const sessionIdKey = `n1_sessionId_${address}`;\n const storedSessionId = localStorage.getItem(sessionIdKey);\n if (storedSessionId !== null) {\n sessionId = BigInt(storedSessionId);\n logger.debug('Found existing sessionId in localStorage', {\n sessionId: storedSessionId,\n });\n }\n }\n } catch (error) {\n console.error('Error retrieving sessionId from localStorage:', error);\n }\n }\n\n const NordUser = await dynamicImportNordUser();\n const user = await NordUser.new({\n nord,\n walletPubkey: new PublicKey(address),\n sessionPubkey: sessionPubKey,\n sessionId,\n signSessionFn: signMessageWithSessionKey,\n signTransactionFn: signTransactionWithWalletKey,\n signMessageFn: signMessageWithWalletKey,\n });\n\n try {\n await user.updateAccountId();\n } catch (_) { }\n\n setNordUser(user);\n return user;\n } catch (error) {\n console.error('Error creating NordUser:', error);\n setNordUser(null);\n return null;\n }\n };\n\n // Only create NordUser when all dependencies are available and nordUser is null\n if (\n signMessageWithSessionKey &&\n signMessageWithWalletKey &&\n signTransactionWithWalletKey &&\n sessionPubKey &&\n nordUser === null\n ) {\n logger.debug('Dependencies available, initializing NordUser');\n createNordUser();\n }\n }, [\n sessionMode,\n nord,\n address,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n nordUser,\n setNordUser\n ]);\n} \n"]}
1
+ {"version":3,"file":"useNordUserInitialization.js","sourceRoot":"","sources":["../../src/hooks/useNordUserInitialization.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACjJ,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAInF,MAAM,UAAU,yBAAyB;IAAzC,iBAqQC;IApQS,IAAA,KAOF,0BAA0B,EAAE,EAN5B,WAAW,iBAAA,EACX,gBAAgB,sBAAA,EAChB,4BAA4B,kCAAA,EAC5B,2BAA2B,iCAAA,EAC3B,+BAA+B,qCAAA,EAC/B,aAAa,mBACe,CAAC;IAE3B,IAAA,KASF,kBAAkB,EAAE,EARpB,OAAO,aAAA,EACP,QAAQ,cAAA,EACR,WAAW,iBAAA,EACX,IAAI,UAAA,EACJ,yBAAyB,+BAAA,EACzB,wBAAwB,8BAAA,EACxB,4BAA4B,kCAAA,EAC5B,aAAa,mBACO,CAAC;IACzB,gDAAgD;IAChD,SAAS,CAAC;QACN,IAAI,WAAW,KAAK,aAAa,CAAC,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC3E,OAAO;QACX,CAAC;QAED,IAAM,6BAA6B,GAAG;YAClC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAM,yBAAyB,GAAG,UAC9B,WAAgB;;;;;;iCAGR,CAAA,aAAa,CAAC,KAAK,KAAK,KAAK,CAAA,EAA7B,wBAA6B;4BAEzB,qBAAM,aAAa,CAAC,SAAS,EAAE,EAAA;gCADT,qBAAM,CAC5B,SAA+B,CAClC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAA;;4BAFxB,iBAAiB,GAAG,SAEI;4BAC9B,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;4BAEtD,sDAAsD;4BACtD,yCAAyC;4BACzC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;4BAC/D,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAC;4BACxD,sBAAO,iBAAiB,EAAC;gCAG7B,MAAM,IAAI,WAAW,CACjB,eAAe,CAAC,aAAa,EAC7B,mBAAmB,EACnB,EAAE,aAAa,EAAE,IAAI,KAAK,CAAC,mBAAmB,CAAC,EAAE,CACpD,CAAC;;;4BAEF,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,OAAK,CAAC,CAAC;4BAC/D,MAAM,IAAI,WAAW,CACjB,eAAe,CAAC,aAAa,EAC7B,wCAAwC,EACxC,EAAE,aAAa,EAAE,OAAK,EAAE,CAC3B,CAAC;;;;iBAET,CAAC;YAEF,+BAA+B,CAAC,cAAM,OAAA,yBAAyB,EAAzB,CAAyB,CAAC,CAAC;YACjE,OAAO,yBAAyB,CAAC;QACrC,CAAC,CAAC;QAEF,IAAM,+BAA+B,GAAG;YACpC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAM,qBAAqB,GAAG,UAC1B,OAAmB;;;;;;iCAGX,CAAA,aAAa,CAAC,KAAK,KAAK,KAAK,CAAA,EAA7B,wBAA6B;4BACd,qBAAM,aAAa,CAAC,SAAS,EAAE,EAAA;;4BAAxC,MAAM,GAAG,SAA+B;4BAC9C,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAA,EAAE,CAAC;gCACvB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;4BACnE,CAAC;4BACc,qBAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAA;;4BAA1C,MAAM,GAAG,SAAiC;4BAChD,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA,EAAE,CAAC;gCACrB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;4BACzD,CAAC;4BACD,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;4BAClD,sBAAO,MAAM,CAAC,SAAS,EAAC;gCAG5B,MAAM,IAAI,WAAW,CACjB,eAAe,CAAC,aAAa,EAC7B,mBAAmB,EACnB,EAAE,aAAa,EAAE,IAAI,KAAK,CAAC,mBAAmB,CAAC,EAAE,CACpD,CAAC;;;4BAEF,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,OAAK,CAAC,CAAC;4BAC3D,MAAM,IAAI,WAAW,CACjB,eAAe,CAAC,aAAa,EAC7B,oCAAoC,EACpC,EAAE,aAAa,EAAE,OAAK,EAAE,CAC3B,CAAC;;;;iBAET,CAAC;YAEF,2BAA2B,CAAC,cAAM,OAAA,qBAAqB,EAArB,CAAqB,CAAC,CAAC;YACzD,OAAO,qBAAqB,CAAC;QACjC,CAAC,CAAC;QAEF,IAAM,aAAa,GAAG;;;;;;;wBAEV,mBAAiB,IAAI,CAAC;wBAC1B,IAAI,OAAO,EAAE,CAAC;4BACV,IAAI,CAAC;gCACK,UAAU,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;gCAC3D,IAAI,UAAU,EAAE,CAAC;oCACb,gBAAc,GAAG;wCACb,UAAU,EAAE,UAAU,CAAC,iBAAiB;wCACxC,SAAS,EAAE,UAAU,CAAC,gBAAgB;qCACzC,CAAC;gCACN,CAAC;4BACL,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACb,OAAO,CAAC,KAAK,CACT,iDAAiD,EACjD,KAAK,CACR,CAAC;gCACF,gBAAc,GAAG,IAAI,CAAC;4BAC1B,CAAC;wBACL,CAAC;6BAEG,CAAC,gBAAc,EAAf,wBAAe;wBACE,qBAAM,sBAAsB,EAAE,EAAA;;wBAA/C,gBAAc,GAAG,SAA8B,CAAC;;;wBAG9C,WAAS,UAAO,OAAY;;;;;;wCAEnB,qBAAM,kBAAkB,CAAC,OAAO,EAAE,gBAAc,CAAC,UAAU,CAAC,EAAA;4CAAnE,sBAAO,SAA4D,EAAC;;;wCAEpE,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,OAAK,CAAC,CAAC;wCACxD,MAAM,OAAK,CAAC;;;;6BAEnB,CAAC;wBAGF,8BAA8B,CAAC;4BAC3B,OAAO,EAAE,gBAAc,CAAC,UAAU;4BAClC,SAAS,EAAE,gBAAc,CAAC,SAAU;4BACpC,eAAe,EAAE,OAAO;4BACxB,SAAS,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,KAAI,KAAK;yBAC3C,CAAC,CAAC;wBAEH,gBAAgB,CAAC,gBAAc,CAAC,SAAU,CAAC,CAAC;wBAC5C,4BAA4B,CAAC,cAAM,OAAA,QAAM,EAAN,CAAM,CAAC,CAAC;wBAC3C,sBAAO,QAAM,EAAC;;;wBAEd,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,OAAK,CAAC,CAAC;wBAChD,sBAAO,IAAI,EAAC;;;;aAEnB,CAAC;QAEF,yCAAyC;QACzC,IAAM,oBAAoB,GAAG;;;;wBACzB,IAAI,CAAC,4BAA4B,IAAI,aAAa,EAAE,CAAC;4BACjD,6BAA6B,EAAE,CAAC;wBACpC,CAAC;wBAED,IAAI,CAAC,wBAAwB,IAAI,aAAa,EAAE,CAAC;4BAC7C,+BAA+B,EAAE,CAAC;wBACtC,CAAC;6BAEG,CAAC,yBAAyB,EAA1B,wBAA0B;wBAC1B,qBAAM,aAAa,EAAE,EAAA;;wBAArB,SAAqB,CAAC;;;;;aAE7B,CAAC;QAEF,oBAAoB,EAAE,CAAC;IAC3B,CAAC,EAAE;QACC,aAAa;QACb,OAAO;QACP,WAAW;QACX,yBAAyB;QACzB,wBAAwB;QACxB,4BAA4B;KAC/B,CAAC,CAAC;IAEH,wCAAwC;IACxC,SAAS,CAAC;QACN,IAAI,WAAW,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QAED,IAAM,cAAc,GAAG;;;;;;wBAEf,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,yBAAyB,IAAI,CAAC,wBAAwB,IAAI,CAAC,4BAA4B,EAAE,CAAC;4BAClI,sBAAO,IAAI,EAAC;wBAChB,CAAC;wBAEG,SAAS,GAAG,SAAS,CAAC;wBAC1B,IAAI,OAAO,EAAE,CAAC;4BACV,IAAI,CAAC;gCACK,cAAc,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;gCAC/D,IAAI,cAAc,EAAE,CAAC;oCACX,YAAY,GAAG,uBAAgB,OAAO,CAAE,CAAC;oCACzC,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oCAC3D,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;wCAC3B,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;wCACpC,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAE;4CACrD,SAAS,EAAE,eAAe;yCAC7B,CAAC,CAAC;oCACP,CAAC;gCACL,CAAC;4BACL,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACb,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;4BAC1E,CAAC;wBACL,CAAC;wBAEgB,qBAAM,qBAAqB,EAAE,EAAA;;wBAAxC,QAAQ,GAAG,SAA6B;wBACjC,qBAAM,QAAQ,CAAC,GAAG,CAAC;gCAC5B,IAAI,MAAA;gCACJ,YAAY,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC;gCACpC,aAAa,EAAE,aAAa;gCAC5B,SAAS,WAAA;gCACT,aAAa,EAAE,yBAAyB;gCACxC,iBAAiB,EAAE,4BAA4B;gCAC/C,aAAa,EAAE,wBAAwB;6BAC1C,CAAC,EAAA;;wBARI,IAAI,GAAG,SAQX;;;;wBAGE,qBAAM,IAAI,CAAC,eAAe,EAAE,EAAA;;wBAA5B,SAA4B,CAAC;;;;;;wBAGjC,WAAW,CAAC,IAAI,CAAC,CAAC;wBAClB,sBAAO,IAAI,EAAC;;;wBAEZ,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,OAAK,CAAC,CAAC;wBACjD,WAAW,CAAC,IAAI,CAAC,CAAC;wBAClB,sBAAO,IAAI,EAAC;;;;aAEnB,CAAC;QAEF,gFAAgF;QAChF,IACI,yBAAyB;YACzB,wBAAwB;YACxB,4BAA4B;YAC5B,aAAa;YACb,QAAQ,KAAK,IAAI,EACnB,CAAC;YACC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC9D,cAAc,EAAE,CAAC;QACrB,CAAC;IACL,CAAC,EAAE;QACC,WAAW;QACX,IAAI;QACJ,OAAO;QACP,yBAAyB;QACzB,wBAAwB;QACxB,4BAA4B;QAC5B,aAAa;QACb,QAAQ;QACR,WAAW;KACd,CAAC,CAAC;AACP,CAAC","sourcesContent":["import { useEffect } from 'react';\nimport { PublicKey } from '@solana/web3.js';\nimport { signEd25519Message } from '../utils/ed25519';\nimport { WalletError, WalletErrorCode } from '../errors/types';\nimport { logger } from '../utils/logger';\nimport { N1SessionMode } from '../types/wallet';\nimport { useN1WalletContext, useN1WalletInternalContext } from './useN1Wallet';\nimport { generateSessionKeyPair, getSessionKeysFromLocalStorage, storeSessionKeysInLocalStorage } from '../features/onboarding-flow/utils/utils';\nimport { dynamicImportNordUser } from '../features/onboarding-flow/utils/nordUser';\n\n\n\nexport function useNordUserInitialization() {\n const {\n setNordUser,\n setSessionPubKey,\n setSignMessageWithSessionKey,\n setSignMessageWithWalletKey,\n setSignTransactionWithWalletKey,\n dynamicWallet,\n } = useN1WalletInternalContext();\n\n const {\n address,\n nordUser,\n sessionMode,\n nord,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n } = useN1WalletContext();\n // First useEffect: Initialize signing functions\n useEffect(() => {\n if (sessionMode !== N1SessionMode.Nord || address === null || address === '') {\n return;\n }\n\n const createTransactionSignFunction = () => {\n if (!dynamicWallet) {\n return null;\n }\n\n const signTransactionWithWallet = async (\n transaction: any\n ): Promise<any> => {\n try {\n if (dynamicWallet.chain === 'SOL') {\n const signedTransaction = await (\n await dynamicWallet.getSigner()\n ).signTransaction(transaction);\n logger.debug('Solana transaction signature received');\n\n // const serializedTx = signedTransaction.serialize();\n // return Transaction.from(serializedTx);\n console.log('signedTransaction', signedTransaction.signatures);\n console.log('signedTransaction - 2', signedTransaction);\n return signedTransaction;\n }\n\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Unsupported chain',\n { originalError: new Error('Unsupported chain') }\n );\n } catch (error) {\n console.error('Error signing transaction with wallet:', error);\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Failed to sign transaction with wallet',\n { originalError: error }\n );\n }\n };\n\n setSignTransactionWithWalletKey(() => signTransactionWithWallet);\n return signTransactionWithWallet;\n };\n\n const createWalletMessageSignFunction = () => {\n if (!dynamicWallet) {\n return null;\n }\n\n const signMessageWithWallet = async (\n message: Uint8Array\n ): Promise<Uint8Array> => {\n try {\n if (dynamicWallet.chain === 'SOL') {\n const signer = await dynamicWallet.getSigner();\n if (!signer?.signMessage) {\n throw new Error('signMessage is not supported by this wallet');\n }\n const result = await signer.signMessage(message);\n if (!result?.signature) {\n throw new Error('Wallet did not return a signature');\n }\n logger.debug('Solana message signature received');\n return result.signature;\n }\n\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Unsupported chain',\n { originalError: new Error('Unsupported chain') }\n );\n } catch (error) {\n console.error('Error signing message with wallet:', error);\n throw new WalletError(\n WalletErrorCode.USER_REJECTED,\n 'Failed to sign message with wallet',\n { originalError: error }\n );\n }\n };\n\n setSignMessageWithWalletKey(() => signMessageWithWallet);\n return signMessageWithWallet;\n };\n\n const createSession = async () => {\n try {\n let sessionKeyPair = null;\n if (address) {\n try {\n const storedKeys = getSessionKeysFromLocalStorage(address);\n if (storedKeys) {\n sessionKeyPair = {\n privateKey: storedKeys.ed25519PrivateKey,\n publicKey: storedKeys.ed25519PublicKey,\n };\n }\n } catch (error) {\n console.error(\n 'Error reconstructing key pair from stored keys:',\n error\n );\n sessionKeyPair = null;\n }\n }\n\n if (!sessionKeyPair) {\n sessionKeyPair = await generateSessionKeyPair();\n }\n\n const signFn = async (message: any): Promise<any> => {\n try {\n return await signEd25519Message(message, sessionKeyPair.privateKey);\n } catch (error) {\n console.error('Error signing with session key:', error);\n throw error;\n }\n };\n\n\n storeSessionKeysInLocalStorage({\n privKey: sessionKeyPair.privateKey,\n publicKey: sessionKeyPair.publicKey!,\n walletPublicKey: address,\n chainName: dynamicWallet?.chain || 'ETH',\n });\n\n setSessionPubKey(sessionKeyPair.publicKey!);\n setSignMessageWithSessionKey(() => signFn);\n return signFn;\n } catch (error) {\n console.error('Error creating session:', error);\n return null;\n }\n };\n\n // Initialize signing functions if needed\n const initSigningFunctions = async () => {\n if (!signTransactionWithWalletKey && dynamicWallet) {\n createTransactionSignFunction();\n }\n\n if (!signMessageWithWalletKey && dynamicWallet) {\n createWalletMessageSignFunction();\n }\n\n if (!signMessageWithSessionKey) {\n await createSession();\n }\n };\n\n initSigningFunctions();\n }, [\n dynamicWallet,\n address,\n sessionMode,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n ]);\n\n // Second useEffect: Initialize NordUser\n useEffect(() => {\n if (sessionMode !== N1SessionMode.Nord) {\n return;\n }\n\n const createNordUser = async () => {\n try {\n if (!nord || !address || !sessionPubKey || !signMessageWithSessionKey || !signMessageWithWalletKey || !signTransactionWithWalletKey) {\n return null;\n }\n\n let sessionId = undefined;\n if (address) {\n try {\n const sessionKeyData = getSessionKeysFromLocalStorage(address);\n if (sessionKeyData) {\n const sessionIdKey = `n1_sessionId_${address}`;\n const storedSessionId = localStorage.getItem(sessionIdKey);\n if (storedSessionId !== null) {\n sessionId = BigInt(storedSessionId);\n logger.debug('Found existing sessionId in localStorage', {\n sessionId: storedSessionId,\n });\n }\n }\n } catch (error) {\n console.error('Error retrieving sessionId from localStorage:', error);\n }\n }\n\n const NordUser = await dynamicImportNordUser();\n const user = await NordUser.new({\n nord,\n walletPubkey: new PublicKey(address),\n sessionPubkey: sessionPubKey,\n sessionId,\n signSessionFn: signMessageWithSessionKey,\n signTransactionFn: signTransactionWithWalletKey,\n signMessageFn: signMessageWithWalletKey,\n });\n\n try {\n await user.updateAccountId();\n } catch (_) { }\n\n setNordUser(user);\n return user;\n } catch (error) {\n console.error('Error creating NordUser:', error);\n setNordUser(null);\n return null;\n }\n };\n\n // Only create NordUser when all dependencies are available and nordUser is null\n if (\n signMessageWithSessionKey &&\n signMessageWithWalletKey &&\n signTransactionWithWalletKey &&\n sessionPubKey &&\n nordUser === null\n ) {\n logger.debug('Dependencies available, initializing NordUser');\n createNordUser();\n }\n }, [\n sessionMode,\n nord,\n address,\n signMessageWithSessionKey,\n signMessageWithWalletKey,\n signTransactionWithWalletKey,\n sessionPubKey,\n nordUser,\n setNordUser\n ]);\n} \n"]}
package/dist/index.js CHANGED
@@ -1,22 +1,8 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ProcessingAnimation = exports.N1LoaderAnimation = exports.Logo = exports.useN1WalletContext = exports.N1ConnectButton = exports.N1SessionMode = exports.N1ModalViewMode = exports.N1WalletProvider = void 0;
7
- var N1WalletProvider_1 = require("./providers/N1WalletProvider");
8
- Object.defineProperty(exports, "N1WalletProvider", { enumerable: true, get: function () { return N1WalletProvider_1.N1WalletProvider; } });
9
- var wallet_1 = require("./types/wallet");
10
- Object.defineProperty(exports, "N1ModalViewMode", { enumerable: true, get: function () { return wallet_1.N1ModalViewMode; } });
11
- Object.defineProperty(exports, "N1SessionMode", { enumerable: true, get: function () { return wallet_1.N1SessionMode; } });
12
- var N1ConnectButton_1 = require("./components/N1ConnectButton");
13
- Object.defineProperty(exports, "N1ConnectButton", { enumerable: true, get: function () { return N1ConnectButton_1.N1ConnectButton; } });
14
- var useN1Wallet_1 = require("./hooks/useN1Wallet");
15
- Object.defineProperty(exports, "useN1WalletContext", { enumerable: true, get: function () { return useN1Wallet_1.useN1WalletContext; } });
16
- var Logo_1 = require("./components/Logo");
17
- Object.defineProperty(exports, "Logo", { enumerable: true, get: function () { return __importDefault(Logo_1).default; } });
18
- var N1Loader_1 = require("./animations/N1Loader");
19
- Object.defineProperty(exports, "N1LoaderAnimation", { enumerable: true, get: function () { return N1Loader_1.N1LoaderAnimation; } });
20
- var Processing_1 = require("./animations/Processing");
21
- Object.defineProperty(exports, "ProcessingAnimation", { enumerable: true, get: function () { return Processing_1.ProcessingAnimation; } });
1
+ export { N1WalletProvider } from './providers/N1WalletProvider';
2
+ export { N1ModalViewMode, N1SessionMode, } from './types/wallet';
3
+ export { N1ConnectButton } from './components/N1ConnectButton';
4
+ export { useN1WalletContext } from './hooks/useN1Wallet';
5
+ export { default as Logo } from './components/Logo';
6
+ export { N1LoaderAnimation } from './animations/N1Loader';
7
+ export { ProcessingAnimation } from './animations/Processing';
22
8
  //# sourceMappingURL=index.js.map