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

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 (139) 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/solana.js +3 -7
  32. package/dist/config/solana.js.map +1 -1
  33. package/dist/config.js +2 -5
  34. package/dist/config.js.map +1 -1
  35. package/dist/context/n1-wallet-context.js +4 -8
  36. package/dist/context/n1-wallet-context.js.map +1 -1
  37. package/dist/errors/types.js +3 -6
  38. package/dist/errors/types.js.map +1 -1
  39. package/dist/features/onboarding-flow/N1WalletModal.js +23 -59
  40. package/dist/features/onboarding-flow/N1WalletModal.js.map +1 -1
  41. package/dist/features/onboarding-flow/OnboardingFlow.js +46 -50
  42. package/dist/features/onboarding-flow/OnboardingFlow.js.map +1 -1
  43. package/dist/features/onboarding-flow/components/ChainButton.js +4 -7
  44. package/dist/features/onboarding-flow/components/ChainButton.js.map +1 -1
  45. package/dist/features/onboarding-flow/components/Header.js +11 -15
  46. package/dist/features/onboarding-flow/components/Header.js.map +1 -1
  47. package/dist/features/onboarding-flow/components/ImageWithFallback.js +6 -10
  48. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -1
  49. package/dist/features/onboarding-flow/components/TransactionTable.js +10 -13
  50. package/dist/features/onboarding-flow/components/TransactionTable.js.map +1 -1
  51. package/dist/features/onboarding-flow/components/WaitingMessage.js +8 -14
  52. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +1 -1
  53. package/dist/features/onboarding-flow/components/index.js +5 -21
  54. package/dist/features/onboarding-flow/components/index.js.map +1 -1
  55. package/dist/features/onboarding-flow/index.js +1 -5
  56. package/dist/features/onboarding-flow/index.js.map +1 -1
  57. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +55 -60
  58. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -1
  59. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +43 -48
  60. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -1
  61. package/dist/features/onboarding-flow/providers/StateProvider.js +7 -11
  62. package/dist/features/onboarding-flow/providers/StateProvider.js.map +1 -1
  63. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +69 -74
  64. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -1
  65. package/dist/features/onboarding-flow/providers/debug.js +18 -21
  66. package/dist/features/onboarding-flow/providers/debug.js.map +1 -1
  67. package/dist/features/onboarding-flow/providers/index.js +5 -16
  68. package/dist/features/onboarding-flow/providers/index.js.map +1 -1
  69. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js +15 -20
  70. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -1
  71. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js +8 -11
  72. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -1
  73. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +34 -38
  74. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +1 -1
  75. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +47 -51
  76. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +1 -1
  77. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +8 -12
  78. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +1 -1
  79. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js +25 -28
  80. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +1 -1
  81. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +10 -13
  82. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +1 -1
  83. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +7 -10
  84. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +1 -1
  85. package/dist/features/onboarding-flow/screens/index.js +7 -23
  86. package/dist/features/onboarding-flow/screens/index.js.map +1 -1
  87. package/dist/features/onboarding-flow/types.js +3 -6
  88. package/dist/features/onboarding-flow/types.js.map +1 -1
  89. package/dist/features/onboarding-flow/utils/depositStorage.js +3 -8
  90. package/dist/features/onboarding-flow/utils/depositStorage.js.map +1 -1
  91. package/dist/features/onboarding-flow/utils/imageUtils.js +3 -9
  92. package/dist/features/onboarding-flow/utils/imageUtils.js.map +1 -1
  93. package/dist/features/onboarding-flow/utils/nordUser.js +2 -38
  94. package/dist/features/onboarding-flow/utils/nordUser.js.map +1 -1
  95. package/dist/features/onboarding-flow/utils/nordUtils.js +5 -12
  96. package/dist/features/onboarding-flow/utils/nordUtils.js.map +1 -1
  97. package/dist/features/onboarding-flow/utils/session.js +14 -17
  98. package/dist/features/onboarding-flow/utils/session.js.map +1 -1
  99. package/dist/features/onboarding-flow/utils/transaction.js +1 -4
  100. package/dist/features/onboarding-flow/utils/transaction.js.map +1 -1
  101. package/dist/features/onboarding-flow/utils/utils.js +8 -16
  102. package/dist/features/onboarding-flow/utils/utils.js.map +1 -1
  103. package/dist/features/onboarding-flow/utils/withImageFallback.js +9 -15
  104. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -1
  105. package/dist/hooks/index.js +2 -18
  106. package/dist/hooks/index.js.map +1 -1
  107. package/dist/hooks/useN1Wallet.js +6 -10
  108. package/dist/hooks/useN1Wallet.js.map +1 -1
  109. package/dist/hooks/useNordUserInitialization.js +31 -34
  110. package/dist/hooks/useNordUserInitialization.js.map +1 -1
  111. package/dist/index.js +7 -21
  112. package/dist/index.js.map +1 -1
  113. package/dist/main.css +2 -0
  114. package/dist/polyfills/windowEthereumGuard.js +1 -2
  115. package/dist/polyfills/windowEthereumGuard.js.map +1 -1
  116. package/dist/providers/LazyWalletProvider.js +38 -74
  117. package/dist/providers/LazyWalletProvider.js.map +1 -1
  118. package/dist/providers/N1WalletProvider.js +70 -109
  119. package/dist/providers/N1WalletProvider.js.map +1 -1
  120. package/dist/providers/ShadowRootWrapper.js +4 -10
  121. package/dist/providers/ShadowRootWrapper.js.map +1 -1
  122. package/dist/providers/WalletErrorBoundary.js +6 -11
  123. package/dist/providers/WalletErrorBoundary.js.map +1 -1
  124. package/dist/styles/embedded-main-css.js +1 -3
  125. package/dist/styles/embedded-main-css.js.map +1 -1
  126. package/dist/styles/main.css +1 -1
  127. package/dist/types/wallet.js +4 -7
  128. package/dist/types/wallet.js.map +1 -1
  129. package/dist/utils/ed25519.js +14 -20
  130. package/dist/utils/ed25519.js.map +1 -1
  131. package/dist/utils/getPseudoName.js +7 -10
  132. package/dist/utils/getPseudoName.js.map +1 -1
  133. package/dist/utils/logger.js +3 -5
  134. package/dist/utils/logger.js.map +1 -1
  135. package/dist/utils/shortenString.js +2 -6
  136. package/dist/utils/shortenString.js.map +1 -1
  137. package/dist/utils/words.js +1 -4
  138. package/dist/utils/words.js.map +1 -1
  139. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"03-AmountInputScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/03-AmountInputScreen.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,8CA4ZC;;AA5aD,2CAA0E;AAC1E,+BAA0E;AAC1E,mDAAuD;AACvD,wCAAoD;AACpD,gDAA+C;AAC/C,0CAAkE;AAElE,gDAAoE;AACpE,iDAAyD;AAE5C,QAAA,mBAAmB,GAAG,CAAC,CAAC;AAExB,QAAA,kBAAkB,GAAG,KAAM,CAAC;AAIzC,SAAgB,iBAAiB,CAAC,EAA0B;IAA5D,iBA4ZC;IA3ZS,IAAA,OAAO,GAAK,IAAA,8BAAkB,GAAE,QAAzB,CAA0B;IACnC,IAAA,KAAyC,IAAA,0BAAc,GAAE,EAAvD,MAAM,YAAA,EAAE,YAAY,kBAAA,EAAE,YAAY,kBAAqB,CAAC;IAC1D,IAAA,KAAoB,IAAA,0BAAkB,GAAE,EAAtC,IAAI,UAAA,EAAE,OAAO,aAAyB,CAAC;IAEzC,IAAA,KAAgC,IAAA,gBAAQ,EAAgB,IAAI,CAAC,EAA5D,WAAW,QAAA,EAAE,cAAc,QAAiC,CAAC;IAC9D,IAAA,KAAoC,IAAA,gBAAQ,EAAgB,IAAI,CAAC,EAAhE,aAAa,QAAA,EAAE,gBAAgB,QAAiC,CAAC;IAClE,IAAA,KAA8B,IAAA,gBAAQ,EAAe,IAAI,CAAC,EAAzD,UAAU,QAAA,EAAE,aAAa,QAAgC,CAAC;IAC3D,IAAA,KAAsC,IAAA,gBAAQ,EAAqB;QACvE,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,IAAI;QACT,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,IAAI;KACZ,CAAC,EALK,cAAc,QAAA,EAAE,iBAAiB,QAKtC,CAAC;IACH,IAAM,YAAY,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IAElC,IAAA,iBAAS,EAAC;QACR,OAAO;YACL,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,iBAAS,EAAC;QACR,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAE3B,IAAM,iBAAiB,GAAG,OAAO,CAAC,aAAa,IAAI,QAAQ,CAAC;IACtD,IAAA,KAA0C,IAAA,gBAAQ,EAAgB,IAAI,CAAC,EAAtE,gBAAgB,QAAA,EAAE,mBAAmB,QAAiC,CAAC;IAE9E,IAAA,iBAAS,EAAC;QACR,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,IAAM,cAAc,GAAG;;;;;wBACrB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,4BAAgB,EAAC,IAAI,CAAC,EAAE,CAAC;4BACrC,IAAI,CAAC,WAAW,EAAE,CAAC;gCACjB,aAAa,CAAC,IAAI,CAAC,CAAC;4BACtB,CAAC;4BACD,sBAAO;wBACT,CAAC;wBAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACzD,IAAI,CAAC,WAAW,EAAE,CAAC;gCACjB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAC7B,CAAC;4BACD,sBAAO;wBACT,CAAC;wBAED,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;4BAC7C,sBAAO;wBACT,CAAC;;;;wBAGC,qBAAM,IAAI,CAAC,aAAa,EAAE,EAAA;;wBAA1B,SAA0B,CAAC;wBAC3B,IAAI,WAAW,EAAE,CAAC;4BAChB,sBAAO;wBACT,CAAC;wBACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACzD,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC7B,CAAC;;;;wBAED,IAAI,CAAC,WAAW,EAAE,CAAC;4BACjB,eAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,OAAK,CAAC,CAAC;4BACjD,aAAa,CAAC,IAAI,CAAC,CAAC;wBACtB,CAAC;;;;;aAEJ,CAAC;QAEF,cAAc,EAAE,CAAC;QAEjB,OAAO;YACL,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,IAAA,iBAAS,EAAC;QACR,IAAI,IAAI,IAAI,IAAA,4BAAgB,EAAC,IAAI,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3C,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBACtC,IAAM,SAAS,GACb,UAAU,CAAC,IAAI,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,MAAM,EAAnB,CAAmB,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;gBACpE,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;wBACtB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;oBAC7D,CAAC;oBACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACzC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;oBAC/D,CAAC;oBACD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;wBACxB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;oBACnE,CAAC;oBACD,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBACjC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACrC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,eAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAEvB,IAAM,UAAU,GAAG,IAAA,eAAO,EAAC;;QACzB,IACE,CAAC,IAAI;YACL,CAAC,IAAA,4BAAgB,EAAC,IAAI,CAAC;YACvB,CAAC,gBAAgB;YACjB,aAAa,IAAI,IAAI,EACrB,CAAC;YACD,OAAO,2BAAmB,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC;YACH,aAAa;YACb,IAAM,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,QAAQ,0CAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACpE,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,EAAE,CAAC;gBACzB,IAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACpD,IAAM,OAAO,GAAG,SAAA,EAAE,EAAI,aAAa,CAAA,CAAC;gBACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;oBACpD,OAAO,eAAe,GAAG,OAAO,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,2BAAmB,CAAC;IAC7B,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5C,IAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B;;;;;mFAAO,WAA2B;;YAA3B,4BAAA,EAAA,kBAA2B;;;;wBAChC,IAAI,CAAC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BAClC,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gCACzB,iBAAiB,CAAC;oCAChB,IAAI,EAAE,IAAI;oCACV,GAAG,EAAE,IAAI;oCACT,OAAO,EAAE,KAAK;oCACd,KAAK,EAAE,IAAI;iCACZ,CAAC,CAAC;4BACL,CAAC;4BACD,sBAAO;wBACT,CAAC;wBAED,IAAI,WAAW,EAAE,CAAC;4BAChB,iBAAiB,CAAC,UAAC,IAAI,IAAK,OAAA,uBACvB,IAAI,KACP,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,IAAI,IACX,EAJ0B,CAI1B,CAAC,CAAC;wBACN,CAAC;;;;wBAGO,WAAW,GAAG,IAAA,wBAAe,GAAE,CAAC;wBAChC,UAAU,GAAG,IAAI,oBAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;wBACtD,QAAQ,GAAG,IAAI,mBAAS,CAAC,OAAO,CAAC,CAAC;wBAEH,qBAAM,OAAO,CAAC,GAAG,CAAC;gCACrD,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;gCAC/B,UAAU,CAAC,6BAA6B,CAAC,QAAQ,EAAE;oCACjD,IAAI,EAAE,IAAI,mBAAS,CAAC,gBAAgB,CAAC;iCACtC,CAAC;6BACH,CAAC,EAAA;;wBALI,KAA+B,SAKnC,EALK,WAAW,QAAA,EAAE,aAAa,QAAA;wBAO3B,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,EAAW;;gCAAT,OAAO,aAAA;4BAC5D,IAAM,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC;4BACvC,IAAM,WAAW,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC;4BACtC,IAAI,CAAC,WAAW,EAAE,CAAC;gCACjB,OAAO,KAAK,CAAC;4BACf,CAAC;4BACD,IAAM,QAAQ,GACZ,OAAO,WAAW,CAAC,QAAQ,KAAK,QAAQ;gCACtC,CAAC,CAAC,WAAW,CAAC,QAAQ;gCACtB,CAAC,CAAC,UAAU,CAAC,MAAA,WAAW,CAAC,cAAc,mCAAI,GAAG,CAAC,CAAC;4BACpD,OAAO,KAAK,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5D,CAAC,EAAE,CAAC,CAAC,CAAC;wBAEN,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;4BAC1B,sBAAO;wBACT,CAAC;wBAED,iBAAiB,CAAC;4BAChB,IAAI,EAAE,SAAS;4BACf,GAAG,EAAE,WAAW,GAAG,0BAAgB;4BACnC,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,IAAI;yBACZ,CAAC,CAAC;;;;wBAEH,eAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,OAAK,CAAC,CAAC;wBACrD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;4BAC1B,sBAAO;wBACT,CAAC;wBACD,iBAAiB,CAAC,UAAC,IAAI,IAAK,OAAA,uBACvB,IAAI,KACP,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,oDAAoD,IAC3D,EAJ0B,CAI1B,CAAC,CAAC;;;;;;KAEP,EACD,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAC5B,CAAC;IAEF,IAAA,iBAAS,EAAC;QACR,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,aAAa,EAAE,CAAC;QAChB,IAAM,QAAQ,GAAG,WAAW,CAAC;YAC3B,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,EAAE,0BAAkB,CAAC,CAAC;QAEvB,OAAO,cAAM,OAAA,aAAa,CAAC,QAAQ,CAAC,EAAvB,CAAuB,CAAC;IACvC,CAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEtC,IAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpE,IAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,gDAAgD;IAClF,IAAM,aAAa,GAAG,QAAQ,CAAC;IAC/B,IAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IAChD,IAAM,kBAAkB,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,GAAG,CAAC;IAE9C,IAAM,gBAAgB,GACpB,cAAc,CAAC,IAAI,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI;QAClD,CAAC,CAAC,cAAc,CAAC,OAAO;YACtB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,GAAG;QACP,CAAC,CAAC,IAAA,wBAAY,EAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAEvD,IAAM,mBAAmB,GACvB,cAAc,CAAC,GAAG,IAAI,IAAI;QACxB,CAAC,CAAC,cAAc,CAAC,OAAO;YACtB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,GAAG;QACP,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpC,IAAM,aAAa,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAC1C,IAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC;IAC7E,IAAM,eAAe,GAAG,aAAa,IAAI,UAAU,CAAC;IACpD,IAAM,iBAAiB,GACrB,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,IAAI,cAAc,CAAC,IAAI,CAAC;IAC7E,IAAM,gBAAgB,GACpB,cAAc,CAAC,GAAG,IAAI,IAAI;QACxB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,cAAc,CAAC,GAAG,IAAI,kBAAkB,CAAC;IAE/C,IAAM,eAAe,GAAG,IAAA,eAAO,EAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,+BAA+B,CAAC;QACzC,CAAC;QAED,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;YACzB,OAAO,cAAc,CAAC,KAAK,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;YAC1C,OAAO,wDAAwD,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,8BAA8B,CAAC;QACxC,CAAC;QAED,IACE,cAAc,CAAC,OAAO;YACtB,cAAc,CAAC,IAAI,IAAI,IAAI;YAC3B,cAAc,CAAC,GAAG,IAAI,IAAI,EAC1B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,6BAAsB,UAAU,cAAI,WAAW,MAAG,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,uBAAgB,WAAW,+BAA4B,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,uCAAuC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,EAAE;QACD,OAAO;QACP,cAAc,CAAC,KAAK;QACpB,cAAc,CAAC,OAAO;QACtB,cAAc,CAAC,IAAI;QACnB,cAAc,CAAC,GAAG;QAClB,gBAAgB;QAChB,gBAAgB;QAChB,iBAAiB;QACjB,eAAe;QACf,WAAW;QACX,aAAa;QACb,UAAU;KACX,CAAC,CAAC;IAEH,IAAM,aAAa,GAAG,CAAC,cAAc,CAAC,OAAO,IAAI,eAAe,KAAK,IAAI,CAAC;IAE1E,IAAM,YAAY,GAAG;QACnB,IACE,cAAc,CAAC,IAAI,IAAI,IAAI;YAC3B,cAAc,CAAC,IAAI,IAAI,CAAC;YACxB,aAAa,IAAI,IAAI,EACrB,CAAC;YACD,OAAO;QACT,CAAC;QACD,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,OAAO,CACL,iCAAK,SAAS,EAAC,0BAA0B,aAEvC,iCAAK,SAAS,EAAC,wCAAwC,aACrD,+BAAI,SAAS,EAAC,gCAAgC,6BAAkB,EAChE,iCAAK,SAAS,EAAC,+EAA+E,aAC3F,QAAQ,CAAC,CAAC,CAAC,CACV,gCAAK,SAAS,EAAC,gEAAgE,YAC7E,uBAAC,kBAAU,IAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAI,GAC/B,CACP,CAAC,CAAC,CAAC,CACF,gCAAK,SAAS,EAAC,wCAAwC,GAAO,CAC/D,EACD,iCAAM,SAAS,EAAC,gCAAgC,YAC7C,iBAAiB,GACb,IACH,IACF,EAGN,iCAAK,SAAS,EAAC,8CAA8C,aAC3D,iCAAK,SAAS,EAAC,mCAAmC,aAChD,kEAA+B,EAC/B,6CACG,gBAAgB,OAAG,kBAAkB,IACjC,IACH,EACN,iCAAK,SAAS,EAAC,mCAAmC,aAChD,4DAAyB,EACzB,6CAAO,mBAAmB,YAAY,IAClC,EACN,iCAAK,SAAS,EAAC,mCAAmC,aAChD,gEAA6B,EAC7B,6CACG,iBAAiB,OAAG,kBAAkB,IAClC,IACH,EACN,iCAAK,SAAS,EAAC,mCAAmC,aAChD,wDAAqB,EACrB,2CAAO,aAAa,GAAQ,IACxB,IACF,EAEN,gCAAK,SAAS,EAAC,2BAA2B,GAAO,EAGjD,iCAAK,SAAS,EAAC,kCAAkC,aAC/C,gCAAK,SAAS,EAAC,yBAAyB,YACtC,iCAAK,SAAS,EAAC,oHAAoH,aACjI,iCAAM,SAAS,EAAC,gCAAgC,uBAAc,EAC9D,iCAAK,SAAS,EAAC,6BAA6B,aAC1C,kCACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAA5B,CAA4B,EAC7C,SAAS,EAAC,sJAAsJ,GAChK,EACF,mCAAQ,SAAS,EAAC,gIAAgI,YAC/I,kBAAkB,GACZ,IACL,IACF,GACF,EACN,mCACE,SAAS,EAAC,mJAAmJ,EAC7J,OAAO,EAAE,YAAY,EACrB,IAAI,EAAC,QAAQ,oBAGN,IACL,EAEL,eAAe,IAAI,CAClB,8BAAG,SAAS,EAAC,2BAA2B,YAAE,eAAe,GAAK,CAC/D,EAGD,mCACE,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,aAAa,EACxB,SAAS,EAAE,wKAIP,aAAa;oBACX,CAAC,CAAC,0DAA0D;oBAC5D,CAAC,CAAC,mDAAmD,eAE1D,YAED,iCACE,SAAS,EAAE,oEAEP,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB,iBAC5D,wBAGI,GACA,IACL,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { Connection, LAMPORTS_PER_SOL, PublicKey } from \"@solana/web3.js\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { SolanaLogo } from \"../../../components/logos\";\nimport { useN1WalletContext } from \"../../../hooks\";\nimport { logger } from \"../../../utils/logger\";\nimport { useDepositFlow, useOnboardingState } from \"../providers\";\nimport { WalletBalanceState } from \"../types\";\nimport { formatAmount, isNordConfigured } from \"../utils/nordUtils\";\nimport { getSolanaRpcUrl } from \"../../../config/solana\";\n\nexport const DEFAULT_MIN_DEPOSIT = 5;\n\nexport const BALANCE_REFRESH_MS = 20_000;\n\ninterface AmountInputScreenProps {}\n\nexport function AmountInputScreen({}: AmountInputScreenProps) {\n const { context } = useOnboardingState();\n const { amount, updateAmount, startDeposit } = useDepositFlow();\n const { nord, address } = useN1WalletContext();\n\n const [tokenSymbol, setTokenSymbol] = useState<string | null>(null);\n const [tokenDecimals, setTokenDecimals] = useState<number | null>(null);\n const [nordTokens, setNordTokens] = useState<any[] | null>(null);\n const [walletBalances, setWalletBalances] = useState<WalletBalanceState>({\n usdc: null,\n sol: null,\n loading: false,\n error: null,\n });\n const isMountedRef = useRef(true);\n\n useEffect(() => {\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!amount) {\n updateAmount(\"100\");\n }\n }, [amount, updateAmount]);\n\n const selectedChainName = context.selectedChain || \"Solana\";\n const [tokenMintAddress, setTokenMintAddress] = useState<string | null>(null);\n\n useEffect(() => {\n let isCancelled = false;\n\n const loadNordTokens = async () => {\n if (!nord || !isNordConfigured(nord)) {\n if (!isCancelled) {\n setNordTokens(null);\n }\n return;\n }\n\n if (Array.isArray(nord.tokens) && nord.tokens.length > 0) {\n if (!isCancelled) {\n setNordTokens(nord.tokens);\n }\n return;\n }\n\n if (typeof nord.fetchNordInfo !== \"function\") {\n return;\n }\n\n try {\n await nord.fetchNordInfo();\n if (isCancelled) {\n return;\n }\n if (Array.isArray(nord.tokens) && nord.tokens.length > 0) {\n setNordTokens(nord.tokens);\n }\n } catch (error) {\n if (!isCancelled) {\n logger.warn(\"Unable to fetch Nord info:\", error);\n setNordTokens(null);\n }\n }\n };\n\n loadNordTokens();\n\n return () => {\n isCancelled = true;\n };\n }, [nord]);\n\n useEffect(() => {\n if (nord && isNordConfigured(nord)) {\n try {\n if (!nordTokens || nordTokens.length === 0) {\n return;\n }\n console.log(\"nordTokens\", nordTokens);\n const usdcToken =\n nordTokens.find((t: any) => t.symbol === \"USDC\") || nordTokens[0];\n if (usdcToken) {\n if (!usdcToken.symbol) {\n throw new Error(\"Nord token configuration missing symbol\");\n }\n if (!Number.isFinite(usdcToken.decimals)) {\n throw new Error(\"Nord token configuration missing decimals\");\n }\n if (!usdcToken.mintAddr) {\n throw new Error(\"Nord token configuration missing mint address\");\n }\n setTokenSymbol(usdcToken.symbol);\n setTokenDecimals(usdcToken.decimals);\n setTokenMintAddress(usdcToken.mintAddr);\n }\n } catch (error) {\n logger.warn(\"Error getting token information from Nord:\", error);\n }\n }\n }, [nord, nordTokens]);\n\n const minDeposit = useMemo(() => {\n if (\n !nord ||\n !isNordConfigured(nord) ||\n !tokenMintAddress ||\n tokenDecimals == null\n ) {\n return DEFAULT_MIN_DEPOSIT;\n }\n try {\n // @ts-ignore\n const mintInfo = nord.protonClient?.mintInfo?.get(tokenMintAddress);\n if (mintInfo?.minDeposit) {\n const minDepositUnits = Number(mintInfo.minDeposit);\n const divisor = 10 ** tokenDecimals;\n if (Number.isFinite(minDepositUnits) && divisor > 0) {\n return minDepositUnits / divisor;\n }\n }\n } catch (error) {\n logger.warn(\"Unable to derive min deposit from Nord config\", error);\n }\n return DEFAULT_MIN_DEPOSIT;\n }, [nord, tokenMintAddress, tokenDecimals]);\n\n const fetchBalances = useCallback(\n async (showSpinner: boolean = true) => {\n if (!address || !tokenMintAddress) {\n if (isMountedRef.current) {\n setWalletBalances({\n usdc: null,\n sol: null,\n loading: false,\n error: null,\n });\n }\n return;\n }\n\n if (showSpinner) {\n setWalletBalances((prev) => ({\n ...prev,\n loading: true,\n error: null,\n }));\n }\n\n try {\n const rpcEndpoint = getSolanaRpcUrl();\n const connection = new Connection(rpcEndpoint, \"confirmed\");\n const ownerKey = new PublicKey(address);\n\n const [solLamports, tokenAccounts] = await Promise.all([\n connection.getBalance(ownerKey),\n connection.getParsedTokenAccountsByOwner(ownerKey, {\n mint: new PublicKey(tokenMintAddress),\n }),\n ]);\n\n const usdcTotal = tokenAccounts.value.reduce((total, { account }) => {\n const info = account.data.parsed?.info;\n const tokenAmount = info?.tokenAmount;\n if (!tokenAmount) {\n return total;\n }\n const uiAmount =\n typeof tokenAmount.uiAmount === \"number\"\n ? tokenAmount.uiAmount\n : parseFloat(tokenAmount.uiAmountString ?? \"0\");\n return total + (Number.isFinite(uiAmount) ? uiAmount : 0);\n }, 0);\n\n if (!isMountedRef.current) {\n return;\n }\n\n setWalletBalances({\n usdc: usdcTotal,\n sol: solLamports / LAMPORTS_PER_SOL,\n loading: false,\n error: null,\n });\n } catch (error) {\n logger.warn(\"Failed to load wallet balances\", error);\n if (!isMountedRef.current) {\n return;\n }\n setWalletBalances((prev) => ({\n ...prev,\n loading: false,\n error: \"Unable to fetch wallet balances. Please try again.\",\n }));\n }\n },\n [address, tokenMintAddress]\n );\n\n useEffect(() => {\n if (!tokenMintAddress) {\n return;\n }\n fetchBalances();\n const interval = setInterval(() => {\n fetchBalances(false);\n }, BALANCE_REFRESH_MS);\n\n return () => clearInterval(interval);\n }, [fetchBalances, tokenMintAddress]);\n\n const isSolana = selectedChainName.toLowerCase().includes(\"solana\");\n const requiredSolForFees = 0.002; // ensure wallet has at least 0.002 SOL for fees\n const gasFeeDisplay = \"~$0.30\";\n const minDepositDisplay = minDeposit.toString();\n const tokenSymbolDisplay = tokenSymbol ?? \"—\";\n\n const formattedBalance =\n walletBalances.usdc == null || tokenDecimals == null\n ? walletBalances.loading\n ? \"Loading...\"\n : \"—\"\n : formatAmount(walletBalances.usdc, tokenDecimals);\n\n const formattedSolBalance =\n walletBalances.sol == null\n ? walletBalances.loading\n ? \"Loading...\"\n : \"—\"\n : walletBalances.sol.toFixed(4);\n\n const numericAmount = Number(amount || 0);\n const hasEnteredAmount = Number.isFinite(numericAmount) && numericAmount > 0;\n const meetsMinDeposit = numericAmount >= minDeposit;\n const hasSufficientUsdc =\n walletBalances.usdc == null ? false : numericAmount <= walletBalances.usdc;\n const hasSufficientSol =\n walletBalances.sol == null\n ? false\n : walletBalances.sol >= requiredSolForFees;\n\n const validationError = useMemo(() => {\n if (!address) {\n return \"Connect a wallet to continue.\";\n }\n\n if (walletBalances.error) {\n return walletBalances.error;\n }\n\n if (!tokenSymbol || tokenDecimals == null) {\n return \"Token information unavailable. Please try again later.\";\n }\n\n if (!hasEnteredAmount) {\n return \"Enter an amount to continue.\";\n }\n\n if (\n walletBalances.loading ||\n walletBalances.usdc == null ||\n walletBalances.sol == null\n ) {\n return null;\n }\n\n if (!meetsMinDeposit) {\n return `Minimum deposit is ${minDeposit} ${tokenSymbol}.`;\n }\n\n if (!hasSufficientUsdc) {\n return `Insufficient ${tokenSymbol} balance for this deposit.`;\n }\n\n if (!hasSufficientSol) {\n return \"Not enough SOL to cover network fees.\";\n }\n\n return null;\n }, [\n address,\n walletBalances.error,\n walletBalances.loading,\n walletBalances.usdc,\n walletBalances.sol,\n hasEnteredAmount,\n hasSufficientSol,\n hasSufficientUsdc,\n meetsMinDeposit,\n tokenSymbol,\n tokenDecimals,\n minDeposit,\n ]);\n\n const isValidAmount = !walletBalances.loading && validationError === null;\n\n const handleUseMax = () => {\n if (\n walletBalances.usdc == null ||\n walletBalances.usdc <= 0 ||\n tokenDecimals == null\n ) {\n return;\n }\n updateAmount(walletBalances.usdc.toFixed(tokenDecimals));\n };\n\n return (\n <div className=\"overflow-hidden relative\">\n {/* Header Section */}\n <div className=\"flex items-center justify-between mb-4\">\n <h2 className=\"text-sm text-white font-medium\">Deposit From</h2>\n <div className=\"flex items-center space-x-2 rounded-md bg-n1-ww-border h-5 justify-center p-1\">\n {isSolana ? (\n <div className=\"rounded-full flex items-center justify-center bg-black h-3 w-3\">\n <SolanaLogo width={6} height={6} />\n </div>\n ) : (\n <div className=\"w-4 h-4 rounded-full bg-n1-ww-gray-600\"></div>\n )}\n <span className=\"text-white text-xs font-medium\">\n {selectedChainName}\n </span>\n </div>\n </div>\n\n {/* Deposit Information Section */}\n <div className=\"space-y-3 mb-4 text-white text-xs font-light\">\n <div className=\"flex items-center justify-between\">\n <span>Available Balance:</span>\n <span>\n {formattedBalance} {tokenSymbolDisplay}\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span>SOL Balance:</span>\n <span>{formattedSolBalance} SOL</span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span>Minimum Deposit:</span>\n <span>\n {minDepositDisplay} {tokenSymbolDisplay}\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span>Gas Fee:</span>\n <span>{gasFeeDisplay}</span>\n </div>\n </div>\n\n <div className=\"h-px bg-n1-ww-border mb-4\"></div>\n\n {/* Amount Input Section */}\n <div className=\"mb-4 flex justify-between w-full\">\n <div className=\"flex items-center gap-3\">\n <div className=\"flex items-center justify-between border border-n1-ww-gray-400 bg-n1-ww-gray-600 flex-1 w-[292px] rounded h-8 px-2\">\n <span className=\"text-white text-sm font-medium\">Amount</span>\n <div className=\"flex items-center space-x-2\">\n <input\n type=\"number\"\n step=\"0.000001\"\n value={amount}\n onChange={(e) => updateAmount(e.target.value)}\n className=\"text-white font-light text-xs text-right bg-transparent border-none outline-none focus:ring-2 focus:ring-n1-ww-main focus:ring-offset-0 rounded px-1\"\n />\n <button className=\"border border-n1-ww-gray-400 h-5 text-white text-xs font-light flex items-center justify-center px-1 rounded transition-colors\">\n {tokenSymbolDisplay}\n </button>\n </div>\n </div>\n </div>\n <button\n className=\"border border-n1-ww-gray-400 bg-n1-ww-gray-600 rounded text-white text-sm font-medium px-2 h-8 hover:bg-n1-ww-gray-800 transition-colors w-[68px]\"\n onClick={handleUseMax}\n type=\"button\"\n >\n Max\n </button>\n </div>\n\n {validationError && (\n <p className=\"mb-2 text-xs text-red-400\">{validationError}</p>\n )}\n\n {/* Deposit Button */}\n <button\n onClick={startDeposit}\n disabled={!isValidAmount}\n className={`\n w-full h-8 rounded border bg-transparent flex font-medium items-center justify-center\n transition-all duration-200 transform\n ${\n isValidAmount\n ? \"border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer\"\n : \"border-n1-ww-border opacity-50 cursor-not-allowed\"\n }\n `}\n >\n <span\n className={`\n font-medium text-sm opacity-90\n ${isValidAmount ? \"text-n1-ww-main\" : \"text-n1-ww-gray-600\"}\n `}\n >\n Deposit\n </span>\n </button>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"03-AmountInputScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/03-AmountInputScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Connection, LAMPORTS_PER_SOL, PublicKey } from \"@solana/web3.js\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { SolanaLogo } from \"../../../components/logos\";\nimport { useN1WalletContext } from \"../../../hooks\";\nimport { logger } from \"../../../utils/logger\";\nimport { useDepositFlow, useOnboardingState } from \"../providers\";\nimport { WalletBalanceState } from \"../types\";\nimport { formatAmount, isNordConfigured } from \"../utils/nordUtils\";\nimport { getSolanaRpcUrl } from \"../../../config/solana\";\n\nexport const DEFAULT_MIN_DEPOSIT = 5;\n\nexport const BALANCE_REFRESH_MS = 20_000;\n\ninterface AmountInputScreenProps {}\n\nexport function AmountInputScreen({}: AmountInputScreenProps) {\n const { context } = useOnboardingState();\n const { amount, updateAmount, startDeposit } = useDepositFlow();\n const { nord, address } = useN1WalletContext();\n\n const [tokenSymbol, setTokenSymbol] = useState<string | null>(null);\n const [tokenDecimals, setTokenDecimals] = useState<number | null>(null);\n const [nordTokens, setNordTokens] = useState<any[] | null>(null);\n const [walletBalances, setWalletBalances] = useState<WalletBalanceState>({\n usdc: null,\n sol: null,\n loading: false,\n error: null,\n });\n const isMountedRef = useRef(true);\n\n useEffect(() => {\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!amount) {\n updateAmount(\"100\");\n }\n }, [amount, updateAmount]);\n\n const selectedChainName = context.selectedChain || \"Solana\";\n const [tokenMintAddress, setTokenMintAddress] = useState<string | null>(null);\n\n useEffect(() => {\n let isCancelled = false;\n\n const loadNordTokens = async () => {\n if (!nord || !isNordConfigured(nord)) {\n if (!isCancelled) {\n setNordTokens(null);\n }\n return;\n }\n\n if (Array.isArray(nord.tokens) && nord.tokens.length > 0) {\n if (!isCancelled) {\n setNordTokens(nord.tokens);\n }\n return;\n }\n\n if (typeof nord.fetchNordInfo !== \"function\") {\n return;\n }\n\n try {\n await nord.fetchNordInfo();\n if (isCancelled) {\n return;\n }\n if (Array.isArray(nord.tokens) && nord.tokens.length > 0) {\n setNordTokens(nord.tokens);\n }\n } catch (error) {\n if (!isCancelled) {\n logger.warn(\"Unable to fetch Nord info:\", error);\n setNordTokens(null);\n }\n }\n };\n\n loadNordTokens();\n\n return () => {\n isCancelled = true;\n };\n }, [nord]);\n\n useEffect(() => {\n if (nord && isNordConfigured(nord)) {\n try {\n if (!nordTokens || nordTokens.length === 0) {\n return;\n }\n console.log(\"nordTokens\", nordTokens);\n const usdcToken =\n nordTokens.find((t: any) => t.symbol === \"USDC\") || nordTokens[0];\n if (usdcToken) {\n if (!usdcToken.symbol) {\n throw new Error(\"Nord token configuration missing symbol\");\n }\n if (!Number.isFinite(usdcToken.decimals)) {\n throw new Error(\"Nord token configuration missing decimals\");\n }\n if (!usdcToken.mintAddr) {\n throw new Error(\"Nord token configuration missing mint address\");\n }\n setTokenSymbol(usdcToken.symbol);\n setTokenDecimals(usdcToken.decimals);\n setTokenMintAddress(usdcToken.mintAddr);\n }\n } catch (error) {\n logger.warn(\"Error getting token information from Nord:\", error);\n }\n }\n }, [nord, nordTokens]);\n\n const minDeposit = useMemo(() => {\n if (\n !nord ||\n !isNordConfigured(nord) ||\n !tokenMintAddress ||\n tokenDecimals == null\n ) {\n return DEFAULT_MIN_DEPOSIT;\n }\n try {\n // @ts-ignore\n const mintInfo = nord.protonClient?.mintInfo?.get(tokenMintAddress);\n if (mintInfo?.minDeposit) {\n const minDepositUnits = Number(mintInfo.minDeposit);\n const divisor = 10 ** tokenDecimals;\n if (Number.isFinite(minDepositUnits) && divisor > 0) {\n return minDepositUnits / divisor;\n }\n }\n } catch (error) {\n logger.warn(\"Unable to derive min deposit from Nord config\", error);\n }\n return DEFAULT_MIN_DEPOSIT;\n }, [nord, tokenMintAddress, tokenDecimals]);\n\n const fetchBalances = useCallback(\n async (showSpinner: boolean = true) => {\n if (!address || !tokenMintAddress) {\n if (isMountedRef.current) {\n setWalletBalances({\n usdc: null,\n sol: null,\n loading: false,\n error: null,\n });\n }\n return;\n }\n\n if (showSpinner) {\n setWalletBalances((prev) => ({\n ...prev,\n loading: true,\n error: null,\n }));\n }\n\n try {\n const rpcEndpoint = getSolanaRpcUrl();\n const connection = new Connection(rpcEndpoint, \"confirmed\");\n const ownerKey = new PublicKey(address);\n\n const [solLamports, tokenAccounts] = await Promise.all([\n connection.getBalance(ownerKey),\n connection.getParsedTokenAccountsByOwner(ownerKey, {\n mint: new PublicKey(tokenMintAddress),\n }),\n ]);\n\n const usdcTotal = tokenAccounts.value.reduce((total, { account }) => {\n const info = account.data.parsed?.info;\n const tokenAmount = info?.tokenAmount;\n if (!tokenAmount) {\n return total;\n }\n const uiAmount =\n typeof tokenAmount.uiAmount === \"number\"\n ? tokenAmount.uiAmount\n : parseFloat(tokenAmount.uiAmountString ?? \"0\");\n return total + (Number.isFinite(uiAmount) ? uiAmount : 0);\n }, 0);\n\n if (!isMountedRef.current) {\n return;\n }\n\n setWalletBalances({\n usdc: usdcTotal,\n sol: solLamports / LAMPORTS_PER_SOL,\n loading: false,\n error: null,\n });\n } catch (error) {\n logger.warn(\"Failed to load wallet balances\", error);\n if (!isMountedRef.current) {\n return;\n }\n setWalletBalances((prev) => ({\n ...prev,\n loading: false,\n error: \"Unable to fetch wallet balances. Please try again.\",\n }));\n }\n },\n [address, tokenMintAddress]\n );\n\n useEffect(() => {\n if (!tokenMintAddress) {\n return;\n }\n fetchBalances();\n const interval = setInterval(() => {\n fetchBalances(false);\n }, BALANCE_REFRESH_MS);\n\n return () => clearInterval(interval);\n }, [fetchBalances, tokenMintAddress]);\n\n const isSolana = selectedChainName.toLowerCase().includes(\"solana\");\n const requiredSolForFees = 0.002; // ensure wallet has at least 0.002 SOL for fees\n const gasFeeDisplay = \"~$0.30\";\n const minDepositDisplay = minDeposit.toString();\n const tokenSymbolDisplay = tokenSymbol ?? \"—\";\n\n const formattedBalance =\n walletBalances.usdc == null || tokenDecimals == null\n ? walletBalances.loading\n ? \"Loading...\"\n : \"—\"\n : formatAmount(walletBalances.usdc, tokenDecimals);\n\n const formattedSolBalance =\n walletBalances.sol == null\n ? walletBalances.loading\n ? \"Loading...\"\n : \"—\"\n : walletBalances.sol.toFixed(4);\n\n const numericAmount = Number(amount || 0);\n const hasEnteredAmount = Number.isFinite(numericAmount) && numericAmount > 0;\n const meetsMinDeposit = numericAmount >= minDeposit;\n const hasSufficientUsdc =\n walletBalances.usdc == null ? false : numericAmount <= walletBalances.usdc;\n const hasSufficientSol =\n walletBalances.sol == null\n ? false\n : walletBalances.sol >= requiredSolForFees;\n\n const validationError = useMemo(() => {\n if (!address) {\n return \"Connect a wallet to continue.\";\n }\n\n if (walletBalances.error) {\n return walletBalances.error;\n }\n\n if (!tokenSymbol || tokenDecimals == null) {\n return \"Token information unavailable. Please try again later.\";\n }\n\n if (!hasEnteredAmount) {\n return \"Enter an amount to continue.\";\n }\n\n if (\n walletBalances.loading ||\n walletBalances.usdc == null ||\n walletBalances.sol == null\n ) {\n return null;\n }\n\n if (!meetsMinDeposit) {\n return `Minimum deposit is ${minDeposit} ${tokenSymbol}.`;\n }\n\n if (!hasSufficientUsdc) {\n return `Insufficient ${tokenSymbol} balance for this deposit.`;\n }\n\n if (!hasSufficientSol) {\n return \"Not enough SOL to cover network fees.\";\n }\n\n return null;\n }, [\n address,\n walletBalances.error,\n walletBalances.loading,\n walletBalances.usdc,\n walletBalances.sol,\n hasEnteredAmount,\n hasSufficientSol,\n hasSufficientUsdc,\n meetsMinDeposit,\n tokenSymbol,\n tokenDecimals,\n minDeposit,\n ]);\n\n const isValidAmount = !walletBalances.loading && validationError === null;\n\n const handleUseMax = () => {\n if (\n walletBalances.usdc == null ||\n walletBalances.usdc <= 0 ||\n tokenDecimals == null\n ) {\n return;\n }\n updateAmount(walletBalances.usdc.toFixed(tokenDecimals));\n };\n\n return (\n <div className=\"overflow-hidden relative\">\n {/* Header Section */}\n <div className=\"flex items-center justify-between mb-4\">\n <h2 className=\"text-sm text-white font-medium\">Deposit From</h2>\n <div className=\"flex items-center space-x-2 rounded-md bg-n1-ww-border h-5 justify-center p-1\">\n {isSolana ? (\n <div className=\"rounded-full flex items-center justify-center bg-black h-3 w-3\">\n <SolanaLogo width={6} height={6} />\n </div>\n ) : (\n <div className=\"w-4 h-4 rounded-full bg-n1-ww-gray-600\"></div>\n )}\n <span className=\"text-white text-xs font-medium\">\n {selectedChainName}\n </span>\n </div>\n </div>\n\n {/* Deposit Information Section */}\n <div className=\"space-y-3 mb-4 text-white text-xs font-light\">\n <div className=\"flex items-center justify-between\">\n <span>Available Balance:</span>\n <span>\n {formattedBalance} {tokenSymbolDisplay}\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span>SOL Balance:</span>\n <span>{formattedSolBalance} SOL</span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span>Minimum Deposit:</span>\n <span>\n {minDepositDisplay} {tokenSymbolDisplay}\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span>Gas Fee:</span>\n <span>{gasFeeDisplay}</span>\n </div>\n </div>\n\n <div className=\"h-px bg-n1-ww-border mb-4\"></div>\n\n {/* Amount Input Section */}\n <div className=\"mb-4 flex justify-between w-full\">\n <div className=\"flex items-center gap-3\">\n <div className=\"flex items-center justify-between border border-n1-ww-gray-400 bg-n1-ww-gray-600 flex-1 w-[292px] rounded h-8 px-2\">\n <span className=\"text-white text-sm font-medium\">Amount</span>\n <div className=\"flex items-center space-x-2\">\n <input\n type=\"number\"\n step=\"0.000001\"\n value={amount}\n onChange={(e) => updateAmount(e.target.value)}\n className=\"text-white font-light text-xs text-right bg-transparent border-none outline-none focus:ring-2 focus:ring-n1-ww-main focus:ring-offset-0 rounded px-1\"\n />\n <button className=\"border border-n1-ww-gray-400 h-5 text-white text-xs font-light flex items-center justify-center px-1 rounded transition-colors\">\n {tokenSymbolDisplay}\n </button>\n </div>\n </div>\n </div>\n <button\n className=\"border border-n1-ww-gray-400 bg-n1-ww-gray-600 rounded text-white text-sm font-medium px-2 h-8 hover:bg-n1-ww-gray-800 transition-colors w-[68px]\"\n onClick={handleUseMax}\n type=\"button\"\n >\n Max\n </button>\n </div>\n\n {validationError && (\n <p className=\"mb-2 text-xs text-red-400\">{validationError}</p>\n )}\n\n {/* Deposit Button */}\n <button\n onClick={startDeposit}\n disabled={!isValidAmount}\n className={`\n w-full h-8 rounded border bg-transparent flex font-medium items-center justify-center\n transition-all duration-200 transform\n ${\n isValidAmount\n ? \"border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer\"\n : \"border-n1-ww-border opacity-50 cursor-not-allowed\"\n }\n `}\n >\n <span\n className={`\n font-medium text-sm opacity-90\n ${isValidAmount ? \"text-n1-ww-main\" : \"text-n1-ww-gray-600\"}\n `}\n >\n Deposit\n </span>\n </button>\n </div>\n );\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++) {
