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

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 (137) hide show
  1. package/dist/animations/N1Loader.js +14 -8
  2. package/dist/animations/N1Loader.js.map +1 -1
  3. package/dist/animations/Processing.js +14 -8
  4. package/dist/animations/Processing.js.map +1 -1
  5. package/dist/components/LoadingFallback.js +6 -2
  6. package/dist/components/LoadingFallback.js.map +1 -1
  7. package/dist/components/Logo.js +25 -22
  8. package/dist/components/Logo.js.map +1 -1
  9. package/dist/components/N1ConnectButton.js +18 -12
  10. package/dist/components/N1ConnectButton.js.map +1 -1
  11. package/dist/components/logos/ArbitrumLogo.js +7 -3
  12. package/dist/components/logos/ArbitrumLogo.js.map +1 -1
  13. package/dist/components/logos/BaseLogo.js +7 -3
  14. package/dist/components/logos/BaseLogo.js.map +1 -1
  15. package/dist/components/logos/BeraLogo.js +7 -3
  16. package/dist/components/logos/BeraLogo.js.map +1 -1
  17. package/dist/components/logos/BitcoinLogo.js +7 -3
  18. package/dist/components/logos/BitcoinLogo.js.map +1 -1
  19. package/dist/components/logos/EthereumLogo.js +7 -3
  20. package/dist/components/logos/EthereumLogo.js.map +1 -1
  21. package/dist/components/logos/HyperliquidLogo.js +7 -3
  22. package/dist/components/logos/HyperliquidLogo.js.map +1 -1
  23. package/dist/components/logos/OptimismLogo.js +7 -3
  24. package/dist/components/logos/OptimismLogo.js.map +1 -1
  25. package/dist/components/logos/SolanaLogo.js +7 -3
  26. package/dist/components/logos/SolanaLogo.js.map +1 -1
  27. package/dist/components/logos/ZeroOneLogo.js +7 -3
  28. package/dist/components/logos/ZeroOneLogo.js.map +1 -1
  29. package/dist/components/logos/index.js +25 -9
  30. package/dist/components/logos/index.js.map +1 -1
  31. package/dist/config/solana.js +7 -3
  32. package/dist/config/solana.js.map +1 -1
  33. package/dist/config.js +5 -2
  34. package/dist/config.js.map +1 -1
  35. package/dist/context/n1-wallet-context.js +8 -4
  36. package/dist/context/n1-wallet-context.js.map +1 -1
  37. package/dist/errors/types.js +6 -3
  38. package/dist/errors/types.js.map +1 -1
  39. package/dist/features/onboarding-flow/N1WalletModal.js +59 -23
  40. package/dist/features/onboarding-flow/N1WalletModal.js.map +1 -1
  41. package/dist/features/onboarding-flow/OnboardingFlow.js +50 -46
  42. package/dist/features/onboarding-flow/OnboardingFlow.js.map +1 -1
  43. package/dist/features/onboarding-flow/components/ChainButton.js +7 -4
  44. package/dist/features/onboarding-flow/components/ChainButton.js.map +1 -1
  45. package/dist/features/onboarding-flow/components/Header.js +15 -11
  46. package/dist/features/onboarding-flow/components/Header.js.map +1 -1
  47. package/dist/features/onboarding-flow/components/ImageWithFallback.js +10 -6
  48. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -1
  49. package/dist/features/onboarding-flow/components/TransactionTable.js +13 -10
  50. package/dist/features/onboarding-flow/components/TransactionTable.js.map +1 -1
  51. package/dist/features/onboarding-flow/components/WaitingMessage.js +14 -8
  52. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +1 -1
  53. package/dist/features/onboarding-flow/components/index.js +21 -5
  54. package/dist/features/onboarding-flow/components/index.js.map +1 -1
  55. package/dist/features/onboarding-flow/index.js +5 -1
  56. package/dist/features/onboarding-flow/index.js.map +1 -1
  57. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +60 -55
  58. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -1
  59. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +48 -43
  60. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -1
  61. package/dist/features/onboarding-flow/providers/StateProvider.js +11 -7
  62. package/dist/features/onboarding-flow/providers/StateProvider.js.map +1 -1
  63. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +74 -69
  64. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -1
  65. package/dist/features/onboarding-flow/providers/debug.js +21 -18
  66. package/dist/features/onboarding-flow/providers/debug.js.map +1 -1
  67. package/dist/features/onboarding-flow/providers/index.js +16 -5
  68. package/dist/features/onboarding-flow/providers/index.js.map +1 -1
  69. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js +20 -15
  70. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -1
  71. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js +11 -8
  72. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -1
  73. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +38 -34
  74. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +1 -1
  75. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +51 -47
  76. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +1 -1
  77. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +12 -8
  78. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +1 -1
  79. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js +28 -25
  80. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +1 -1
  81. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +13 -10
  82. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +1 -1
  83. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +10 -7
  84. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +1 -1
  85. package/dist/features/onboarding-flow/screens/index.js +23 -7
  86. package/dist/features/onboarding-flow/screens/index.js.map +1 -1
  87. package/dist/features/onboarding-flow/types.js +6 -3
  88. package/dist/features/onboarding-flow/types.js.map +1 -1
  89. package/dist/features/onboarding-flow/utils/depositStorage.js +8 -3
  90. package/dist/features/onboarding-flow/utils/depositStorage.js.map +1 -1
  91. package/dist/features/onboarding-flow/utils/imageUtils.js +9 -3
  92. package/dist/features/onboarding-flow/utils/imageUtils.js.map +1 -1
  93. package/dist/features/onboarding-flow/utils/nordUser.js +38 -2
  94. package/dist/features/onboarding-flow/utils/nordUser.js.map +1 -1
  95. package/dist/features/onboarding-flow/utils/nordUtils.js +12 -5
  96. package/dist/features/onboarding-flow/utils/nordUtils.js.map +1 -1
  97. package/dist/features/onboarding-flow/utils/session.js +17 -14
  98. package/dist/features/onboarding-flow/utils/session.js.map +1 -1
  99. package/dist/features/onboarding-flow/utils/transaction.js +4 -1
  100. package/dist/features/onboarding-flow/utils/transaction.js.map +1 -1
  101. package/dist/features/onboarding-flow/utils/utils.js +16 -8
  102. package/dist/features/onboarding-flow/utils/utils.js.map +1 -1
  103. package/dist/features/onboarding-flow/utils/withImageFallback.js +15 -9
  104. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -1
  105. package/dist/hooks/index.js +18 -2
  106. package/dist/hooks/index.js.map +1 -1
  107. package/dist/hooks/useN1Wallet.js +10 -6
  108. package/dist/hooks/useN1Wallet.js.map +1 -1
  109. package/dist/hooks/useNordUserInitialization.js +34 -31
  110. package/dist/hooks/useNordUserInitialization.js.map +1 -1
  111. package/dist/index.js +21 -7
  112. package/dist/index.js.map +1 -1
  113. package/dist/polyfills/windowEthereumGuard.js +2 -1
  114. package/dist/polyfills/windowEthereumGuard.js.map +1 -1
  115. package/dist/providers/LazyWalletProvider.js +74 -38
  116. package/dist/providers/LazyWalletProvider.js.map +1 -1
  117. package/dist/providers/N1WalletProvider.js +109 -70
  118. package/dist/providers/N1WalletProvider.js.map +1 -1
  119. package/dist/providers/ShadowRootWrapper.js +10 -4
  120. package/dist/providers/ShadowRootWrapper.js.map +1 -1
  121. package/dist/providers/WalletErrorBoundary.js +11 -6
  122. package/dist/providers/WalletErrorBoundary.js.map +1 -1
  123. package/dist/styles/embedded-main-css.js +3 -1
  124. package/dist/styles/embedded-main-css.js.map +1 -1
  125. package/dist/types/wallet.js +7 -4
  126. package/dist/types/wallet.js.map +1 -1
  127. package/dist/utils/ed25519.js +20 -14
  128. package/dist/utils/ed25519.js.map +1 -1
  129. package/dist/utils/getPseudoName.js +10 -7
  130. package/dist/utils/getPseudoName.js.map +1 -1
  131. package/dist/utils/logger.js +5 -3
  132. package/dist/utils/logger.js.map +1 -1
  133. package/dist/utils/shortenString.js +6 -2
  134. package/dist/utils/shortenString.js.map +1 -1
  135. package/dist/utils/words.js +4 -1
  136. package/dist/utils/words.js.map +1 -1
  137. package/package.json +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/features/onboarding-flow/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,cASX;AATD,WAAY,cAAc;IACxB,yDAAuC,CAAA;IACvC,qDAAmC,CAAA;IACnC,+CAA6B,CAAA;IAC7B,uDAAqC,CAAA;IACrC,qDAAmC,CAAA;IACnC,+CAA6B,CAAA;IAC7B,iDAA+B,CAAA;IAC/B,iCAAe,CAAA;AACjB,CAAC,EATW,cAAc,KAAd,cAAc,QASzB;AAuCD;;GAEG;AACH,MAAM,CAAC,IAAM,wBAAwB,GAAsB;IACzD,cAAc,EAAE,KAAK;IACrB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,oBAAoB,EAAE,IAAI;IAC1B,MAAM,EAAE,EAAE;IACV,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,SAAS;IACvB,iBAAiB,EAAE,KAAK;IACxB,WAAW,EAAE,IAAI;CAClB,CAAC","sourcesContent":["import React from 'react';\n\n/**\n * Shared types for the onboarding flow state machine\n */\n\n/**\n * Enum representing all possible states in the onboarding flow\n */\nexport enum OnboardingStep {\n CONNECTING_WALLET = 'CONNECTING_WALLET',\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 onboarding context, containing all data necessary\n * for the onboarding flow\n */\nexport interface StoredDepositRecord {\n transactionId: string;\n amount: string;\n tokenSymbol: string;\n chainId: string;\n chainName: string;\n chainNetwork: string | null;\n timestamp: number;\n}\n\nexport interface OnboardingContext {\n hasNordAccount: boolean;\n hasActiveSession: boolean;\n selectedChain: string | null;\n selectedChainId: string | null;\n selectedChainNetwork: string | null;\n amount: string;\n transactionId: string | null;\n error: Error | null;\n depositError?: string;\n isDepositOnlyFlow: boolean;\n lastDeposit: StoredDepositRecord | null;\n}\n\nexport interface WalletBalanceState {\n usdc: number | null;\n sol: number | null;\n loading: boolean;\n error: string | null;\n}\n\n/**\n * Initial onboarding context with default values\n */\nexport const initialOnboardingContext: OnboardingContext = {\n hasNordAccount: false,\n hasActiveSession: false,\n selectedChain: null,\n selectedChainId: null,\n selectedChainNetwork: null,\n amount: '',\n transactionId: null,\n error: null,\n depositError: undefined,\n isDepositOnlyFlow: false,\n lastDeposit: 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 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/features/onboarding-flow/types.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AAEH;;GAEG;AACH,IAAY,cASX;AATD,WAAY,cAAc;IACxB,yDAAuC,CAAA;IACvC,qDAAmC,CAAA;IACnC,+CAA6B,CAAA;IAC7B,uDAAqC,CAAA;IACrC,qDAAmC,CAAA;IACnC,+CAA6B,CAAA;IAC7B,iDAA+B,CAAA;IAC/B,iCAAe,CAAA;AACjB,CAAC,EATW,cAAc,8BAAd,cAAc,QASzB;AAuCD;;GAEG;AACU,QAAA,wBAAwB,GAAsB;IACzD,cAAc,EAAE,KAAK;IACrB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,oBAAoB,EAAE,IAAI;IAC1B,MAAM,EAAE,EAAE;IACV,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,SAAS;IACvB,iBAAiB,EAAE,KAAK;IACxB,WAAW,EAAE,IAAI;CAClB,CAAC","sourcesContent":["import React from 'react';\n\n/**\n * Shared types for the onboarding flow state machine\n */\n\n/**\n * Enum representing all possible states in the onboarding flow\n */\nexport enum OnboardingStep {\n CONNECTING_WALLET = 'CONNECTING_WALLET',\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 onboarding context, containing all data necessary\n * for the onboarding flow\n */\nexport interface StoredDepositRecord {\n transactionId: string;\n amount: string;\n tokenSymbol: string;\n chainId: string;\n chainName: string;\n chainNetwork: string | null;\n timestamp: number;\n}\n\nexport interface OnboardingContext {\n hasNordAccount: boolean;\n hasActiveSession: boolean;\n selectedChain: string | null;\n selectedChainId: string | null;\n selectedChainNetwork: string | null;\n amount: string;\n transactionId: string | null;\n error: Error | null;\n depositError?: string;\n isDepositOnlyFlow: boolean;\n lastDeposit: StoredDepositRecord | null;\n}\n\nexport interface WalletBalanceState {\n usdc: number | null;\n sol: number | null;\n loading: boolean;\n error: string | null;\n}\n\n/**\n * Initial onboarding context with default values\n */\nexport const initialOnboardingContext: OnboardingContext = {\n hasNordAccount: false,\n hasActiveSession: false,\n selectedChain: null,\n selectedChainId: null,\n selectedChainNetwork: null,\n amount: '',\n transactionId: null,\n error: null,\n depositError: undefined,\n isDepositOnlyFlow: false,\n lastDeposit: 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 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,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.saveLastDepositRecord = saveLastDepositRecord;
4
+ exports.readLastDepositRecord = readLastDepositRecord;
5
+ exports.clearLastDepositRecord = clearLastDepositRecord;
1
6
  var LAST_DEPOSIT_KEY_PREFIX = 'n1_last_deposit_';
2
7
  var getStorage = function () {
3
8
  return typeof window === 'undefined' ? null : window.localStorage;
@@ -5,7 +10,7 @@ var getStorage = function () {
5
10
  var getKey = function (address) {
6
11
  return "".concat(LAST_DEPOSIT_KEY_PREFIX).concat(address.toLowerCase());
7
12
  };
8
- export function saveLastDepositRecord(address, record) {
13
+ function saveLastDepositRecord(address, record) {
9
14
  if (!address || !record || !record.transactionId) {
10
15
  return;
11
16
  }
@@ -15,7 +20,7 @@ export function saveLastDepositRecord(address, record) {
15
20
  }
16
21
  storage.setItem(getKey(address), JSON.stringify(record));
17
22
  }
18
- export function readLastDepositRecord(address) {
23
+ function readLastDepositRecord(address) {
19
24
  if (!address) {
20
25
  return null;
21
26
  }
@@ -35,7 +40,7 @@ export function readLastDepositRecord(address) {
35
40
  return null;
36
41
  }
37
42
  }
38
- export function clearLastDepositRecord(address) {
43
+ function clearLastDepositRecord(address) {
39
44
  if (!address) {
40
45
  return;
41
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"depositStorage.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/depositStorage.ts"],"names":[],"mappings":"AAEA,IAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAEnD,IAAM,UAAU,GAAG;IACjB,OAAA,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY;AAA1D,CAA0D,CAAC;AAE7D,IAAM,MAAM,GAAG,UAAC,OAAe;IAC7B,OAAA,UAAG,uBAAuB,SAAG,OAAO,CAAC,WAAW,EAAE,CAAE;AAApD,CAAoD,CAAC;AAEvD,MAAM,UAAU,qBAAqB,CACnC,OAAkC,EAClC,MAA2B;IAE3B,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QACjD,OAAO;IACT,CAAC;IAED,IAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAkC;IAElC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,IAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC;IAChD,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAkC;IACvE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACtC,CAAC","sourcesContent":["import { StoredDepositRecord } from '../types';\n\nconst LAST_DEPOSIT_KEY_PREFIX = 'n1_last_deposit_';\n\nconst getStorage = () =>\n typeof window === 'undefined' ? null : window.localStorage;\n\nconst getKey = (address: string) =>\n `${LAST_DEPOSIT_KEY_PREFIX}${address.toLowerCase()}`;\n\nexport function saveLastDepositRecord(\n address: string | null | undefined,\n record: StoredDepositRecord\n) {\n if (!address || !record || !record.transactionId) {\n return;\n }\n\n const storage = getStorage();\n if (!storage) {\n return;\n }\n\n storage.setItem(getKey(address), JSON.stringify(record));\n}\n\nexport function readLastDepositRecord(\n address: string | null | undefined\n): StoredDepositRecord | null {\n if (!address) {\n return null;\n }\n\n const storage = getStorage();\n if (!storage) {\n return null;\n }\n\n try {\n const raw = storage.getItem(getKey(address));\n if (!raw) {\n return null;\n }\n return JSON.parse(raw) as StoredDepositRecord;\n } catch {\n storage.removeItem(getKey(address));\n return null;\n }\n}\n\nexport function clearLastDepositRecord(address: string | null | undefined) {\n if (!address) {\n return;\n }\n\n const storage = getStorage();\n if (!storage) {\n return;\n }\n\n storage.removeItem(getKey(address));\n}\n"]}
1
+ {"version":3,"file":"depositStorage.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/depositStorage.ts"],"names":[],"mappings":";;AAUA,sDAcC;AAED,sDAsBC;AAED,wDAWC;AA3DD,IAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAEnD,IAAM,UAAU,GAAG;IACjB,OAAA,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY;AAA1D,CAA0D,CAAC;AAE7D,IAAM,MAAM,GAAG,UAAC,OAAe;IAC7B,OAAA,UAAG,uBAAuB,SAAG,OAAO,CAAC,WAAW,EAAE,CAAE;AAApD,CAAoD,CAAC;AAEvD,SAAgB,qBAAqB,CACnC,OAAkC,EAClC,MAA2B;IAE3B,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QACjD,OAAO;IACT,CAAC;IAED,IAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,qBAAqB,CACnC,OAAkC;IAElC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,IAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC;IAChD,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,sBAAsB,CAAC,OAAkC;IACvE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACtC,CAAC","sourcesContent":["import { StoredDepositRecord } from '../types';\n\nconst LAST_DEPOSIT_KEY_PREFIX = 'n1_last_deposit_';\n\nconst getStorage = () =>\n typeof window === 'undefined' ? null : window.localStorage;\n\nconst getKey = (address: string) =>\n `${LAST_DEPOSIT_KEY_PREFIX}${address.toLowerCase()}`;\n\nexport function saveLastDepositRecord(\n address: string | null | undefined,\n record: StoredDepositRecord\n) {\n if (!address || !record || !record.transactionId) {\n return;\n }\n\n const storage = getStorage();\n if (!storage) {\n return;\n }\n\n storage.setItem(getKey(address), JSON.stringify(record));\n}\n\nexport function readLastDepositRecord(\n address: string | null | undefined\n): StoredDepositRecord | null {\n if (!address) {\n return null;\n }\n\n const storage = getStorage();\n if (!storage) {\n return null;\n }\n\n try {\n const raw = storage.getItem(getKey(address));\n if (!raw) {\n return null;\n }\n return JSON.parse(raw) as StoredDepositRecord;\n } catch {\n storage.removeItem(getKey(address));\n return null;\n }\n}\n\nexport function clearLastDepositRecord(address: string | null | undefined) {\n if (!address) {\n return;\n }\n\n const storage = getStorage();\n if (!storage) {\n return;\n }\n\n storage.removeItem(getKey(address));\n}\n"]}
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -34,12 +35,14 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
35
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
36
  }
36
37
  };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.getTokenIconUrl = exports.getChainIconUrl = exports.isImageValid = void 0;
37
40
  /**
38
41
  * Checks if an image URL is valid and accessible
39
42
  * @param url The image URL to check
40
43
  * @returns A promise that resolves to true if the image is valid, false otherwise
41
44
  */
42
- export var isImageValid = function (url) { return __awaiter(void 0, void 0, void 0, function () {
45
+ var isImageValid = function (url) { return __awaiter(void 0, void 0, void 0, function () {
43
46
  return __generator(this, function (_a) {
44
47
  if (!url)
45
48
  return [2 /*return*/, false];
@@ -51,13 +54,14 @@ export var isImageValid = function (url) { return __awaiter(void 0, void 0, void
51
54
  })];
52
55
  });
53
56
  }); };
57
+ exports.isImageValid = isImageValid;
54
58
  /**
55
59
  * Gets chain icon URL with fallback
56
60
  * @param chainId The chain ID
57
61
  * @param fallbackUrl Optional fallback URL
58
62
  * @returns The chain icon URL or fallback
59
63
  */
60
- export var getChainIconUrl = function (chainId, fallbackUrl) {
64
+ var getChainIconUrl = function (chainId, fallbackUrl) {
61
65
  try {
62
66
  // Example implementation - replace with actual logic
63
67
  var baseUrl = 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains';
@@ -79,6 +83,7 @@ export var getChainIconUrl = function (chainId, fallbackUrl) {
79
83
  return fallbackUrl || '';
80
84
  }
81
85
  };
86
+ exports.getChainIconUrl = getChainIconUrl;
82
87
  /**
83
88
  * Gets token icon URL with fallback
84
89
  * @param tokenSymbol The token symbol (e.g., 'ETH', 'USDC')
@@ -86,7 +91,7 @@ export var getChainIconUrl = function (chainId, fallbackUrl) {
86
91
  * @param fallbackUrl Optional fallback URL
87
92
  * @returns The token icon URL or fallback
88
93
  */
89
- export var getTokenIconUrl = function (tokenSymbol, fallbackUrl) {
94
+ var getTokenIconUrl = function (tokenSymbol, fallbackUrl) {
90
95
  try {
91
96
  // Example implementation - replace with actual logic
92
97
  var baseUrl = 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets';
@@ -107,4 +112,5 @@ export var getTokenIconUrl = function (tokenSymbol, fallbackUrl) {
107
112
  return fallbackUrl || '';
108
113
  }
109
114
  };
115
+ exports.getTokenIconUrl = getTokenIconUrl;
110
116
  //# sourceMappingURL=imageUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"imageUtils.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/imageUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,MAAM,CAAC,IAAM,YAAY,GAAG,UAAO,GAAW;;QAC5C,IAAI,CAAC,GAAG;YAAE,sBAAO,KAAK,EAAC;QAEvB,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO;gBACzB,IAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,GAAG,CAAC,MAAM,GAAG,cAAM,OAAA,OAAO,CAAC,IAAI,CAAC,EAAb,CAAa,CAAC;gBACjC,GAAG,CAAC,OAAO,GAAG,cAAM,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc,CAAC;gBACnC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;YAChB,CAAC,CAAC,EAAC;;KACJ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,UAC7B,OAAwB,EACxB,WAAoB;IAEpB,IAAI,CAAC;QACH,qDAAqD;QACrD,IAAM,OAAO,GACX,yEAAyE,CAAC;QAE5E,6CAA6C;QAC7C,IAAM,UAAU,GAA2B;YACzC,GAAG,EAAE,wBAAwB;YAC7B,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,uBAAuB;YAC9B,4BAA4B;SAC7B,CAAC;QAEF,IAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,UAAG,OAAO,cAAI,UAAU,CAAC,UAAU,CAAC,CAAE,CAAC;QAChD,CAAC;QAED,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,UAC7B,WAAmB,EACnB,WAAoB;IAEpB,IAAI,CAAC;QACH,qDAAqD;QACrD,IAAM,OAAO,GACX,yFAAyF,CAAC;QAE5F,8DAA8D;QAC9D,IAAM,cAAc,GAA2B;YAC7C,IAAI,EAAE,4CAA4C;YAClD,IAAI,EAAE,4CAA4C;YAClD,GAAG,EAAE,4CAA4C;YACjD,4BAA4B;SAC7B,CAAC;QAEF,IAAI,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC9C,OAAO,UAAG,OAAO,cAAI,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,cAAW,CAAC;QAC5E,CAAC;QAED,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC","sourcesContent":["/**\n * Checks if an image URL is valid and accessible\n * @param url The image URL to check\n * @returns A promise that resolves to true if the image is valid, false otherwise\n */\nexport const isImageValid = async (url: string): Promise<boolean> => {\n if (!url) return false;\n\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => resolve(true);\n img.onerror = () => resolve(false);\n img.src = url;\n });\n};\n\n/**\n * Gets chain icon URL with fallback\n * @param chainId The chain ID\n * @param fallbackUrl Optional fallback URL\n * @returns The chain icon URL or fallback\n */\nexport const getChainIconUrl = (\n chainId: string | number,\n fallbackUrl?: string\n): string => {\n try {\n // Example implementation - replace with actual logic\n const baseUrl =\n 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains';\n\n // Map of chain IDs to their respective paths\n const chainPaths: Record<string, string> = {\n '1': 'ethereum/info/logo.png',\n '56': 'smartchain/info/logo.png',\n '137': 'polygon/info/logo.png',\n // Add more chains as needed\n };\n\n const chainIdStr = chainId.toString();\n if (chainPaths[chainIdStr]) {\n return `${baseUrl}/${chainPaths[chainIdStr]}`;\n }\n\n return fallbackUrl || '';\n } catch (error) {\n console.error('Error getting chain icon URL:', error);\n return fallbackUrl || '';\n }\n};\n\n/**\n * Gets token icon URL with fallback\n * @param tokenSymbol The token symbol (e.g., 'ETH', 'USDC')\n * @param chainId Optional chain ID for chain-specific tokens\n * @param fallbackUrl Optional fallback URL\n * @returns The token icon URL or fallback\n */\nexport const getTokenIconUrl = (\n tokenSymbol: string,\n fallbackUrl?: string\n): string => {\n try {\n // Example implementation - replace with actual logic\n const baseUrl =\n 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets';\n\n // Map of token symbols to their respective contract addresses\n const tokenAddresses: Record<string, string> = {\n USDC: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n USDT: '0xdAC17F958D2ee523a2206206994597C13D831ec7',\n DAI: '0x6B175474E89094C44Da98b954EedeAC495271d0F',\n // Add more tokens as needed\n };\n\n if (tokenAddresses[tokenSymbol.toUpperCase()]) {\n return `${baseUrl}/${tokenAddresses[tokenSymbol.toUpperCase()]}/logo.png`;\n }\n\n return fallbackUrl || '';\n } catch (error) {\n console.error('Error getting token icon URL:', error);\n return fallbackUrl || '';\n }\n};\n"]}
1
+ {"version":3,"file":"imageUtils.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/imageUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACI,IAAM,YAAY,GAAG,UAAO,GAAW;;QAC5C,IAAI,CAAC,GAAG;YAAE,sBAAO,KAAK,EAAC;QAEvB,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO;gBACzB,IAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,GAAG,CAAC,MAAM,GAAG,cAAM,OAAA,OAAO,CAAC,IAAI,CAAC,EAAb,CAAa,CAAC;gBACjC,GAAG,CAAC,OAAO,GAAG,cAAM,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc,CAAC;gBACnC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;YAChB,CAAC,CAAC,EAAC;;KACJ,CAAC;AATW,QAAA,YAAY,gBASvB;AAEF;;;;;GAKG;AACI,IAAM,eAAe,GAAG,UAC7B,OAAwB,EACxB,WAAoB;IAEpB,IAAI,CAAC;QACH,qDAAqD;QACrD,IAAM,OAAO,GACX,yEAAyE,CAAC;QAE5E,6CAA6C;QAC7C,IAAM,UAAU,GAA2B;YACzC,GAAG,EAAE,wBAAwB;YAC7B,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,uBAAuB;YAC9B,4BAA4B;SAC7B,CAAC;QAEF,IAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,UAAG,OAAO,cAAI,UAAU,CAAC,UAAU,CAAC,CAAE,CAAC;QAChD,CAAC;QAED,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AA3BW,QAAA,eAAe,mBA2B1B;AAEF;;;;;;GAMG;AACI,IAAM,eAAe,GAAG,UAC7B,WAAmB,EACnB,WAAoB;IAEpB,IAAI,CAAC;QACH,qDAAqD;QACrD,IAAM,OAAO,GACX,yFAAyF,CAAC;QAE5F,8DAA8D;QAC9D,IAAM,cAAc,GAA2B;YAC7C,IAAI,EAAE,4CAA4C;YAClD,IAAI,EAAE,4CAA4C;YAClD,GAAG,EAAE,4CAA4C;YACjD,4BAA4B;SAC7B,CAAC;QAEF,IAAI,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC9C,OAAO,UAAG,OAAO,cAAI,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,cAAW,CAAC;QAC5E,CAAC;QAED,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,WAAW,IAAI,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AA1BW,QAAA,eAAe,mBA0B1B","sourcesContent":["/**\n * Checks if an image URL is valid and accessible\n * @param url The image URL to check\n * @returns A promise that resolves to true if the image is valid, false otherwise\n */\nexport const isImageValid = async (url: string): Promise<boolean> => {\n if (!url) return false;\n\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => resolve(true);\n img.onerror = () => resolve(false);\n img.src = url;\n });\n};\n\n/**\n * Gets chain icon URL with fallback\n * @param chainId The chain ID\n * @param fallbackUrl Optional fallback URL\n * @returns The chain icon URL or fallback\n */\nexport const getChainIconUrl = (\n chainId: string | number,\n fallbackUrl?: string\n): string => {\n try {\n // Example implementation - replace with actual logic\n const baseUrl =\n 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains';\n\n // Map of chain IDs to their respective paths\n const chainPaths: Record<string, string> = {\n '1': 'ethereum/info/logo.png',\n '56': 'smartchain/info/logo.png',\n '137': 'polygon/info/logo.png',\n // Add more chains as needed\n };\n\n const chainIdStr = chainId.toString();\n if (chainPaths[chainIdStr]) {\n return `${baseUrl}/${chainPaths[chainIdStr]}`;\n }\n\n return fallbackUrl || '';\n } catch (error) {\n console.error('Error getting chain icon URL:', error);\n return fallbackUrl || '';\n }\n};\n\n/**\n * Gets token icon URL with fallback\n * @param tokenSymbol The token symbol (e.g., 'ETH', 'USDC')\n * @param chainId Optional chain ID for chain-specific tokens\n * @param fallbackUrl Optional fallback URL\n * @returns The token icon URL or fallback\n */\nexport const getTokenIconUrl = (\n tokenSymbol: string,\n fallbackUrl?: string\n): string => {\n try {\n // Example implementation - replace with actual logic\n const baseUrl =\n 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets';\n\n // Map of token symbols to their respective contract addresses\n const tokenAddresses: Record<string, string> = {\n USDC: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n USDT: '0xdAC17F958D2ee523a2206206994597C13D831ec7',\n DAI: '0x6B175474E89094C44Da98b954EedeAC495271d0F',\n // Add more tokens as needed\n };\n\n if (tokenAddresses[tokenSymbol.toUpperCase()]) {\n return `${baseUrl}/${tokenAddresses[tokenSymbol.toUpperCase()]}/logo.png`;\n }\n\n return fallbackUrl || '';\n } catch (error) {\n console.error('Error getting token icon URL:', error);\n return fallbackUrl || '';\n }\n};\n"]}
@@ -1,3 +1,37 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
1
35
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
36
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
37
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -34,12 +68,14 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
68
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
69
  }
36
70
  };
71
+ Object.defineProperty(exports, "__esModule", { value: true });
72
+ exports.dynamicImportNordUser = dynamicImportNordUser;
37
73
  var nordUserCtorPromise;
38
- export function dynamicImportNordUser() {
74
+ function dynamicImportNordUser() {
39
75
  return __awaiter(this, void 0, void 0, function () {
40
76
  return __generator(this, function (_a) {
41
77
  if (!nordUserCtorPromise) {
42
- nordUserCtorPromise = import('@n1xyz/nord-ts').then(function (module) { return module.NordUser; });
78
+ nordUserCtorPromise = Promise.resolve().then(function () { return __importStar(require('@n1xyz/nord-ts')); }).then(function (module) { return module.NordUser; });
43
79
  }
44
80
  return [2 /*return*/, nordUserCtorPromise];
45
81
  });
@@ -1 +1 @@
1
- {"version":3,"file":"nordUser.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/nordUser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAI,mBAA6C,CAAC;AAElD,MAAM,UAAgB,qBAAqB;;;YACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,QAAQ,EAAf,CAAe,CAAC,CAAC;YACrF,CAAC;YACD,sBAAO,mBAAmB,EAAC;;;CAC9B","sourcesContent":["\n\nlet nordUserCtorPromise: Promise<any> | undefined;\n\nexport async function dynamicImportNordUser() {\n if (!nordUserCtorPromise) {\n nordUserCtorPromise = import('@n1xyz/nord-ts').then((module) => module.NordUser);\n }\n return nordUserCtorPromise;\n}\n\n "]}
1
+ {"version":3,"file":"nordUser.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/nordUser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,sDAKC;AAPD,IAAI,mBAA6C,CAAC;AAElD,SAAsB,qBAAqB;;;YACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,mBAAmB,GAAG,iEAAO,gBAAgB,OAAE,IAAI,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,QAAQ,EAAf,CAAe,CAAC,CAAC;YACrF,CAAC;YACD,sBAAO,mBAAmB,EAAC;;;CAC9B","sourcesContent":["\n\nlet nordUserCtorPromise: Promise<any> | undefined;\n\nexport async function dynamicImportNordUser() {\n if (!nordUserCtorPromise) {\n nordUserCtorPromise = import('@n1xyz/nord-ts').then((module) => module.NordUser);\n }\n return nordUserCtorPromise;\n}\n\n "]}
@@ -1,10 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatNordTransaction = formatNordTransaction;
4
+ exports.getTokenBalance = getTokenBalance;
5
+ exports.isNordConfigured = isNordConfigured;
6
+ exports.formatAmount = formatAmount;
7
+ exports.shortenAddress = shortenAddress;
1
8
  /**
2
9
  * Format a Nord transaction for display
3
10
  *
4
11
  * @param tx Transaction object
5
12
  * @returns Formatted transaction ID
6
13
  */
7
- export function formatNordTransaction(tx) {
14
+ function formatNordTransaction(tx) {
8
15
  return tx.id
9
16
  ? tx.id.substring(0, 8) + '...' + tx.id.substring(tx.id.length - 8)
10
17
  : 'Unknown';
@@ -16,7 +23,7 @@ export function formatNordTransaction(tx) {
16
23
  * @param tokenSymbol Token symbol
17
24
  * @returns Token balance
18
25
  */
19
- export function getTokenBalance(nordUser, tokenSymbol) {
26
+ function getTokenBalance(nordUser, tokenSymbol) {
20
27
  if (!nordUser || !nordUser.balances || !nordUser.balances[tokenSymbol]) {
21
28
  return 0;
22
29
  }
@@ -29,7 +36,7 @@ export function getTokenBalance(nordUser, tokenSymbol) {
29
36
  * @param nord Nord instance
30
37
  * @returns Whether Nord is properly configured
31
38
  */
32
- export function isNordConfigured(nord) {
39
+ function isNordConfigured(nord) {
33
40
  return !!nord && !!nord.webServerUrl && (!!nord.solanaConnection || !!nord.protonClient);
34
41
  }
35
42
  /**
@@ -39,7 +46,7 @@ export function isNordConfigured(nord) {
39
46
  * @param decimals Number of decimal places
40
47
  * @returns Formatted amount
41
48
  */
42
- export function formatAmount(amount, decimals) {
49
+ function formatAmount(amount, decimals) {
43
50
  if (decimals === void 0) { decimals = 2; }
44
51
  var numAmount = typeof amount === 'string' ? parseFloat(amount) : amount;
45
52
  return numAmount.toFixed(decimals);
@@ -52,7 +59,7 @@ export function formatAmount(amount, decimals) {
52
59
  * @param endChars Number of characters to show at the end
53
60
  * @returns Shortened address
54
61
  */
55
- export function shortenAddress(address, startChars, endChars) {
62
+ function shortenAddress(address, startChars, endChars) {
56
63
  if (startChars === void 0) { startChars = 6; }
57
64
  if (endChars === void 0) { endChars = 4; }
58
65
  if (!address)
@@ -1 +1 @@
1
- {"version":3,"file":"nordUtils.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/nordUtils.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAO;IAC3C,OAAO,EAAE,CAAC,EAAE;QACV,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACnE,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAyB,EACzB,WAAmB;IAEnB,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrD,OAAO,aAAa,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,OAAO,IAAK,OAAA,KAAK,GAAG,OAAO,CAAC,OAAO,EAAvB,CAAuB,EAAE,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAS;IACxC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAuB,EACvB,QAAoB;IAApB,yBAAA,EAAA,YAAoB;IAEpB,IAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3E,OAAO,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,UAAsB,EACtB,QAAoB;IADpB,2BAAA,EAAA,cAAsB;IACtB,yBAAA,EAAA,YAAoB;IAEpB,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,GAAG,QAAQ;QAAE,OAAO,OAAO,CAAC;IAE5D,OAAO,UAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAE,CAAC;AACjG,CAAC","sourcesContent":["import type { NordUser } from '@n1xyz/nord-ts';\n\n/**\n * Format a Nord transaction for display\n *\n * @param tx Transaction object\n * @returns Formatted transaction ID\n */\nexport function formatNordTransaction(tx: any): string {\n return tx.id\n ? tx.id.substring(0, 8) + '...' + tx.id.substring(tx.id.length - 8)\n : 'Unknown';\n}\n\n/**\n * Get token balance for a specific token\n *\n * @param nordUser NordUser instance\n * @param tokenSymbol Token symbol\n * @returns Token balance\n */\nexport function getTokenBalance(\n nordUser: NordUser | null,\n tokenSymbol: string\n): number {\n if (!nordUser || !nordUser.balances || !nordUser.balances[tokenSymbol]) {\n return 0;\n }\n\n const tokenBalances = nordUser.balances[tokenSymbol];\n return tokenBalances.reduce((total, balance) => total + balance.balance, 0);\n}\n\n/**\n * Check if Nord is properly configured\n *\n * @param nord Nord instance\n * @returns Whether Nord is properly configured\n */\nexport function isNordConfigured(nord: any): boolean {\n return !!nord && !!nord.webServerUrl && (!!nord.solanaConnection || !!nord.protonClient);\n}\n\n/**\n * Format an amount with the appropriate number of decimal places\n *\n * @param amount Amount to format\n * @param decimals Number of decimal places\n * @returns Formatted amount\n */\nexport function formatAmount(\n amount: number | string,\n decimals: number = 2\n): string {\n const numAmount = typeof amount === 'string' ? parseFloat(amount) : amount;\n return numAmount.toFixed(decimals);\n}\n\n/**\n * Shorten an address for display\n *\n * @param address Address to shorten\n * @param startChars Number of characters to show at the start\n * @param endChars Number of characters to show at the end\n * @returns Shortened address\n */\nexport function shortenAddress(\n address: string,\n startChars: number = 6,\n endChars: number = 4\n): string {\n if (!address) return '';\n if (address.length <= startChars + endChars) return address;\n\n return `${address.substring(0, startChars)}...${address.substring(address.length - endChars)}`;\n}\n"]}
1
+ {"version":3,"file":"nordUtils.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/nordUtils.ts"],"names":[],"mappings":";;AAQA,sDAIC;AASD,0CAUC;AAQD,4CAEC;AASD,oCAMC;AAUD,wCASC;AAzED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,EAAO;IAC3C,OAAO,EAAE,CAAC,EAAE;QACV,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACnE,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,eAAe,CAC7B,QAAyB,EACzB,WAAmB;IAEnB,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrD,OAAO,aAAa,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,OAAO,IAAK,OAAA,KAAK,GAAG,OAAO,CAAC,OAAO,EAAvB,CAAuB,EAAE,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,IAAS;IACxC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAC1B,MAAuB,EACvB,QAAoB;IAApB,yBAAA,EAAA,YAAoB;IAEpB,IAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3E,OAAO,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,cAAc,CAC5B,OAAe,EACf,UAAsB,EACtB,QAAoB;IADpB,2BAAA,EAAA,cAAsB;IACtB,yBAAA,EAAA,YAAoB;IAEpB,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,GAAG,QAAQ;QAAE,OAAO,OAAO,CAAC;IAE5D,OAAO,UAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAE,CAAC;AACjG,CAAC","sourcesContent":["import type { NordUser } from '@n1xyz/nord-ts';\n\n/**\n * Format a Nord transaction for display\n *\n * @param tx Transaction object\n * @returns Formatted transaction ID\n */\nexport function formatNordTransaction(tx: any): string {\n return tx.id\n ? tx.id.substring(0, 8) + '...' + tx.id.substring(tx.id.length - 8)\n : 'Unknown';\n}\n\n/**\n * Get token balance for a specific token\n *\n * @param nordUser NordUser instance\n * @param tokenSymbol Token symbol\n * @returns Token balance\n */\nexport function getTokenBalance(\n nordUser: NordUser | null,\n tokenSymbol: string\n): number {\n if (!nordUser || !nordUser.balances || !nordUser.balances[tokenSymbol]) {\n return 0;\n }\n\n const tokenBalances = nordUser.balances[tokenSymbol];\n return tokenBalances.reduce((total, balance) => total + balance.balance, 0);\n}\n\n/**\n * Check if Nord is properly configured\n *\n * @param nord Nord instance\n * @returns Whether Nord is properly configured\n */\nexport function isNordConfigured(nord: any): boolean {\n return !!nord && !!nord.webServerUrl && (!!nord.solanaConnection || !!nord.protonClient);\n}\n\n/**\n * Format an amount with the appropriate number of decimal places\n *\n * @param amount Amount to format\n * @param decimals Number of decimal places\n * @returns Formatted amount\n */\nexport function formatAmount(\n amount: number | string,\n decimals: number = 2\n): string {\n const numAmount = typeof amount === 'string' ? parseFloat(amount) : amount;\n return numAmount.toFixed(decimals);\n}\n\n/**\n * Shorten an address for display\n *\n * @param address Address to shorten\n * @param startChars Number of characters to show at the start\n * @param endChars Number of characters to show at the end\n * @returns Shortened address\n */\nexport function shortenAddress(\n address: string,\n startChars: number = 6,\n endChars: number = 4\n): string {\n if (!address) return '';\n if (address.length <= startChars + endChars) return address;\n\n return `${address.substring(0, startChars)}...${address.substring(address.length - endChars)}`;\n}\n"]}
@@ -1,6 +1,9 @@
1
- import { N1SessionMode } from '../../../types/wallet';
2
- import { logger } from '../../../utils/logger';
3
- import { base64ToUint8Array } from './utils';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSessionKeys = getSessionKeys;
4
+ var wallet_1 = require("../../../types/wallet");
5
+ var logger_1 = require("../../../utils/logger");
6
+ var utils_1 = require("./utils");
4
7
  /**
5
8
  * Default secure storage adapter (currently wraps localStorage but warns about security)
6
9
  * TODO: Implement a more secure storage mechanism (e.g. encrypted storage or in-memory only with regular re-auth)
@@ -11,7 +14,7 @@ var defaultStorage = {
11
14
  return localStorage.getItem(key);
12
15
  }
13
16
  catch (e) {
14
- logger.error('Failed to access storage', e);
17
+ logger_1.logger.error('Failed to access storage', e);
15
18
  return null;
16
19
  }
17
20
  },
@@ -20,7 +23,7 @@ var defaultStorage = {
20
23
  localStorage.setItem(key, value);
21
24
  }
22
25
  catch (e) {
23
- logger.error('Failed to write to storage', e);
26
+ logger_1.logger.error('Failed to write to storage', e);
24
27
  }
25
28
  },
26
29
  removeItem: function (key) {
@@ -28,7 +31,7 @@ var defaultStorage = {
28
31
  localStorage.removeItem(key);
29
32
  }
30
33
  catch (e) {
31
- logger.error('Failed to remove from storage', e);
34
+ logger_1.logger.error('Failed to remove from storage', e);
32
35
  }
33
36
  }
34
37
  };
@@ -37,7 +40,7 @@ var defaultStorage = {
37
40
  * @param walletPublicKey The wallet public key to retrieve session keys for
38
41
  * @returns The session key data or null if not found
39
42
  */
40
- export function getSessionKeys(walletPublicKey) {
43
+ function getSessionKeys(walletPublicKey) {
41
44
  var storageKey = "n1_sessionKey_".concat(walletPublicKey);
42
45
  var data = defaultStorage.getItem(storageKey);
43
46
  if (!data) {
@@ -46,23 +49,23 @@ export function getSessionKeys(walletPublicKey) {
46
49
  try {
47
50
  var parsedData = JSON.parse(data);
48
51
  if (parsedData.ed25519PrivateKey) {
49
- parsedData.ed25519PrivateKey = base64ToUint8Array(parsedData.ed25519PrivateKey);
52
+ parsedData.ed25519PrivateKey = (0, utils_1.base64ToUint8Array)(parsedData.ed25519PrivateKey);
50
53
  }
51
54
  // Convert sessionMode string to enum value
52
55
  var storedSessionMode = parsedData.sessionMode;
53
- if (storedSessionMode === N1SessionMode.Nord ||
54
- storedSessionMode === N1SessionMode.Nord.toString() ||
56
+ if (storedSessionMode === wallet_1.N1SessionMode.Nord ||
57
+ storedSessionMode === wallet_1.N1SessionMode.Nord.toString() ||
55
58
  storedSessionMode === 'Nord') {
56
- parsedData.sessionMode = N1SessionMode.Nord;
59
+ parsedData.sessionMode = wallet_1.N1SessionMode.Nord;
57
60
  }
58
61
  else {
59
- logger.warn('Encountered legacy session mode. Defaulting to Nord session mode.');
60
- parsedData.sessionMode = N1SessionMode.Nord;
62
+ logger_1.logger.warn('Encountered legacy session mode. Defaulting to Nord session mode.');
63
+ parsedData.sessionMode = wallet_1.N1SessionMode.Nord;
61
64
  }
62
65
  return parsedData;
63
66
  }
64
67
  catch (error) {
65
- logger.error('Failed to parse session key data', error);
68
+ logger_1.logger.error('Failed to parse session key data', error);
66
69
  return null;
67
70
  }
68
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAsB7C;;;GAGG;AACH,IAAM,cAAc,GAAmB;IACrC,OAAO,EAAE,UAAC,GAAG;QACX,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAC,GAAG,EAAE,KAAK;QAClB,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,UAAU,EAAE,UAAC,GAAG;QACd,IAAI,CAAC;YACH,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,eAAuB;IACpD,IAAM,UAAU,GAAG,wBAAiB,eAAe,CAAE,CAAC;IAEtD,IAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACjC,UAAU,CAAC,iBAAiB,GAAG,kBAAkB,CAC/C,UAAU,CAAC,iBAAiB,CAC7B,CAAC;QACJ,CAAC;QAED,2CAA2C;QAC3C,IAAM,iBAAiB,GAAG,UAAU,CAAC,WAAW,CAAC;QACjD,IACE,iBAAiB,KAAK,aAAa,CAAC,IAAI;YACxC,iBAAiB,KAAK,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnD,iBAAiB,KAAK,MAAM,EAC5B,CAAC;YACD,UAAU,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CACT,mEAAmE,CACpE,CAAC;YACF,UAAU,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC;QAC9C,CAAC;QAED,OAAO,UAA4B,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import { N1SessionMode } from '../../../types/wallet';\nimport { logger } from '../../../utils/logger';\nimport { base64ToUint8Array } from './utils';\n\n/**\n * Interface for session key data stored in local storage\n */\nexport interface SessionKeyData {\n ed25519PrivateKey: Uint8Array;\n walletPublicKey: string;\n chainName: string;\n createdAt: string;\n sessionMode: N1SessionMode;\n}\n\n/**\n * Abstract storage adapter to allow switching implementations\n */\ninterface StorageAdapter {\n getItem(key: string): string | null;\n setItem(key: string, value: string): void;\n removeItem(key: string): void;\n}\n\n/**\n * Default secure storage adapter (currently wraps localStorage but warns about security)\n * TODO: Implement a more secure storage mechanism (e.g. encrypted storage or in-memory only with regular re-auth)\n */\nconst defaultStorage: StorageAdapter = {\n getItem: (key) => {\n try {\n return localStorage.getItem(key);\n } catch (e) {\n logger.error('Failed to access storage', e);\n return null;\n }\n },\n setItem: (key, value) => {\n try {\n localStorage.setItem(key, value);\n } catch (e) {\n logger.error('Failed to write to storage', e);\n }\n },\n removeItem: (key) => {\n try {\n localStorage.removeItem(key);\n } catch (e) {\n logger.error('Failed to remove from storage', e);\n }\n }\n};\n\n/**\n * Retrieve session keys from storage\n * @param walletPublicKey The wallet public key to retrieve session keys for\n * @returns The session key data or null if not found\n */\nexport function getSessionKeys(walletPublicKey: string): SessionKeyData | null {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n const data = defaultStorage.getItem(storageKey);\n if (!data) {\n return null;\n }\n\n try {\n const parsedData = JSON.parse(data);\n if (parsedData.ed25519PrivateKey) {\n parsedData.ed25519PrivateKey = base64ToUint8Array(\n parsedData.ed25519PrivateKey\n );\n }\n\n // Convert sessionMode string to enum value\n const storedSessionMode = parsedData.sessionMode;\n if (\n storedSessionMode === N1SessionMode.Nord ||\n storedSessionMode === N1SessionMode.Nord.toString() ||\n storedSessionMode === 'Nord'\n ) {\n parsedData.sessionMode = N1SessionMode.Nord;\n } else {\n logger.warn(\n 'Encountered legacy session mode. Defaulting to Nord session mode.'\n );\n parsedData.sessionMode = N1SessionMode.Nord;\n }\n\n return parsedData as SessionKeyData;\n } catch (error) {\n logger.error('Failed to parse session key data', error);\n return null;\n }\n}\n"]}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/session.ts"],"names":[],"mappings":";;AA0DA,wCAoCC;AA9FD,gDAAsD;AACtD,gDAA+C;AAC/C,iCAA6C;AAsB7C;;;GAGG;AACH,IAAM,cAAc,GAAmB;IACrC,OAAO,EAAE,UAAC,GAAG;QACX,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,eAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAC,GAAG,EAAE,KAAK;QAClB,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,eAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,UAAU,EAAE,UAAC,GAAG;QACd,IAAI,CAAC;YACH,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,eAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;;;GAIG;AACH,SAAgB,cAAc,CAAC,eAAuB;IACpD,IAAM,UAAU,GAAG,wBAAiB,eAAe,CAAE,CAAC;IAEtD,IAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACjC,UAAU,CAAC,iBAAiB,GAAG,IAAA,0BAAkB,EAC/C,UAAU,CAAC,iBAAiB,CAC7B,CAAC;QACJ,CAAC;QAED,2CAA2C;QAC3C,IAAM,iBAAiB,GAAG,UAAU,CAAC,WAAW,CAAC;QACjD,IACE,iBAAiB,KAAK,sBAAa,CAAC,IAAI;YACxC,iBAAiB,KAAK,sBAAa,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnD,iBAAiB,KAAK,MAAM,EAC5B,CAAC;YACD,UAAU,CAAC,WAAW,GAAG,sBAAa,CAAC,IAAI,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,eAAM,CAAC,IAAI,CACT,mEAAmE,CACpE,CAAC;YACF,UAAU,CAAC,WAAW,GAAG,sBAAa,CAAC,IAAI,CAAC;QAC9C,CAAC;QAED,OAAO,UAA4B,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import { N1SessionMode } from '../../../types/wallet';\nimport { logger } from '../../../utils/logger';\nimport { base64ToUint8Array } from './utils';\n\n/**\n * Interface for session key data stored in local storage\n */\nexport interface SessionKeyData {\n ed25519PrivateKey: Uint8Array;\n walletPublicKey: string;\n chainName: string;\n createdAt: string;\n sessionMode: N1SessionMode;\n}\n\n/**\n * Abstract storage adapter to allow switching implementations\n */\ninterface StorageAdapter {\n getItem(key: string): string | null;\n setItem(key: string, value: string): void;\n removeItem(key: string): void;\n}\n\n/**\n * Default secure storage adapter (currently wraps localStorage but warns about security)\n * TODO: Implement a more secure storage mechanism (e.g. encrypted storage or in-memory only with regular re-auth)\n */\nconst defaultStorage: StorageAdapter = {\n getItem: (key) => {\n try {\n return localStorage.getItem(key);\n } catch (e) {\n logger.error('Failed to access storage', e);\n return null;\n }\n },\n setItem: (key, value) => {\n try {\n localStorage.setItem(key, value);\n } catch (e) {\n logger.error('Failed to write to storage', e);\n }\n },\n removeItem: (key) => {\n try {\n localStorage.removeItem(key);\n } catch (e) {\n logger.error('Failed to remove from storage', e);\n }\n }\n};\n\n/**\n * Retrieve session keys from storage\n * @param walletPublicKey The wallet public key to retrieve session keys for\n * @returns The session key data or null if not found\n */\nexport function getSessionKeys(walletPublicKey: string): SessionKeyData | null {\n const storageKey = `n1_sessionKey_${walletPublicKey}`;\n\n const data = defaultStorage.getItem(storageKey);\n if (!data) {\n return null;\n }\n\n try {\n const parsedData = JSON.parse(data);\n if (parsedData.ed25519PrivateKey) {\n parsedData.ed25519PrivateKey = base64ToUint8Array(\n parsedData.ed25519PrivateKey\n );\n }\n\n // Convert sessionMode string to enum value\n const storedSessionMode = parsedData.sessionMode;\n if (\n storedSessionMode === N1SessionMode.Nord ||\n storedSessionMode === N1SessionMode.Nord.toString() ||\n storedSessionMode === 'Nord'\n ) {\n parsedData.sessionMode = N1SessionMode.Nord;\n } else {\n logger.warn(\n 'Encountered legacy session mode. Defaulting to Nord session mode.'\n );\n parsedData.sessionMode = N1SessionMode.Nord;\n }\n\n return parsedData as SessionKeyData;\n } catch (error) {\n logger.error('Failed to parse session key data', error);\n return null;\n }\n}\n"]}
@@ -1,7 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getExplorerUrl = getExplorerUrl;
1
4
  /**
2
5
  * Get explorer URL for a transaction
3
6
  */
4
- export function getExplorerUrl(transactionId) {
7
+ function getExplorerUrl(transactionId) {
5
8
  var baseUrl = 'https://explorer.solana.com/tx/';
6
9
  return "".concat(baseUrl).concat(transactionId, "?cluster=devnet");
7
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/transaction.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,aAAqB;IAClD,IAAM,OAAO,GAAG,iCAAiC,CAAC;IAClD,OAAO,UAAG,OAAO,SAAG,aAAa,oBAAiB,CAAC;AACrD,CAAC","sourcesContent":["/**\n * Interface for transaction result\n */\nexport interface TransactionResult {\n success: boolean;\n transactionId: string;\n amount: string;\n tokenSymbol: string;\n fromAddress: string;\n toAddress: string;\n networkName: string;\n status: 'Completed' | 'Failed' | 'Pending';\n explorerUrl?: string;\n error?: Error;\n}\n\n/**\n * Get explorer URL for a transaction\n */\nexport function getExplorerUrl(transactionId: string) {\n const baseUrl = 'https://explorer.solana.com/tx/';\n return `${baseUrl}${transactionId}?cluster=devnet`;\n}\n"]}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/utils/transaction.ts"],"names":[],"mappings":";;AAmBA,wCAGC;AAND;;GAEG;AACH,SAAgB,cAAc,CAAC,aAAqB;IAClD,IAAM,OAAO,GAAG,iCAAiC,CAAC;IAClD,OAAO,UAAG,OAAO,SAAG,aAAa,oBAAiB,CAAC;AACrD,CAAC","sourcesContent":["/**\n * Interface for transaction result\n */\nexport interface TransactionResult {\n success: boolean;\n transactionId: string;\n amount: string;\n tokenSymbol: string;\n fromAddress: string;\n toAddress: string;\n networkName: string;\n status: 'Completed' | 'Failed' | 'Pending';\n explorerUrl?: string;\n error?: Error;\n}\n\n/**\n * Get explorer URL for a transaction\n */\nexport function getExplorerUrl(transactionId: string) {\n const baseUrl = 'https://explorer.solana.com/tx/';\n return `${baseUrl}${transactionId}?cluster=devnet`;\n}\n"]}
@@ -1,7 +1,15 @@
1
- import { generateEd25519KeyPair, generateRandomUint8Array as createRandomUint8Array, } from '../../../utils/ed25519';
2
- export var generateSessionKeyPair = generateEd25519KeyPair;
3
- export var generateRandomUint8Array = createRandomUint8Array;
4
- export function arrayBufferToBase64(buffer) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateRandomUint8Array = exports.generateSessionKeyPair = void 0;
4
+ exports.arrayBufferToBase64 = arrayBufferToBase64;
5
+ exports.base64ToUint8Array = base64ToUint8Array;
6
+ exports.storeSessionKeysInLocalStorage = storeSessionKeysInLocalStorage;
7
+ exports.getSessionKeysFromLocalStorage = getSessionKeysFromLocalStorage;
8
+ exports.removeKeysFromLocalStorage = removeKeysFromLocalStorage;
9
+ var ed25519_1 = require("../../../utils/ed25519");
10
+ exports.generateSessionKeyPair = ed25519_1.generateEd25519KeyPair;
11
+ exports.generateRandomUint8Array = ed25519_1.generateRandomUint8Array;
12
+ function arrayBufferToBase64(buffer) {
5
13
  var binary = '';
6
14
  var bytes = new Uint8Array(buffer);
7
15
  for (var i = 0; i < bytes.length; i++) {
@@ -10,7 +18,7 @@ export function arrayBufferToBase64(buffer) {
10
18
  return btoa(binary);
11
19
  }
12
20
  // Convert Base64 string back to Uint8Array
13
- export function base64ToUint8Array(base64String) {
21
+ function base64ToUint8Array(base64String) {
14
22
  var binaryString = atob(base64String);
15
23
  var length = binaryString.length;
16
24
  var bytes = new Uint8Array(length);
@@ -20,7 +28,7 @@ export function base64ToUint8Array(base64String) {
20
28
  return bytes;
21
29
  }
22
30
  // Function to store keys with a custom ID format in local storage, including private key
23
- export function storeSessionKeysInLocalStorage(_a) {
31
+ function storeSessionKeysInLocalStorage(_a) {
24
32
  var privKey = _a.privKey, publicKey = _a.publicKey, walletPublicKey = _a.walletPublicKey, chainName = _a.chainName;
25
33
  var storageKey = "n1_sessionKey_".concat(walletPublicKey);
26
34
  var data = {
@@ -33,7 +41,7 @@ export function storeSessionKeysInLocalStorage(_a) {
33
41
  localStorage.setItem(storageKey, JSON.stringify(data));
34
42
  }
35
43
  // Retrieve data from local storage by wallet key and convert the private and public key back to Uint8Array
36
- export function getSessionKeysFromLocalStorage(walletPublicKey) {
44
+ function getSessionKeysFromLocalStorage(walletPublicKey) {
37
45
  var storageKey = "n1_sessionKey_".concat(walletPublicKey);
38
46
  var data = localStorage.getItem(storageKey);
39
47
  if (data) {
@@ -59,7 +67,7 @@ export function getSessionKeysFromLocalStorage(walletPublicKey) {
59
67
  return null;
60
68
  }
61
69
  // Function to remove data from local storage by wallet key
62
- export function removeKeysFromLocalStorage(walletPublicKey) {
70
+ function removeKeysFromLocalStorage(walletPublicKey) {
63
71
  var storageKey = "n1_sessionKey_".concat(walletPublicKey);
64
72
  localStorage.removeItem(storageKey);
65
73
  }
@@ -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,3 +1,4 @@
1
+ "use strict";
1
2
  var __assign = (this && this.__assign) || function () {
2
3
  __assign = Object.assign || function(t) {
3
4
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -20,37 +21,42 @@ var __rest = (this && this.__rest) || function (s, e) {
20
21
  }
21
22
  return t;
22
23
  };
23
- import { jsx as _jsx } from "react/jsx-runtime";
24
- import React from 'react';
25
- import { ImageWithFallback } from '../components';
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");
26
32
  /**
27
33
  * A Higher-Order Component (HOC) that adds image fallback functionality to a component
28
34
  * @param WrappedComponent The component to wrap
29
35
  * @returns A new component with image fallback functionality
30
36
  */
31
- export function withImageFallback(WrappedComponent) {
37
+ function withImageFallback(WrappedComponent) {
32
38
  // Create a new component that wraps the original component
33
39
  var WithImageFallback = function (props) {
34
40
  // Function to recursively process React elements
35
41
  var processNode = function (node) {
36
- if (!React.isValidElement(node)) {
42
+ if (!react_1.default.isValidElement(node)) {
37
43
  return node;
38
44
  }
39
45
  var element = node;
40
46
  // If it's an img element, replace it with ImageWithFallback
41
47
  if (element.type === 'img') {
42
48
  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"]);
43
- return (_jsx(ImageWithFallback, __assign({ src: src, alt: alt || 'Image', width: width, height: height, className: className }, rest)));
49
+ return ((0, jsx_runtime_1.jsx)(components_1.ImageWithFallback, __assign({ src: src, alt: alt || 'Image', width: width, height: height, className: className }, rest)));
44
50
  }
45
51
  // If it has children, process them recursively
46
52
  if (element.props && element.props.children) {
47
- var children = React.Children.map(element.props.children, processNode);
48
- return React.cloneElement(element, __assign({}, 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);
49
55
  }
50
56
  return element;
51
57
  };
52
58
  // Render the wrapped component and process its output
53
- var renderedComponent = _jsx(WrappedComponent, __assign({}, props));
59
+ var renderedComponent = (0, jsx_runtime_1.jsx)(WrappedComponent, __assign({}, props));
54
60
  return processNode(renderedComponent);
55
61
  };
56
62
  // Set display name for debugging
@@ -1 +1 @@
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"]}
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,3 +1,19 @@
1
- export * from './useN1Wallet';
2
- export * from './useNordUserInitialization';
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);
3
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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\n\n"]}
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"]}