@@ -10,13 +9,10 @@ var __assign = (this && this.__assign) || function () {
10
9
  };
11
10
  return __assign.apply(this, arguments);
12
11
  };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.DEPOSIT_PROGRESS_MESSAGE = void 0;
15
- exports.DepositProgressScreen = DepositProgressScreen;
16
- var jsx_runtime_1 = require("react/jsx-runtime");
17
- var WaitingMessage_1 = require("../components/WaitingMessage");
18
- var providers_1 = require("../providers");
19
- exports.DEPOSIT_PROGRESS_MESSAGE = {
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { WaitingMessage } from "../components/WaitingMessage";
14
+ import { useDepositFlow } from "../providers";
15
+ export var DEPOSIT_PROGRESS_MESSAGE = {
20
16
  visible: true,
21
17
  title: "Processing Deposit",
22
18
  subtitle: "Please wait while we process your deposit",
@@ -26,10 +22,10 @@ var SUBTITLES = {
26
22
  solana: 'Please sign the transaction in your wallet to continue',
27
23
  nord: 'Waiting for N1 to process the deposit...',
28
24
  };
29
- function DepositProgressScreen() {
25
+ export function DepositProgressScreen() {
30
26
  var _a;
31
- var depositProgressPhase = (0, providers_1.useDepositFlow)().depositProgressPhase;
32
- var message = __assign(__assign({}, exports.DEPOSIT_PROGRESS_MESSAGE), { subtitle: (_a = SUBTITLES[depositProgressPhase]) !== null && _a !== void 0 ? _a : SUBTITLES.solana });
33
- return ((0, jsx_runtime_1.jsx)("div", { className: "overflow-hidden relative", children: (0, jsx_runtime_1.jsx)(WaitingMessage_1.WaitingMessage, { message: message, animation: "transfer" }) }));
27
+ var depositProgressPhase = useDepositFlow().depositProgressPhase;
28
+ var message = __assign(__assign({}, DEPOSIT_PROGRESS_MESSAGE), { subtitle: (_a = SUBTITLES[depositProgressPhase]) !== null && _a !== void 0 ? _a : SUBTITLES.solana });
29
+ return (_jsx("div", { className: "overflow-hidden relative", children: _jsx(WaitingMessage, { message: message, animation: "transfer" }) }));
34
30
  }
35
31
  //# sourceMappingURL=04-DepositProgressScreen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"04-DepositProgressScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/04-DepositProgressScreen.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;AAiBA,sDAYC;;AA7BD,+DAA8D;AAC9D,0CAA8C;AAIjC,QAAA,wBAAwB,GAAwB;IAC3D,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,oBAAoB;IAC3B,QAAQ,EAAE,2CAA2C;IACrD,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,IAAM,SAAS,GAAsC;IACnD,MAAM,EAAE,wDAAwD;IAChE,IAAI,EAAE,0CAA0C;CACjD,CAAC;AAEF,SAAgB,qBAAqB;;IAC3B,IAAA,oBAAoB,GAAK,IAAA,0BAAc,GAAE,qBAArB,CAAsB;IAClD,IAAM,OAAO,yBACR,gCAAwB,KAC3B,QAAQ,EAAE,MAAA,SAAS,CAAC,oBAAoB,CAAC,mCAAI,SAAS,CAAC,MAAM,GAC9D,CAAC;IAEF,OAAO,CACL,gCAAK,SAAS,EAAC,0BAA0B,YACvC,uBAAC,+BAAc,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,UAAU,GAAG,GACrD,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { WaitingMessage } from \"../components/WaitingMessage\";\nimport { useDepositFlow } from \"../providers\";\nimport { WaitingMessageState } from \"../types\";\n\n\nexport const DEPOSIT_PROGRESS_MESSAGE: WaitingMessageState = {\n visible: true,\n title: \"Processing Deposit\",\n subtitle: \"Please wait while we process your deposit\",\n isTyping: false,\n};\n\nconst SUBTITLES: Record<'solana' | 'nord', string> = {\n solana: 'Please sign the transaction in your wallet to continue',\n nord: 'Waiting for N1 to process the deposit...',\n};\n\nexport function DepositProgressScreen() {\n const { depositProgressPhase } = useDepositFlow();\n const message = {\n ...DEPOSIT_PROGRESS_MESSAGE,\n subtitle: SUBTITLES[depositProgressPhase] ?? SUBTITLES.solana,\n };\n\n return (\n <div className=\"overflow-hidden relative\">\n <WaitingMessage message={message} animation=\"transfer\" />\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"04-DepositProgressScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/04-DepositProgressScreen.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,CAAC,IAAM,wBAAwB,GAAwB;IAC3D,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,oBAAoB;IAC3B,QAAQ,EAAE,2CAA2C;IACrD,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,IAAM,SAAS,GAAsC;IACnD,MAAM,EAAE,wDAAwD;IAChE,IAAI,EAAE,0CAA0C;CACjD,CAAC;AAEF,MAAM,UAAU,qBAAqB;;IAC3B,IAAA,oBAAoB,GAAK,cAAc,EAAE,qBAArB,CAAsB;IAClD,IAAM,OAAO,yBACR,wBAAwB,KAC3B,QAAQ,EAAE,MAAA,SAAS,CAAC,oBAAoB,CAAC,mCAAI,SAAS,CAAC,MAAM,GAC9D,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,0BAA0B,YACvC,KAAC,cAAc,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,UAAU,GAAG,GACrD,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { WaitingMessage } from \"../components/WaitingMessage\";\nimport { useDepositFlow } from \"../providers\";\nimport { WaitingMessageState } from \"../types\";\n\n\nexport const DEPOSIT_PROGRESS_MESSAGE: WaitingMessageState = {\n visible: true,\n title: \"Processing Deposit\",\n subtitle: \"Please wait while we process your deposit\",\n isTyping: false,\n};\n\nconst SUBTITLES: Record<'solana' | 'nord', string> = {\n solana: 'Please sign the transaction in your wallet to continue',\n nord: 'Waiting for N1 to process the deposit...',\n};\n\nexport function DepositProgressScreen() {\n const { depositProgressPhase } = useDepositFlow();\n const message = {\n ...DEPOSIT_PROGRESS_MESSAGE,\n subtitle: SUBTITLES[depositProgressPhase] ?? SUBTITLES.solana,\n };\n\n return (\n <div className=\"overflow-hidden relative\">\n <WaitingMessage message={message} animation=\"transfer\" />\n </div>\n );\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,28 +34,26 @@ 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.DepositSuccessScreen = DepositSuccessScreen;
40
- var jsx_runtime_1 = require("react/jsx-runtime");
41
- var react_1 = require("react");
42
- var hooks_1 = require("../../../hooks");
43
- var nordUtils_1 = require("../utils/nordUtils");
44
- var providers_1 = require("../providers");
45
- var transaction_1 = require("../utils/transaction");
37
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
38
+ import { useEffect, useState } from "react";
39
+ import { useN1WalletContext } from "../../../hooks";
40
+ import { isNordConfigured, shortenAddress } from "../utils/nordUtils";
41
+ import { useDepositFlow, useOnboardingState } from "../providers";
42
+ import { getExplorerUrl } from "../utils/transaction";
46
43
  // Share icon component reused from Header.tsx
47
44
  var ShareIcon = function (_a) {
48
45
  var className = _a.className;
49
- return ((0, jsx_runtime_1.jsxs)("svg", { className: className || "h-full w-full", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [(0, jsx_runtime_1.jsx)("path", { d: "M5.93066 8.06944L12.3473 1.65277", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" }), (0, jsx_runtime_1.jsx)("path", { d: "M8.06958 1.65277H12.3474V5.93055", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" }), (0, jsx_runtime_1.jsx)("path", { d: "M10.7431 7.80207V12.3472H1.65283V3.25693H6.19797", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" })] }));
46
+ return (_jsxs("svg", { className: className || "h-full w-full", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { d: "M5.93066 8.06944L12.3473 1.65277", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" }), _jsx("path", { d: "M8.06958 1.65277H12.3474V5.93055", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" }), _jsx("path", { d: "M10.7431 7.80207V12.3472H1.65283V3.25693H6.19797", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" })] }));
50
47
  };
51
- function DepositSuccessScreen() {
48
+ export function DepositSuccessScreen() {
52
49
  var _this = this;
53
- var _a = (0, providers_1.useDepositFlow)(), amount = _a.amount, completeDeposit = _a.completeDeposit, transactionResult = _a.transactionResult, transactionId = _a.transactionId;
54
- var nord = (0, hooks_1.useN1WalletContext)().nord;
55
- var context = (0, providers_1.useOnboardingState)().context;
56
- var isContinueEnabled = (0, react_1.useState)(true)[0];
57
- var _b = (0, react_1.useState)("USDC"), tokenSymbol = _b[0], setTokenSymbol = _b[1];
58
- var _c = (0, react_1.useState)(false), copiedAddress = _c[0], setCopiedAddress = _c[1];
59
- var _d = (0, react_1.useState)(false), showCopyTooltip = _d[0], setShowCopyTooltip = _d[1];
50
+ var _a = useDepositFlow(), amount = _a.amount, completeDeposit = _a.completeDeposit, transactionResult = _a.transactionResult, transactionId = _a.transactionId;
51
+ var nord = useN1WalletContext().nord;
52
+ var context = useOnboardingState().context;
53
+ var isContinueEnabled = useState(true)[0];
54
+ var _b = useState("USDC"), tokenSymbol = _b[0], setTokenSymbol = _b[1];
55
+ var _c = useState(false), copiedAddress = _c[0], setCopiedAddress = _c[1];
56
+ var _d = useState(false), showCopyTooltip = _d[0], setShowCopyTooltip = _d[1];
60
57
  var fallbackTransaction = transactionResult !== null && transactionResult !== void 0 ? transactionResult : {
61
58
  success: true,
62
59
  transactionId: transactionId !== null && transactionId !== void 0 ? transactionId : "pending-transaction",
@@ -66,11 +63,11 @@ function DepositSuccessScreen() {
66
63
  toAddress: "Exchange Account",
67
64
  networkName: "Devnet",
68
65
  status: "Completed",
69
- explorerUrl: transactionId ? (0, transaction_1.getExplorerUrl)(transactionId) : "",
66
+ explorerUrl: transactionId ? getExplorerUrl(transactionId) : "",
70
67
  };
71
68
  // Get token information from Nord if available
72
- (0, react_1.useEffect)(function () {
73
- if (nord && (0, nordUtils_1.isNordConfigured)(nord)) {
69
+ useEffect(function () {
70
+ if (nord && isNordConfigured(nord)) {
74
71
  try {
75
72
  var usdcToken = nord.tokens.find(function (t) { return t.symbol === "USDC"; }) || nord.tokens[0];
76
73
  if (usdcToken) {
@@ -84,19 +81,19 @@ function DepositSuccessScreen() {
84
81
  }, [nord]);
85
82
  // Solana transaction ID (from depositSpl)
86
83
  var solanaTransactionId = transactionId || fallbackTransaction.transactionId;
87
- var solanaTransactionIdShort = (0, nordUtils_1.shortenAddress)(solanaTransactionId, 5, 4);
84
+ var solanaTransactionIdShort = shortenAddress(solanaTransactionId, 5, 4);
88
85
  var solanaExplorerUrl = solanaTransactionId
89
- ? (0, transaction_1.getExplorerUrl)(solanaTransactionId)
86
+ ? getExplorerUrl(solanaTransactionId)
90
87
  : "";
91
88
  // N1 transaction ID (could be derived from transactionResult or generated)
92
89
  // For now, using a formatted version or placeholder
93
90
  var n1TransactionId = (transactionResult === null || transactionResult === void 0 ? void 0 : transactionResult.transactionId)
94
91
  ? "n1_".concat(transactionResult.transactionId.substring(0, 8))
95
92
  : "n1_".concat(solanaTransactionId.substring(0, 8));
96
- var n1TransactionIdShort = (0, nordUtils_1.shortenAddress)(n1TransactionId, 5, 4);
93
+ var n1TransactionIdShort = shortenAddress(n1TransactionId, 5, 4);
97
94
  // N1 explorer URL (placeholder - adjust based on actual N1 explorer)
98
95
  var n1ExplorerUrl = "https://explorer.n1.network/tx/".concat(n1TransactionId);
99
- var fromAddressShort = (0, nordUtils_1.shortenAddress)(fallbackTransaction.fromAddress, 5, 4);
96
+ var fromAddressShort = shortenAddress(fallbackTransaction.fromAddress, 5, 4);
100
97
  var fromAddressFull = fallbackTransaction.fromAddress;
101
98
  // Handle copy to clipboard for wallet address
102
99
  var handleCopyAddress = function () { return __awaiter(_this, void 0, void 0, function () {
@@ -128,12 +125,12 @@ function DepositSuccessScreen() {
128
125
  }
129
126
  });
130
127
  }); };
131
- return ((0, jsx_runtime_1.jsx)("div", { className: "relative w-full", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col space-y-4", children: [(0, jsx_runtime_1.jsx)("div", { className: "w-full py-4", children: (0, jsx_runtime_1.jsx)("div", { className: "flex items-center justify-center", children: (0, jsx_runtime_1.jsxs)("div", { className: "text-center flex items-end", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-5xl md:text-6xl tracking-tight text-n1-ww-main font-medium", children: Number(amount).toLocaleString() }), (0, jsx_runtime_1.jsx)("div", { className: "h-5 inline-flex items-center justify-center border border-n1-ww-border rounded px-1 py-1 ml-2 mb-1", children: (0, jsx_runtime_1.jsx)("span", { className: "text-white text-xs font-light", children: tokenSymbol }) })] }) }) }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-3 mb-4", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-white text-xs font-light", children: "Amount:" }), (0, jsx_runtime_1.jsxs)("span", { className: "text-white text-xs font-light", children: [Number(amount).toLocaleString(), " ", tokenSymbol] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-white text-xs font-light", children: "Status:" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2", children: [(0, jsx_runtime_1.jsxs)("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "text-n1-ww-accent-neon", children: [(0, jsx_runtime_1.jsx)("rect", { x: "0.5", y: "0.5", width: "13", height: "13", rx: "6.5", stroke: "currentColor" }), (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.7917 4.83199L6.54647 9.9756L6.27917 10.2995L5.97635 10.0059L3.5 7.60561L4.0421 7.0879L6.21563 9.19473L10.1935 4.375L10.7917 4.83199Z", fill: "currentColor", stroke: "currentColor", strokeWidth: "0.5" })] }), (0, jsx_runtime_1.jsx)("span", { className: "text-n1-ww-accent-neon text-xs font-light", children: fallbackTransaction.status })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-white text-xs font-light", children: "From:" }), (0, jsx_runtime_1.jsxs)("div", { className: "relative flex items-center gap-1 group", children: [(0, jsx_runtime_1.jsx)("button", { onClick: handleCopyAddress, onMouseEnter: function () { return !copiedAddress && setShowCopyTooltip(true); }, onMouseLeave: function () { return setShowCopyTooltip(false); }, className: "text-white text-xs font-light underline cursor-pointer hover:text-n1-ww-main transition-colors", children: fromAddressShort }), (copiedAddress || showCopyTooltip) && ((0, jsx_runtime_1.jsx)("div", { className: "absolute top-full mt-1 left-1/2 -translate-x-1/2 px-2 py-1 bg-n1-ww-gray-800 border border-n1-ww-border rounded text-xs text-white whitespace-nowrap z-10 pointer-events-none ".concat(copiedAddress
128
+ return (_jsx("div", { className: "relative w-full", children: _jsxs("div", { className: "flex flex-col space-y-4", children: [_jsx("div", { className: "w-full py-4", children: _jsx("div", { className: "flex items-center justify-center", children: _jsxs("div", { className: "text-center flex items-end", children: [_jsx("div", { className: "text-5xl md:text-6xl tracking-tight text-n1-ww-main font-medium", children: Number(amount).toLocaleString() }), _jsx("div", { className: "h-5 inline-flex items-center justify-center border border-n1-ww-border rounded px-1 py-1 ml-2 mb-1", children: _jsx("span", { className: "text-white text-xs font-light", children: tokenSymbol }) })] }) }) }), _jsxs("div", { className: "space-y-3 mb-4", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-white text-xs font-light", children: "Amount:" }), _jsxs("span", { className: "text-white text-xs font-light", children: [Number(amount).toLocaleString(), " ", tokenSymbol] })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-white text-xs font-light", children: "Status:" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "text-n1-ww-accent-neon", children: [_jsx("rect", { x: "0.5", y: "0.5", width: "13", height: "13", rx: "6.5", stroke: "currentColor" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.7917 4.83199L6.54647 9.9756L6.27917 10.2995L5.97635 10.0059L3.5 7.60561L4.0421 7.0879L6.21563 9.19473L10.1935 4.375L10.7917 4.83199Z", fill: "currentColor", stroke: "currentColor", strokeWidth: "0.5" })] }), _jsx("span", { className: "text-n1-ww-accent-neon text-xs font-light", children: fallbackTransaction.status })] })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-white text-xs font-light", children: "From:" }), _jsxs("div", { className: "relative flex items-center gap-1 group", children: [_jsx("button", { onClick: handleCopyAddress, onMouseEnter: function () { return !copiedAddress && setShowCopyTooltip(true); }, onMouseLeave: function () { return setShowCopyTooltip(false); }, className: "text-white text-xs font-light underline cursor-pointer hover:text-n1-ww-main transition-colors", children: fromAddressShort }), (copiedAddress || showCopyTooltip) && (_jsx("div", { className: "absolute top-full mt-1 left-1/2 -translate-x-1/2 px-2 py-1 bg-n1-ww-gray-800 border border-n1-ww-border rounded text-xs text-white whitespace-nowrap z-10 pointer-events-none ".concat(copiedAddress
132
129
  ? "opacity-100"
133
130
  : showCopyTooltip
134
131
  ? "opacity-100"
135
- : "opacity-0", " transition-opacity duration-200"), children: copiedAddress ? "Copied!" : "Click to copy" }))] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-white text-xs font-light", children: "N1 Transaction ID:" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-1", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-white text-xs font-light underline", children: n1TransactionIdShort }), n1ExplorerUrl && ((0, jsx_runtime_1.jsx)("a", { href: n1ExplorerUrl, target: "_blank", rel: "noopener noreferrer", className: "flex h-4 w-4 flex-shrink-0 items-center justify-center text-n1-ww-main hover:text-white transition-colors", "aria-label": "View N1 transaction on explorer", children: (0, jsx_runtime_1.jsx)(ShareIcon, {}) }))] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-white text-xs font-light", children: "Solana Transaction ID:" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-1", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-white text-xs font-light underline", children: solanaTransactionIdShort }), solanaExplorerUrl && ((0, jsx_runtime_1.jsx)("a", { href: solanaExplorerUrl, target: "_blank", rel: "noopener noreferrer", className: "flex h-4 w-4 flex-shrink-0 items-center justify-center text-n1-ww-main hover:text-white transition-colors", "aria-label": "View transaction on explorer", children: (0, jsx_runtime_1.jsx)(ShareIcon, {}) }))] })] })] }), (0, jsx_runtime_1.jsx)("div", { className: "h-px bg-n1-ww-border mb-4" }), (0, jsx_runtime_1.jsx)("button", { onClick: isContinueEnabled ? completeDeposit : undefined, disabled: !isContinueEnabled, className: "\n w-full h-8 rounded border bg-transparent flex font-medium items-center justify-center\n transition-all duration-200 transform\n ".concat(isContinueEnabled
132
+ : "opacity-0", " transition-opacity duration-200"), children: copiedAddress ? "Copied!" : "Click to copy" }))] })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-white text-xs font-light", children: "N1 Transaction ID:" }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx("span", { className: "text-white text-xs font-light underline", children: n1TransactionIdShort }), n1ExplorerUrl && (_jsx("a", { href: n1ExplorerUrl, target: "_blank", rel: "noopener noreferrer", className: "flex h-4 w-4 flex-shrink-0 items-center justify-center text-n1-ww-main hover:text-white transition-colors", "aria-label": "View N1 transaction on explorer", children: _jsx(ShareIcon, {}) }))] })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-white text-xs font-light", children: "Solana Transaction ID:" }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx("span", { className: "text-white text-xs font-light underline", children: solanaTransactionIdShort }), solanaExplorerUrl && (_jsx("a", { href: solanaExplorerUrl, target: "_blank", rel: "noopener noreferrer", className: "flex h-4 w-4 flex-shrink-0 items-center justify-center text-n1-ww-main hover:text-white transition-colors", "aria-label": "View transaction on explorer", children: _jsx(ShareIcon, {}) }))] })] })] }), _jsx("div", { className: "h-px bg-n1-ww-border mb-4" }), _jsx("button", { onClick: isContinueEnabled ? completeDeposit : undefined, disabled: !isContinueEnabled, className: "\n w-full h-8 rounded border bg-transparent flex font-medium items-center justify-center\n transition-all duration-200 transform\n ".concat(isContinueEnabled
136
133
  ? "border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer text-n1-ww-main"
137
- : "border-n1-ww-border opacity-50 cursor-not-allowed text-n1-ww-gray-600", "\n "), children: (0, jsx_runtime_1.jsx)("span", { className: "font-medium text-sm opacity-90", children: context.isDepositOnlyFlow ? "Close" : "Continue" }) })] }) }));
134
+ : "border-n1-ww-border opacity-50 cursor-not-allowed text-n1-ww-gray-600", "\n "), children: _jsx("span", { className: "font-medium text-sm opacity-90", children: context.isDepositOnlyFlow ? "Close" : "Continue" }) })] }) }));
138
135
  }
139
136
  //# sourceMappingURL=05-DepositSuccessScreen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"05-DepositSuccessScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/05-DepositSuccessScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState } from \"react\";\nimport { useN1WalletContext } from \"../../../hooks\";\nimport { isNordConfigured, shortenAddress } from \"../utils/nordUtils\";\nimport { useDepositFlow, useOnboardingState } from \"../providers\";\nimport { getExplorerUrl } from \"../utils/transaction\";\n\n// Share icon component reused from Header.tsx\nconst ShareIcon = ({ className }: { className?: string }) => (\n <svg\n className={className || \"h-full w-full\"}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.93066 8.06944L12.3473 1.65277\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M8.06958 1.65277H12.3474V5.93055\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M10.7431 7.80207V12.3472H1.65283V3.25693H6.19797\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n\nexport function DepositSuccessScreen() {\n const { amount, completeDeposit, transactionResult, transactionId } =\n useDepositFlow();\n const { nord } = useN1WalletContext();\n const { context } = useOnboardingState();\n const [isContinueEnabled] = useState(true);\n const [tokenSymbol, setTokenSymbol] = useState(\"USDC\");\n const [copiedAddress, setCopiedAddress] = useState(false);\n const [showCopyTooltip, setShowCopyTooltip] = useState(false);\n\n const fallbackTransaction = transactionResult ?? {\n success: true,\n transactionId: transactionId ?? \"pending-transaction\",\n amount: amount || \"0\",\n tokenSymbol: \"USDC\",\n fromAddress: \"Debug Wallet\",\n toAddress: \"Exchange Account\",\n networkName: \"Devnet\",\n status: \"Completed\",\n explorerUrl: transactionId ? getExplorerUrl(transactionId) : \"\",\n };\n\n // Get token information from Nord if available\n useEffect(() => {\n if (nord && isNordConfigured(nord)) {\n try {\n const usdcToken =\n nord.tokens.find((t) => t.symbol === \"USDC\") || nord.tokens[0];\n if (usdcToken) {\n setTokenSymbol(usdcToken.symbol);\n }\n } catch (error) {\n console.warn(\"Error getting token information from Nord:\", error);\n }\n }\n }, [nord]);\n\n // Solana transaction ID (from depositSpl)\n const solanaTransactionId =\n transactionId || fallbackTransaction.transactionId;\n const solanaTransactionIdShort = shortenAddress(solanaTransactionId, 5, 4);\n const solanaExplorerUrl = solanaTransactionId\n ? getExplorerUrl(solanaTransactionId)\n : \"\";\n\n // N1 transaction ID (could be derived from transactionResult or generated)\n // For now, using a formatted version or placeholder\n const n1TransactionId = transactionResult?.transactionId\n ? `n1_${transactionResult.transactionId.substring(0, 8)}`\n : `n1_${solanaTransactionId.substring(0, 8)}`;\n const n1TransactionIdShort = shortenAddress(n1TransactionId, 5, 4);\n // N1 explorer URL (placeholder - adjust based on actual N1 explorer)\n const n1ExplorerUrl = `https://explorer.n1.network/tx/${n1TransactionId}`;\n\n const fromAddressShort = shortenAddress(\n fallbackTransaction.fromAddress,\n 5,\n 4\n );\n const fromAddressFull = fallbackTransaction.fromAddress;\n\n // Handle copy to clipboard for wallet address\n const handleCopyAddress = async () => {\n if (!fromAddressFull || typeof navigator === \"undefined\") return;\n\n const nav = navigator as Navigator & {\n clipboard?: { writeText: (text: string) => Promise<void> };\n };\n\n if (nav.clipboard?.writeText) {\n try {\n await nav.clipboard.writeText(fromAddressFull);\n setCopiedAddress(true);\n setTimeout(() => {\n setCopiedAddress(false);\n }, 1000);\n } catch (error) {\n console.warn(\"Failed to copy address:\", error);\n }\n }\n };\n\n return (\n <div className=\"relative w-full\">\n <div className=\"flex flex-col space-y-4\">\n {/* Amount display */}\n <div className=\"w-full py-4\">\n <div className=\"flex items-center justify-center\">\n <div className=\"text-center flex items-end\">\n <div className=\"text-5xl md:text-6xl tracking-tight text-n1-ww-main font-medium\">\n {Number(amount).toLocaleString()}\n </div>\n <div className=\"h-5 inline-flex items-center justify-center border border-n1-ww-border rounded px-1 py-1 ml-2 mb-1\">\n <span className=\"text-white text-xs font-light\">\n {tokenSymbol}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n {/* Transaction details */}\n <div className=\"space-y-3 mb-4\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">Amount:</span>\n <span className=\"text-white text-xs font-light\">\n {Number(amount).toLocaleString()} {tokenSymbol}\n </span>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">Status:</span>\n <div className=\"flex items-center gap-2\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"text-n1-ww-accent-neon\"\n >\n <rect\n x=\"0.5\"\n y=\"0.5\"\n width=\"13\"\n height=\"13\"\n rx=\"6.5\"\n stroke=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.7917 4.83199L6.54647 9.9756L6.27917 10.2995L5.97635 10.0059L3.5 7.60561L4.0421 7.0879L6.21563 9.19473L10.1935 4.375L10.7917 4.83199Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n strokeWidth=\"0.5\"\n />\n </svg>\n <span className=\"text-n1-ww-accent-neon text-xs font-light\">\n {fallbackTransaction.status}\n </span>\n </div>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">From:</span>\n <div className=\"relative flex items-center gap-1 group\">\n <button\n onClick={handleCopyAddress}\n onMouseEnter={() => !copiedAddress && setShowCopyTooltip(true)}\n onMouseLeave={() => setShowCopyTooltip(false)}\n className=\"text-white text-xs font-light underline cursor-pointer hover:text-n1-ww-main transition-colors\"\n >\n {fromAddressShort}\n </button>\n {(copiedAddress || showCopyTooltip) && (\n <div\n className={`absolute top-full mt-1 left-1/2 -translate-x-1/2 px-2 py-1 bg-n1-ww-gray-800 border border-n1-ww-border rounded text-xs text-white whitespace-nowrap z-10 pointer-events-none ${\n copiedAddress\n ? \"opacity-100\"\n : showCopyTooltip\n ? \"opacity-100\"\n : \"opacity-0\"\n } transition-opacity duration-200`}\n >\n {copiedAddress ? \"Copied!\" : \"Click to copy\"}\n </div>\n )}\n </div>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">\n N1 Transaction ID:\n </span>\n <div className=\"flex items-center gap-1\">\n <span className=\"text-white text-xs font-light underline\">\n {n1TransactionIdShort}\n </span>\n {n1ExplorerUrl && (\n <a\n href={n1ExplorerUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex h-4 w-4 flex-shrink-0 items-center justify-center text-n1-ww-main hover:text-white transition-colors\"\n aria-label=\"View N1 transaction on explorer\"\n >\n <ShareIcon />\n </a>\n )}\n </div>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">\n Solana Transaction ID:\n </span>\n <div className=\"flex items-center gap-1\">\n <span className=\"text-white text-xs font-light underline\">\n {solanaTransactionIdShort}\n </span>\n {solanaExplorerUrl && (\n <a\n href={solanaExplorerUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex h-4 w-4 flex-shrink-0 items-center justify-center text-n1-ww-main hover:text-white transition-colors\"\n aria-label=\"View transaction on explorer\"\n >\n <ShareIcon />\n </a>\n )}\n </div>\n </div>\n </div>\n\n {/* Separator */}\n <div className=\"h-px bg-n1-ww-border mb-4\"></div>\n\n {/* Continue / Close button */}\n <button\n onClick={isContinueEnabled ? completeDeposit : undefined}\n disabled={!isContinueEnabled}\n className={`\n w-full h-8 rounded border bg-transparent flex font-medium items-center justify-center\n transition-all duration-200 transform\n ${\n isContinueEnabled\n ? \"border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer text-n1-ww-main\"\n : \"border-n1-ww-border opacity-50 cursor-not-allowed text-n1-ww-gray-600\"\n }\n `}\n >\n <span className=\"font-medium text-sm opacity-90\">\n {context.isDepositOnlyFlow ? \"Close\" : \"Continue\"}\n </span>\n </button>\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"05-DepositSuccessScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/05-DepositSuccessScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState } from \"react\";\nimport { useN1WalletContext } from \"../../../hooks\";\nimport { isNordConfigured, shortenAddress } from \"../utils/nordUtils\";\nimport { useDepositFlow, useOnboardingState } from \"../providers\";\nimport { getExplorerUrl } from \"../utils/transaction\";\n\n// Share icon component reused from Header.tsx\nconst ShareIcon = ({ className }: { className?: string }) => (\n <svg\n className={className || \"h-full w-full\"}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.93066 8.06944L12.3473 1.65277\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M8.06958 1.65277H12.3474V5.93055\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M10.7431 7.80207V12.3472H1.65283V3.25693H6.19797\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n\nexport function DepositSuccessScreen() {\n const { amount, completeDeposit, transactionResult, transactionId } =\n useDepositFlow();\n const { nord } = useN1WalletContext();\n const { context } = useOnboardingState();\n const [isContinueEnabled] = useState(true);\n const [tokenSymbol, setTokenSymbol] = useState(\"USDC\");\n const [copiedAddress, setCopiedAddress] = useState(false);\n const [showCopyTooltip, setShowCopyTooltip] = useState(false);\n\n const fallbackTransaction = transactionResult ?? {\n success: true,\n transactionId: transactionId ?? \"pending-transaction\",\n amount: amount || \"0\",\n tokenSymbol: \"USDC\",\n fromAddress: \"Debug Wallet\",\n toAddress: \"Exchange Account\",\n networkName: \"Devnet\",\n status: \"Completed\",\n explorerUrl: transactionId ? getExplorerUrl(transactionId) : \"\",\n };\n\n // Get token information from Nord if available\n useEffect(() => {\n if (nord && isNordConfigured(nord)) {\n try {\n const usdcToken =\n nord.tokens.find((t) => t.symbol === \"USDC\") || nord.tokens[0];\n if (usdcToken) {\n setTokenSymbol(usdcToken.symbol);\n }\n } catch (error) {\n console.warn(\"Error getting token information from Nord:\", error);\n }\n }\n }, [nord]);\n\n // Solana transaction ID (from depositSpl)\n const solanaTransactionId =\n transactionId || fallbackTransaction.transactionId;\n const solanaTransactionIdShort = shortenAddress(solanaTransactionId, 5, 4);\n const solanaExplorerUrl = solanaTransactionId\n ? getExplorerUrl(solanaTransactionId)\n : \"\";\n\n // N1 transaction ID (could be derived from transactionResult or generated)\n // For now, using a formatted version or placeholder\n const n1TransactionId = transactionResult?.transactionId\n ? `n1_${transactionResult.transactionId.substring(0, 8)}`\n : `n1_${solanaTransactionId.substring(0, 8)}`;\n const n1TransactionIdShort = shortenAddress(n1TransactionId, 5, 4);\n // N1 explorer URL (placeholder - adjust based on actual N1 explorer)\n const n1ExplorerUrl = `https://explorer.n1.network/tx/${n1TransactionId}`;\n\n const fromAddressShort = shortenAddress(\n fallbackTransaction.fromAddress,\n 5,\n 4\n );\n const fromAddressFull = fallbackTransaction.fromAddress;\n\n // Handle copy to clipboard for wallet address\n const handleCopyAddress = async () => {\n if (!fromAddressFull || typeof navigator === \"undefined\") return;\n\n const nav = navigator as Navigator & {\n clipboard?: { writeText: (text: string) => Promise<void> };\n };\n\n if (nav.clipboard?.writeText) {\n try {\n await nav.clipboard.writeText(fromAddressFull);\n setCopiedAddress(true);\n setTimeout(() => {\n setCopiedAddress(false);\n }, 1000);\n } catch (error) {\n console.warn(\"Failed to copy address:\", error);\n }\n }\n };\n\n return (\n <div className=\"relative w-full\">\n <div className=\"flex flex-col space-y-4\">\n {/* Amount display */}\n <div className=\"w-full py-4\">\n <div className=\"flex items-center justify-center\">\n <div className=\"text-center flex items-end\">\n <div className=\"text-5xl md:text-6xl tracking-tight text-n1-ww-main font-medium\">\n {Number(amount).toLocaleString()}\n </div>\n <div className=\"h-5 inline-flex items-center justify-center border border-n1-ww-border rounded px-1 py-1 ml-2 mb-1\">\n <span className=\"text-white text-xs font-light\">\n {tokenSymbol}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n {/* Transaction details */}\n <div className=\"space-y-3 mb-4\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">Amount:</span>\n <span className=\"text-white text-xs font-light\">\n {Number(amount).toLocaleString()} {tokenSymbol}\n </span>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">Status:</span>\n <div className=\"flex items-center gap-2\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"text-n1-ww-accent-neon\"\n >\n <rect\n x=\"0.5\"\n y=\"0.5\"\n width=\"13\"\n height=\"13\"\n rx=\"6.5\"\n stroke=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10.7917 4.83199L6.54647 9.9756L6.27917 10.2995L5.97635 10.0059L3.5 7.60561L4.0421 7.0879L6.21563 9.19473L10.1935 4.375L10.7917 4.83199Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n strokeWidth=\"0.5\"\n />\n </svg>\n <span className=\"text-n1-ww-accent-neon text-xs font-light\">\n {fallbackTransaction.status}\n </span>\n </div>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">From:</span>\n <div className=\"relative flex items-center gap-1 group\">\n <button\n onClick={handleCopyAddress}\n onMouseEnter={() => !copiedAddress && setShowCopyTooltip(true)}\n onMouseLeave={() => setShowCopyTooltip(false)}\n className=\"text-white text-xs font-light underline cursor-pointer hover:text-n1-ww-main transition-colors\"\n >\n {fromAddressShort}\n </button>\n {(copiedAddress || showCopyTooltip) && (\n <div\n className={`absolute top-full mt-1 left-1/2 -translate-x-1/2 px-2 py-1 bg-n1-ww-gray-800 border border-n1-ww-border rounded text-xs text-white whitespace-nowrap z-10 pointer-events-none ${\n copiedAddress\n ? \"opacity-100\"\n : showCopyTooltip\n ? \"opacity-100\"\n : \"opacity-0\"\n } transition-opacity duration-200`}\n >\n {copiedAddress ? \"Copied!\" : \"Click to copy\"}\n </div>\n )}\n </div>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">\n N1 Transaction ID:\n </span>\n <div className=\"flex items-center gap-1\">\n <span className=\"text-white text-xs font-light underline\">\n {n1TransactionIdShort}\n </span>\n {n1ExplorerUrl && (\n <a\n href={n1ExplorerUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex h-4 w-4 flex-shrink-0 items-center justify-center text-n1-ww-main hover:text-white transition-colors\"\n aria-label=\"View N1 transaction on explorer\"\n >\n <ShareIcon />\n </a>\n )}\n </div>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white text-xs font-light\">\n Solana Transaction ID:\n </span>\n <div className=\"flex items-center gap-1\">\n <span className=\"text-white text-xs font-light underline\">\n {solanaTransactionIdShort}\n </span>\n {solanaExplorerUrl && (\n <a\n href={solanaExplorerUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex h-4 w-4 flex-shrink-0 items-center justify-center text-n1-ww-main hover:text-white transition-colors\"\n aria-label=\"View transaction on explorer\"\n >\n <ShareIcon />\n </a>\n )}\n </div>\n </div>\n </div>\n\n {/* Separator */}\n <div className=\"h-px bg-n1-ww-border mb-4\"></div>\n\n {/* Continue / Close button */}\n <button\n onClick={isContinueEnabled ? completeDeposit : undefined}\n disabled={!isContinueEnabled}\n className={`\n w-full h-8 rounded border bg-transparent flex font-medium items-center justify-center\n transition-all duration-200 transform\n ${\n isContinueEnabled\n ? \"border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer text-n1-ww-main\"\n : \"border-n1-ww-border opacity-50 cursor-not-allowed text-n1-ww-gray-600\"\n }\n `}\n >\n <span className=\"font-medium text-sm opacity-90\">\n {context.isDepositOnlyFlow ? \"Close\" : \"Continue\"}\n </span>\n </button>\n </div>\n </div>\n );\n}\n"]}
@@ -1,16 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AuthLoadingScreen = AuthLoadingScreen;
4
- var jsx_runtime_1 = require("react/jsx-runtime");
5
- var react_1 = require("react");
6
- var providers_1 = require("../providers");
7
- var WaitingMessage_1 = require("../components/WaitingMessage");
8
- function AuthLoadingScreen() {
9
- var _a = (0, react_1.useState)(false), isHovered = _a[0], setIsHovered = _a[1];
10
- var authInitiatedRef = (0, react_1.useRef)(false);
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from 'react';
3
+ import { useDepositFlow } from '../providers';
4
+ import { WaitingMessage } from '../components/WaitingMessage';
5
+ export function AuthLoadingScreen() {
6
+ var _a = useState(false), isHovered = _a[0], setIsHovered = _a[1];
7
+ var authInitiatedRef = useRef(false);
11
8
  // Get auth-related state and functions from the deposit flow context
12
- var _b = (0, providers_1.useDepositFlow)(), performAuth = _b.performAuth, authStatus = _b.authStatus, authErrorMessage = _b.authErrorMessage, authStatusMessage = _b.authStatusMessage;
13
- (0, react_1.useEffect)(function () {
9
+ var _b = useDepositFlow(), performAuth = _b.performAuth, authStatus = _b.authStatus, authErrorMessage = _b.authErrorMessage, authStatusMessage = _b.authStatusMessage;
10
+ useEffect(function () {
14
11
  if (!authInitiatedRef.current) {
15
12
  authInitiatedRef.current = true;
16
13
  performAuth();
@@ -27,7 +24,7 @@ function AuthLoadingScreen() {
27
24
  subtitle: authStatusMessage || 'Please wait while we create your Nord account',
28
25
  isTyping: false,
29
26
  };
30
- return ((0, jsx_runtime_1.jsx)("div", { className: "overflow-hidden relative", children: authStatus !== 'error' ? ((0, jsx_runtime_1.jsx)(WaitingMessage_1.WaitingMessage, { loaderSize: 52, message: loadingMessage })) : ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-center text-center space-y-2 ", children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-xl text-white font-semibold", children: "Authentication Failed" }), (0, jsx_runtime_1.jsx)("p", { className: "text-sm text-neutral-400", children: "There was an error during authentication. Please try again." }), authErrorMessage && ((0, jsx_runtime_1.jsx)("p", { className: "text-xs text-red-400", children: authErrorMessage })), (0, jsx_runtime_1.jsx)("div", { className: "pt-4 w-full", children: (0, jsx_runtime_1.jsx)("button", { onClick: handleRetry, onMouseEnter: function () { return setIsHovered(true); }, onMouseLeave: function () { return setIsHovered(false); }, className: "\n w-full h-8 rounded border bg-transparent flex items-center justify-center font-medium text-sm\n transition-all duration-200 transform\n border-n1-ww-main text-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer\n ", style: {
27
+ return (_jsx("div", { className: "overflow-hidden relative", children: authStatus !== 'error' ? (_jsx(WaitingMessage, { loaderSize: 52, message: loadingMessage })) : (_jsxs("div", { className: "flex flex-col items-center text-center space-y-2 ", children: [_jsx("h3", { className: "text-xl text-white font-semibold", children: "Authentication Failed" }), _jsx("p", { className: "text-sm text-neutral-400", children: "There was an error during authentication. Please try again." }), authErrorMessage && (_jsx("p", { className: "text-xs text-red-400", children: authErrorMessage })), _jsx("div", { className: "pt-4 w-full", children: _jsx("button", { onClick: handleRetry, onMouseEnter: function () { return setIsHovered(true); }, onMouseLeave: function () { return setIsHovered(false); }, className: "\n w-full h-8 rounded border bg-transparent flex items-center justify-center font-medium text-sm\n transition-all duration-200 transform\n border-n1-ww-main text-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer\n ", style: {
31
28
  transform: isHovered ? 'scale(0.99)' : 'scale(1)',
32
29
  }, children: "Try Again" }) })] })) }));
33
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"06-AuthLoadingScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/06-AuthLoadingScreen.tsx"],"names":[],"mappings":";;AAIA,8CAqEC;;AAzED,+BAAoD;AACpD,0CAA8C;AAC9C,+DAA8D;AAE9D,SAAgB,iBAAiB;IACzB,IAAA,KAA4B,IAAA,gBAAQ,EAAU,KAAK,CAAC,EAAnD,SAAS,QAAA,EAAE,YAAY,QAA4B,CAAC;IAC3D,IAAM,gBAAgB,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IAEvC,qEAAqE;IAC/D,IAAA,KAKF,IAAA,0BAAc,GAAE,EAJlB,WAAW,iBAAA,EACX,UAAU,gBAAA,EACV,gBAAgB,sBAAA,EAChB,iBAAiB,uBACC,CAAC;IAErB,IAAA,iBAAS,EAAC;QACR,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;YAChC,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,IAAM,WAAW,GAAG;QAClB,iCAAiC;QACjC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;QACjC,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG;QACrB,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EACN,iBAAiB,IAAI,+CAA+C;QACtE,QAAQ,EAAE,KAAK;KAChB,CAAC;IAEF,OAAO,CACL,gCAAK,SAAS,EAAC,0BAA0B,YACtC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CACxB,uBAAC,+BAAc,IAAC,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,GAAI,CAC5D,CAAC,CAAC,CAAC,CACF,iCAAK,SAAS,EAAC,mDAAmD,aAChE,+BAAI,SAAS,EAAC,kCAAkC,sCAE3C,EACL,8BAAG,SAAS,EAAC,0BAA0B,4EAEnC,EACH,gBAAgB,IAAI,CACnB,8BAAG,SAAS,EAAC,sBAAsB,YAAE,gBAAgB,GAAK,CAC3D,EACD,gCAAK,SAAS,EAAC,aAAa,YAC1B,mCACE,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,KAAK,CAAC,EAAnB,CAAmB,EACvC,SAAS,EAAE,0RAIR,EACH,KAAK,EAAE;4BACL,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU;yBAClD,0BAGM,GACL,IACF,CACP,GACG,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useDepositFlow } from '../providers';\nimport { WaitingMessage } from '../components/WaitingMessage';\n\nexport function AuthLoadingScreen() {\n const [isHovered, setIsHovered] = useState<boolean>(false);\n const authInitiatedRef = useRef(false);\n \n // Get auth-related state and functions from the deposit flow context\n const { \n performAuth,\n authStatus, \n authErrorMessage, \n authStatusMessage\n } = useDepositFlow();\n\n useEffect(() => {\n if (!authInitiatedRef.current) {\n authInitiatedRef.current = true;\n performAuth();\n }\n }, [performAuth]);\n\n const handleRetry = () => {\n // Reset and retry authentication\n authInitiatedRef.current = false;\n performAuth();\n };\n\n const loadingMessage = {\n visible: true,\n title: 'Authenticating',\n subtitle:\n authStatusMessage || 'Please wait while we create your Nord account',\n isTyping: false,\n };\n\n return (\n <div className=\"overflow-hidden relative\">\n {authStatus !== 'error' ? (\n <WaitingMessage loaderSize={52} message={loadingMessage} />\n ) : (\n <div className=\"flex flex-col items-center text-center space-y-2 \">\n <h3 className=\"text-xl text-white font-semibold\">\n Authentication Failed\n </h3>\n <p className=\"text-sm text-neutral-400\">\n There was an error during authentication. Please try again.\n </p>\n {authErrorMessage && (\n <p className=\"text-xs text-red-400\">{authErrorMessage}</p>\n )}\n <div className=\"pt-4 w-full\">\n <button\n onClick={handleRetry}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n className={`\n w-full h-8 rounded border bg-transparent flex items-center justify-center font-medium text-sm\n transition-all duration-200 transform\n border-n1-ww-main text-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer\n `}\n style={{\n transform: isHovered ? 'scale(0.99)' : 'scale(1)',\n }}\n >\n Try Again\n </button>\n </div>\n </div>\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"06-AuthLoadingScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/06-AuthLoadingScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,UAAU,iBAAiB;IACzB,IAAA,KAA4B,QAAQ,CAAU,KAAK,CAAC,EAAnD,SAAS,QAAA,EAAE,YAAY,QAA4B,CAAC;IAC3D,IAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvC,qEAAqE;IAC/D,IAAA,KAKF,cAAc,EAAE,EAJlB,WAAW,iBAAA,EACX,UAAU,gBAAA,EACV,gBAAgB,sBAAA,EAChB,iBAAiB,uBACC,CAAC;IAErB,SAAS,CAAC;QACR,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;YAChC,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,IAAM,WAAW,GAAG;QAClB,iCAAiC;QACjC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;QACjC,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG;QACrB,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EACN,iBAAiB,IAAI,+CAA+C;QACtE,QAAQ,EAAE,KAAK;KAChB,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,0BAA0B,YACtC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CACxB,KAAC,cAAc,IAAC,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,GAAI,CAC5D,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAC,mDAAmD,aAChE,aAAI,SAAS,EAAC,kCAAkC,sCAE3C,EACL,YAAG,SAAS,EAAC,0BAA0B,4EAEnC,EACH,gBAAgB,IAAI,CACnB,YAAG,SAAS,EAAC,sBAAsB,YAAE,gBAAgB,GAAK,CAC3D,EACD,cAAK,SAAS,EAAC,aAAa,YAC1B,iBACE,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACtC,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,KAAK,CAAC,EAAnB,CAAmB,EACvC,SAAS,EAAE,0RAIR,EACH,KAAK,EAAE;4BACL,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU;yBAClD,0BAGM,GACL,IACF,CACP,GACG,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useDepositFlow } from '../providers';\nimport { WaitingMessage } from '../components/WaitingMessage';\n\nexport function AuthLoadingScreen() {\n const [isHovered, setIsHovered] = useState<boolean>(false);\n const authInitiatedRef = useRef(false);\n \n // Get auth-related state and functions from the deposit flow context\n const { \n performAuth,\n authStatus, \n authErrorMessage, \n authStatusMessage\n } = useDepositFlow();\n\n useEffect(() => {\n if (!authInitiatedRef.current) {\n authInitiatedRef.current = true;\n performAuth();\n }\n }, [performAuth]);\n\n const handleRetry = () => {\n // Reset and retry authentication\n authInitiatedRef.current = false;\n performAuth();\n };\n\n const loadingMessage = {\n visible: true,\n title: 'Authenticating',\n subtitle:\n authStatusMessage || 'Please wait while we create your Nord account',\n isTyping: false,\n };\n\n return (\n <div className=\"overflow-hidden relative\">\n {authStatus !== 'error' ? (\n <WaitingMessage loaderSize={52} message={loadingMessage} />\n ) : (\n <div className=\"flex flex-col items-center text-center space-y-2 \">\n <h3 className=\"text-xl text-white font-semibold\">\n Authentication Failed\n </h3>\n <p className=\"text-sm text-neutral-400\">\n There was an error during authentication. Please try again.\n </p>\n {authErrorMessage && (\n <p className=\"text-xs text-red-400\">{authErrorMessage}</p>\n )}\n <div className=\"pt-4 w-full\">\n <button\n onClick={handleRetry}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n className={`\n w-full h-8 rounded border bg-transparent flex items-center justify-center font-medium text-sm\n transition-all duration-200 transform\n border-n1-ww-main text-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer\n `}\n style={{\n transform: isHovered ? 'scale(0.99)' : 'scale(1)',\n }}\n >\n Try Again\n </button>\n </div>\n </div>\n )}\n </div>\n );\n}\n"]}
@@ -1,17 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ErrorScreen = ErrorScreen;
4
- var jsx_runtime_1 = require("react/jsx-runtime");
5
- var react_1 = require("react");
6
- var providers_1 = require("../providers");
7
- function ErrorScreen() {
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ import { useOnboardingState } from '../providers';
4
+ export function ErrorScreen() {
8
5
  var _a;
9
- var _b = (0, providers_1.useOnboardingState)(), context = _b.context, actions = _b.actions;
6
+ var _b = useOnboardingState(), context = _b.context, actions = _b.actions;
10
7
  var message = ((_a = context.error) === null || _a === void 0 ? void 0 : _a.message) ||
11
8
  'Something went wrong while preparing Nord. Please try again.';
12
- var handleRetry = (0, react_1.useCallback)(function () {
9
+ var handleRetry = useCallback(function () {
13
10
  actions.resetFlow();
14
11
  }, [actions]);
15
- return ((0, jsx_runtime_1.jsx)("div", { className: "overflow-hidden relative", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-center text-center space-y-4", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex h-14 w-14 items-center justify-center rounded-full border border-n1-ww-border bg-n1-ww-gray-600/70 text-n1-ww-main shadow-[0_0_25px_rgba(255,68,26,0.18)]", children: (0, jsx_runtime_1.jsxs)("svg", { width: "28", height: "28", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "opacity-90", children: [(0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "1.5" }), (0, jsx_runtime_1.jsx)("path", { d: "M9 9L15 15M15 9L9 15", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })] }) }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-1 max-w-[280px]", children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-base font-medium text-white tracking-tight", children: "Unable to Continue" }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs text-white/70 leading-relaxed", children: message })] }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleRetry, className: "w-full h-8 rounded border border-n1-ww-main bg-transparent flex font-medium items-center justify-center text-sm text-n1-ww-main transition-all duration-200 transform hover:bg-n1-ww-gray-900 cursor-pointer", children: "Try Again" })] }) }));
12
+ return (_jsx("div", { className: "overflow-hidden relative", children: _jsxs("div", { className: "flex flex-col items-center text-center space-y-4", children: [_jsx("div", { className: "flex h-14 w-14 items-center justify-center rounded-full border border-n1-ww-border bg-n1-ww-gray-600/70 text-n1-ww-main shadow-[0_0_25px_rgba(255,68,26,0.18)]", children: _jsxs("svg", { width: "28", height: "28", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "opacity-90", children: [_jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "1.5" }), _jsx("path", { d: "M9 9L15 15M15 9L9 15", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })] }) }), _jsxs("div", { className: "space-y-1 max-w-[280px]", children: [_jsx("h3", { className: "text-base font-medium text-white tracking-tight", children: "Unable to Continue" }), _jsx("p", { className: "text-xs text-white/70 leading-relaxed", children: message })] }), _jsx("button", { type: "button", onClick: handleRetry, className: "w-full h-8 rounded border border-n1-ww-main bg-transparent flex font-medium items-center justify-center text-sm text-n1-ww-main transition-all duration-200 transform hover:bg-n1-ww-gray-900 cursor-pointer", children: "Try Again" })] }) }));
16
13
  }
17
14
  //# sourceMappingURL=07-ErrorScreen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"07-ErrorScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/07-ErrorScreen.tsx"],"names":[],"mappings":";;AAGA,kCAgDC;;AAnDD,+BAAoC;AACpC,0CAAkD;AAElD,SAAgB,WAAW;;IACnB,IAAA,KAAuB,IAAA,8BAAkB,GAAE,EAAzC,OAAO,aAAA,EAAE,OAAO,aAAyB,CAAC;IAElD,IAAM,OAAO,GACX,CAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,OAAO;QACtB,8DAA8D,CAAC;IAEjE,IAAM,WAAW,GAAG,IAAA,mBAAW,EAAC;QAC9B,OAAO,CAAC,SAAS,EAAE,CAAC;IACtB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,gCAAK,SAAS,EAAC,0BAA0B,YACvC,iCAAK,SAAS,EAAC,kDAAkD,aAC/D,gCAAK,SAAS,EAAC,gKAAgK,YAC7K,iCACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAClC,SAAS,EAAC,YAAY,aAEtB,mCAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,GAAG,EACxE,iCACE,CAAC,EAAC,sBAAsB,EACxB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,GACrB,IACE,GACF,EACN,iCAAK,SAAS,EAAC,yBAAyB,aACtC,+BAAI,SAAS,EAAC,iDAAiD,mCAE1D,EACL,8BAAG,SAAS,EAAC,uCAAuC,YAAE,OAAO,GAAK,IAC9D,EACN,mCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,WAAW,EACpB,SAAS,EAAC,8MAA8M,0BAGjN,IACL,GACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useCallback } from 'react';\nimport { useOnboardingState } from '../providers';\n\nexport function ErrorScreen() {\n const { context, actions } = useOnboardingState();\n\n const message =\n context.error?.message ||\n 'Something went wrong while preparing Nord. Please try again.';\n\n const handleRetry = useCallback(() => {\n actions.resetFlow();\n }, [actions]);\n\n return (\n <div className=\"overflow-hidden relative\">\n <div className=\"flex flex-col items-center text-center space-y-4\">\n <div className=\"flex h-14 w-14 items-center justify-center rounded-full border border-n1-ww-border bg-n1-ww-gray-600/70 text-n1-ww-main shadow-[0_0_25px_rgba(255,68,26,0.18)]\">\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"opacity-90\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M9 9L15 15M15 9L9 15\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n </div>\n <div className=\"space-y-1 max-w-[280px]\">\n <h3 className=\"text-base font-medium text-white tracking-tight\">\n Unable to Continue\n </h3>\n <p className=\"text-xs text-white/70 leading-relaxed\">{message}</p>\n </div>\n <button\n type=\"button\"\n onClick={handleRetry}\n className=\"w-full h-8 rounded border border-n1-ww-main bg-transparent flex font-medium items-center justify-center text-sm text-n1-ww-main transition-all duration-200 transform hover:bg-n1-ww-gray-900 cursor-pointer\"\n >\n Try Again\n </button>\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"07-ErrorScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/07-ErrorScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,UAAU,WAAW;;IACnB,IAAA,KAAuB,kBAAkB,EAAE,EAAzC,OAAO,aAAA,EAAE,OAAO,aAAyB,CAAC;IAElD,IAAM,OAAO,GACX,CAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,OAAO;QACtB,8DAA8D,CAAC;IAEjE,IAAM,WAAW,GAAG,WAAW,CAAC;QAC9B,OAAO,CAAC,SAAS,EAAE,CAAC;IACtB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,cAAK,SAAS,EAAC,0BAA0B,YACvC,eAAK,SAAS,EAAC,kDAAkD,aAC/D,cAAK,SAAS,EAAC,gKAAgK,YAC7K,eACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAClC,SAAS,EAAC,YAAY,aAEtB,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,GAAG,EACxE,eACE,CAAC,EAAC,sBAAsB,EACxB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,GACrB,IACE,GACF,EACN,eAAK,SAAS,EAAC,yBAAyB,aACtC,aAAI,SAAS,EAAC,iDAAiD,mCAE1D,EACL,YAAG,SAAS,EAAC,uCAAuC,YAAE,OAAO,GAAK,IAC9D,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,WAAW,EACpB,SAAS,EAAC,8MAA8M,0BAGjN,IACL,GACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useCallback } from 'react';\nimport { useOnboardingState } from '../providers';\n\nexport function ErrorScreen() {\n const { context, actions } = useOnboardingState();\n\n const message =\n context.error?.message ||\n 'Something went wrong while preparing Nord. Please try again.';\n\n const handleRetry = useCallback(() => {\n actions.resetFlow();\n }, [actions]);\n\n return (\n <div className=\"overflow-hidden relative\">\n <div className=\"flex flex-col items-center text-center space-y-4\">\n <div className=\"flex h-14 w-14 items-center justify-center rounded-full border border-n1-ww-border bg-n1-ww-gray-600/70 text-n1-ww-main shadow-[0_0_25px_rgba(255,68,26,0.18)]\">\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"opacity-90\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M9 9L15 15M15 9L9 15\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n </div>\n <div className=\"space-y-1 max-w-[280px]\">\n <h3 className=\"text-base font-medium text-white tracking-tight\">\n Unable to Continue\n </h3>\n <p className=\"text-xs text-white/70 leading-relaxed\">{message}</p>\n </div>\n <button\n type=\"button\"\n onClick={handleRetry}\n className=\"w-full h-8 rounded border border-n1-ww-main bg-transparent flex font-medium items-center justify-center text-sm text-n1-ww-main transition-all duration-200 transform hover:bg-n1-ww-gray-900 cursor-pointer\"\n >\n Try Again\n </button>\n </div>\n </div>\n );\n}\n"]}
@@ -1,24 +1,8 @@
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("./01-ConnectWalletScreen"), exports);
18
- __exportStar(require("./02-ChainSelectionScreen"), exports);
19
- __exportStar(require("./03-AmountInputScreen"), exports);
20
- __exportStar(require("./04-DepositProgressScreen"), exports);
21
- __exportStar(require("./05-DepositSuccessScreen"), exports);
22
- __exportStar(require("./06-AuthLoadingScreen"), exports);
23
- __exportStar(require("./07-ErrorScreen"), exports);
1
+ export * from './01-ConnectWalletScreen';
2
+ export * from './02-ChainSelectionScreen';
3
+ export * from './03-AmountInputScreen';
4
+ export * from './04-DepositProgressScreen';
5
+ export * from './05-DepositSuccessScreen';
6
+ export * from './06-AuthLoadingScreen';
7
+ export * from './07-ErrorScreen';
24
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,4DAA0C;AAC1C,yDAAuC;AACvC,6DAA2C;AAC3C,4DAA0C;AAC1C,yDAAuC;AACvC,mDAAiC","sourcesContent":["export * from './01-ConnectWalletScreen';\nexport * from './02-ChainSelectionScreen';\nexport * from './03-AmountInputScreen';\nexport * from './04-DepositProgressScreen';\nexport * from './05-DepositSuccessScreen';\nexport * from './06-AuthLoadingScreen';\nexport * from './07-ErrorScreen';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './01-ConnectWalletScreen';\nexport * from './02-ChainSelectionScreen';\nexport * from './03-AmountInputScreen';\nexport * from './04-DepositProgressScreen';\nexport * from './05-DepositSuccessScreen';\nexport * from './06-AuthLoadingScreen';\nexport * from './07-ErrorScreen';\n"]}
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initialOnboardingContext = exports.OnboardingStep = void 0;
4
1
  /**
5
2
  * Shared types for the onboarding flow state machine
6
3
  */
7
4
  /**
8
5
  * Enum representing all possible states in the onboarding flow
9
6
  */
10
- var OnboardingStep;
7
+ export var OnboardingStep;
11
8
  (function (OnboardingStep) {
12
9
  OnboardingStep["CONNECTING_WALLET"] = "CONNECTING_WALLET";
13
10
  OnboardingStep["CHAIN_SELECTION"] = "CHAIN_SELECTION";
@@ -17,11 +14,11 @@ var OnboardingStep;
17
14
  OnboardingStep["AUTH_LOADING"] = "AUTH_LOADING";
18
15
  OnboardingStep["FINAL_SUCCESS"] = "FINAL_SUCCESS";
19
16
  OnboardingStep["ERROR"] = "ERROR";
20
- })(OnboardingStep || (exports.OnboardingStep = OnboardingStep = {}));
17
+ })(OnboardingStep || (OnboardingStep = {}));
21
18
  /**
22
19
  * Initial onboarding context with default values
23
20
  */
24
- exports.initialOnboardingContext = {
21
+ export var initialOnboardingContext = {
25
22
  hasNordAccount: false,
26
23
  hasActiveSession: false,
27
24
  selectedChain: null,