@n1xyz/wallet-widget 0.0.35-alpha.2 → 0.0.35-alpha.20

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 (608) hide show
  1. package/dist/adapters/evm.js.map +1 -0
  2. package/dist/adapters/factory.js.map +1 -0
  3. package/dist/adapters/index.js.map +1 -0
  4. package/dist/adapters/solana.js.map +1 -0
  5. package/dist/adapters/types.js.map +1 -0
  6. package/dist/animations/N1Loader.js.map +1 -0
  7. package/dist/animations/Processing.js.map +1 -0
  8. package/dist/bridge-assist/cctp-solana.d.ts +1 -0
  9. package/dist/bridge-assist/cctp-solana.js +12 -6
  10. package/dist/bridge-assist/cctp-solana.js.map +1 -1
  11. package/dist/components/LoadingFallback.js.map +1 -0
  12. package/dist/components/Logo.js.map +1 -0
  13. package/dist/components/N1ConnectButton.js.map +1 -0
  14. package/dist/components/logos/ArbitrumLogo.js.map +1 -0
  15. package/dist/components/logos/BaseLogo.js.map +1 -0
  16. package/dist/components/logos/BeraLogo.js.map +1 -0
  17. package/dist/components/logos/BitcoinLogo.js.map +1 -0
  18. package/dist/components/logos/EthereumLogo.js.map +1 -0
  19. package/dist/components/logos/HyperliquidLogo.js.map +1 -0
  20. package/dist/components/logos/OptimismLogo.js.map +1 -0
  21. package/dist/components/logos/SolanaLogo.js.map +1 -0
  22. package/dist/components/logos/ZeroOneLogo.js.map +1 -0
  23. package/dist/components/logos/index.js.map +1 -0
  24. package/dist/{src/config → config}/chains.js +45 -15
  25. package/dist/config/chains.js.map +1 -0
  26. package/dist/config/dynamic.js.map +1 -0
  27. package/dist/config/solana.js.map +1 -0
  28. package/dist/config/turnkey.js.map +1 -0
  29. package/dist/context/n1-wallet-context.js.map +1 -0
  30. package/dist/errors/types.js.map +1 -0
  31. package/dist/features/onboarding-flow/N1WalletModal.js.map +1 -0
  32. package/dist/features/onboarding-flow/OnboardingFlow.js.map +1 -0
  33. package/dist/{src/features → features}/onboarding-flow/bridge-assist/client.js +0 -1
  34. package/dist/features/onboarding-flow/bridge-assist/client.js.map +1 -0
  35. package/dist/features/onboarding-flow/bridge-assist/config.js.map +1 -0
  36. package/dist/features/onboarding-flow/bridge-assist/index.js.map +1 -0
  37. package/dist/features/onboarding-flow/bridge-assist/types.js.map +1 -0
  38. package/dist/{src/features → features}/onboarding-flow/cctp/bridgeKitClient.d.ts +1 -0
  39. package/dist/{src/features → features}/onboarding-flow/cctp/bridgeKitClient.js +71 -12
  40. package/dist/features/onboarding-flow/cctp/bridgeKitClient.js.map +1 -0
  41. package/dist/features/onboarding-flow/cctp/clientFactory.js.map +1 -0
  42. package/dist/features/onboarding-flow/cctp/config.js.map +1 -0
  43. package/dist/features/onboarding-flow/cctp/mockCctpClient.js.map +1 -0
  44. package/dist/{src/features → features}/onboarding-flow/cctp/solanaClaim.d.ts +1 -1
  45. package/dist/features/onboarding-flow/cctp/solanaClaim.js +2 -0
  46. package/dist/features/onboarding-flow/cctp/solanaClaim.js.map +1 -0
  47. package/dist/features/onboarding-flow/cctp/types.js.map +1 -0
  48. package/dist/features/onboarding-flow/components/ChainButton.js.map +1 -0
  49. package/dist/features/onboarding-flow/components/Header.js.map +1 -0
  50. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -0
  51. package/dist/{src/features → features}/onboarding-flow/components/TransactionTable.js +6 -1
  52. package/dist/features/onboarding-flow/components/TransactionTable.js.map +1 -0
  53. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +1 -0
  54. package/dist/features/onboarding-flow/components/index.js.map +1 -0
  55. package/dist/features/onboarding-flow/errors/depositError.js.map +1 -0
  56. package/dist/{src/features → features}/onboarding-flow/hooks/useBridgeDeposit.js +60 -15
  57. package/dist/features/onboarding-flow/hooks/useBridgeDeposit.js.map +1 -0
  58. package/dist/features/onboarding-flow/hooks/useDepositAuth.js.map +1 -0
  59. package/dist/features/onboarding-flow/hooks/useDepositHydration.js.map +1 -0
  60. package/dist/{src/features → features}/onboarding-flow/hooks/usePendingDepositState.js +27 -2
  61. package/dist/features/onboarding-flow/hooks/usePendingDepositState.js.map +1 -0
  62. package/dist/{src/features → features}/onboarding-flow/hooks/useSolanaDeposit.js +1 -1
  63. package/dist/features/onboarding-flow/hooks/useSolanaDeposit.js.map +1 -0
  64. package/dist/features/onboarding-flow/index.js.map +1 -0
  65. package/dist/{src/features → features}/onboarding-flow/providers/DepositFlowProvider.js +9 -4
  66. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -0
  67. package/dist/{src/features → features}/onboarding-flow/providers/OnboardingStateProvider.js +2 -4
  68. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -0
  69. package/dist/features/onboarding-flow/providers/StateProvider.js.map +1 -0
  70. package/dist/{src/features → features}/onboarding-flow/providers/WalletConnectionProvider.js +136 -74
  71. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -0
  72. package/dist/{src/features → features}/onboarding-flow/providers/debug.js +14 -1
  73. package/dist/features/onboarding-flow/providers/debug.js.map +1 -0
  74. package/dist/features/onboarding-flow/providers/index.js.map +1 -0
  75. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -0
  76. package/dist/features/onboarding-flow/screens/00-EntrySelectionScreen.js.map +1 -0
  77. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -0
  78. package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +1 -0
  79. package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +1 -0
  80. package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +1 -0
  81. package/dist/{src/features → features}/onboarding-flow/screens/05-AmountInputScreen.d.ts +1 -1
  82. package/dist/{src/features → features}/onboarding-flow/screens/05-AmountInputScreen.js +25 -6
  83. package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js.map +1 -0
  84. package/dist/{src/features → features}/onboarding-flow/screens/06-DepositProgressScreen.js +12 -21
  85. package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +1 -0
  86. package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +1 -0
  87. package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +1 -0
  88. package/dist/features/onboarding-flow/screens/09-ErrorScreen.js.map +1 -0
  89. package/dist/features/onboarding-flow/screens/index.js.map +1 -0
  90. package/dist/features/onboarding-flow/turnkey/turnkeySessionMachine.js.map +1 -0
  91. package/dist/features/onboarding-flow/types.js.map +1 -0
  92. package/dist/features/onboarding-flow/utils/bridgeUtils.js.map +1 -0
  93. package/dist/features/onboarding-flow/utils/deposit/attestationUtils.js.map +1 -0
  94. package/dist/features/onboarding-flow/utils/deposit/bridgeUtils.js.map +1 -0
  95. package/dist/{src/features → features}/onboarding-flow/utils/deposit/claimConfirmation.js +41 -7
  96. package/dist/features/onboarding-flow/utils/deposit/claimConfirmation.js.map +1 -0
  97. package/dist/{src/features → features}/onboarding-flow/utils/deposit/claimSubmission.d.ts +1 -1
  98. package/dist/{src/features → features}/onboarding-flow/utils/deposit/claimSubmission.js +58 -37
  99. package/dist/features/onboarding-flow/utils/deposit/claimSubmission.js.map +1 -0
  100. package/dist/features/onboarding-flow/utils/deposit/depositPolling.js.map +1 -0
  101. package/dist/features/onboarding-flow/utils/deposit/evmTxInterceptor.js.map +1 -0
  102. package/dist/features/onboarding-flow/utils/deposit/nonceUtils.js.map +1 -0
  103. package/dist/{src/features → features}/onboarding-flow/utils/deposit/solanaDepositTransaction.d.ts +2 -1
  104. package/dist/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js +14 -0
  105. package/dist/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js.map +1 -0
  106. package/dist/features/onboarding-flow/utils/deposit/solanaUtils.js.map +1 -0
  107. package/dist/features/onboarding-flow/utils/deposit/storage.js.map +1 -0
  108. package/dist/features/onboarding-flow/utils/deposit/walletUtils.js.map +1 -0
  109. package/dist/features/onboarding-flow/utils/depositPolling.js.map +1 -0
  110. package/dist/features/onboarding-flow/utils/explorerUrl.js.map +1 -0
  111. package/dist/features/onboarding-flow/utils/nordUtils.js.map +1 -0
  112. package/dist/features/onboarding-flow/utils/pendingDepositCookie.js.map +1 -0
  113. package/dist/features/onboarding-flow/utils/pendingDepositStorage.js.map +1 -0
  114. package/dist/features/onboarding-flow/utils/utils.js.map +1 -0
  115. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -0
  116. package/dist/hooks/index.js.map +1 -0
  117. package/dist/hooks/useN1Wallet.js.map +1 -0
  118. package/dist/hooks/useNordUserInitialization.js.map +1 -0
  119. package/dist/index.js.map +1 -0
  120. package/dist/main.css +1 -1
  121. package/dist/{src/providers → providers}/LazyWalletProvider.js +105 -57
  122. package/dist/providers/LazyWalletProvider.js.map +1 -0
  123. package/dist/providers/N1WalletProvider/ContextBridge.js.map +1 -0
  124. package/dist/providers/N1WalletProvider/ModalProvider.js.map +1 -0
  125. package/dist/providers/N1WalletProvider/NetworkProvider.js.map +1 -0
  126. package/dist/providers/N1WalletProvider/SessionProvider.js.map +1 -0
  127. package/dist/providers/N1WalletProvider/SigningProvider.js.map +1 -0
  128. package/dist/providers/N1WalletProvider/ThemingProvider.js.map +1 -0
  129. package/dist/providers/N1WalletProvider/index.js.map +1 -0
  130. package/dist/providers/N1WalletProvider.js.map +1 -0
  131. package/dist/providers/ShadowRootWrapper.js.map +1 -0
  132. package/dist/providers/WalletErrorBoundary.js.map +1 -0
  133. package/dist/services/bootstrap/DepositRecoveryService.js.map +1 -0
  134. package/dist/services/bootstrap/DynamicSdkService.js.map +1 -0
  135. package/dist/services/bootstrap/SessionBootstrapService.js.map +1 -0
  136. package/dist/services/bootstrap/TurnkeyBootstrapService.js.map +1 -0
  137. package/dist/services/bootstrap/index.js.map +1 -0
  138. package/dist/services/bootstrap/types.js.map +1 -0
  139. package/dist/services/storage/StorageService.js.map +1 -0
  140. package/dist/services/storage/index.js.map +1 -0
  141. package/dist/services/storage/keys.js.map +1 -0
  142. package/dist/services/storage/types.js.map +1 -0
  143. package/dist/store/index.js.map +1 -0
  144. package/dist/store/selectors.js.map +1 -0
  145. package/dist/store/slices/bootstrapSlice.js.map +1 -0
  146. package/dist/store/slices/configSlice.js.map +1 -0
  147. package/dist/store/slices/index.js.map +1 -0
  148. package/dist/store/slices/sessionSlice.js.map +1 -0
  149. package/dist/store/slices/signingSlice.js.map +1 -0
  150. package/dist/store/slices/uiSlice.js.map +1 -0
  151. package/dist/store/slices/walletSlice.js.map +1 -0
  152. package/dist/store/store.js.map +1 -0
  153. package/dist/store/subscriptions/depositPersistence.js.map +1 -0
  154. package/dist/store/subscriptions/index.js.map +1 -0
  155. package/dist/store/subscriptions/turnkeyPersistence.js.map +1 -0
  156. package/dist/store/types.js.map +1 -0
  157. package/dist/styles/cdn-fonts.js.map +1 -0
  158. package/dist/styles/embedded-main-css.js.map +1 -0
  159. package/dist/turnkey/TurnkeyProvider.js.map +1 -0
  160. package/dist/turnkey/createTurnkeyWallet.js.map +1 -0
  161. package/dist/turnkey/createWalletProvider.js.map +1 -0
  162. package/dist/turnkey/index.js.map +1 -0
  163. package/dist/turnkey/turnkeySessionMachine.js.map +1 -0
  164. package/dist/turnkey/turnkeySessionStorage.js.map +1 -0
  165. package/dist/turnkey/types.js.map +1 -0
  166. package/dist/types/wallet.js.map +1 -0
  167. package/dist/utils/address.js.map +1 -0
  168. package/dist/utils/chain.js.map +1 -0
  169. package/dist/utils/ed25519.js.map +1 -0
  170. package/dist/utils/errors.js.map +1 -0
  171. package/dist/utils/events.js.map +1 -0
  172. package/dist/utils/formatAmount.js.map +1 -0
  173. package/dist/utils/logger.js.map +1 -0
  174. package/dist/utils/shortenString.js.map +1 -0
  175. package/package.json +16 -34
  176. package/LICENSE +0 -44
  177. package/README.md +0 -197
  178. package/dist/src/adapters/evm.js.map +0 -1
  179. package/dist/src/adapters/factory.js.map +0 -1
  180. package/dist/src/adapters/index.js.map +0 -1
  181. package/dist/src/adapters/solana.js.map +0 -1
  182. package/dist/src/adapters/types.js.map +0 -1
  183. package/dist/src/animations/N1Loader.js.map +0 -1
  184. package/dist/src/animations/N1Loader.json +0 -1
  185. package/dist/src/animations/Processing.js.map +0 -1
  186. package/dist/src/animations/Processing.json +0 -1
  187. package/dist/src/components/LoadingFallback.js.map +0 -1
  188. package/dist/src/components/Logo.js.map +0 -1
  189. package/dist/src/components/N1ConnectButton.js.map +0 -1
  190. package/dist/src/components/logos/ArbitrumLogo.js.map +0 -1
  191. package/dist/src/components/logos/BaseLogo.js.map +0 -1
  192. package/dist/src/components/logos/BeraLogo.js.map +0 -1
  193. package/dist/src/components/logos/BitcoinLogo.js.map +0 -1
  194. package/dist/src/components/logos/EthereumLogo.js.map +0 -1
  195. package/dist/src/components/logos/HyperliquidLogo.js.map +0 -1
  196. package/dist/src/components/logos/OptimismLogo.js.map +0 -1
  197. package/dist/src/components/logos/SolanaLogo.js.map +0 -1
  198. package/dist/src/components/logos/ZeroOneLogo.js.map +0 -1
  199. package/dist/src/components/logos/index.js.map +0 -1
  200. package/dist/src/config/chains.js.map +0 -1
  201. package/dist/src/config/dynamic.js.map +0 -1
  202. package/dist/src/config/solana.js.map +0 -1
  203. package/dist/src/config/turnkey.js.map +0 -1
  204. package/dist/src/context/n1-wallet-context.js.map +0 -1
  205. package/dist/src/errors/types.js.map +0 -1
  206. package/dist/src/features/onboarding-flow/N1WalletModal.js.map +0 -1
  207. package/dist/src/features/onboarding-flow/OnboardingFlow.js.map +0 -1
  208. package/dist/src/features/onboarding-flow/bridge-assist/client.js.map +0 -1
  209. package/dist/src/features/onboarding-flow/bridge-assist/config.js.map +0 -1
  210. package/dist/src/features/onboarding-flow/bridge-assist/index.js.map +0 -1
  211. package/dist/src/features/onboarding-flow/bridge-assist/types.js.map +0 -1
  212. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js.map +0 -1
  213. package/dist/src/features/onboarding-flow/cctp/clientFactory.js.map +0 -1
  214. package/dist/src/features/onboarding-flow/cctp/config.js.map +0 -1
  215. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js.map +0 -1
  216. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js +0 -2
  217. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js.map +0 -1
  218. package/dist/src/features/onboarding-flow/cctp/types.js.map +0 -1
  219. package/dist/src/features/onboarding-flow/components/ChainButton.js.map +0 -1
  220. package/dist/src/features/onboarding-flow/components/Header.js.map +0 -1
  221. package/dist/src/features/onboarding-flow/components/ImageWithFallback.js.map +0 -1
  222. package/dist/src/features/onboarding-flow/components/TransactionTable.js.map +0 -1
  223. package/dist/src/features/onboarding-flow/components/WaitingMessage.js.map +0 -1
  224. package/dist/src/features/onboarding-flow/components/index.js.map +0 -1
  225. package/dist/src/features/onboarding-flow/errors/depositError.js.map +0 -1
  226. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js.map +0 -1
  227. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js.map +0 -1
  228. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js.map +0 -1
  229. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js.map +0 -1
  230. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js.map +0 -1
  231. package/dist/src/features/onboarding-flow/index.js.map +0 -1
  232. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js.map +0 -1
  233. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js.map +0 -1
  234. package/dist/src/features/onboarding-flow/providers/StateProvider.js.map +0 -1
  235. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js.map +0 -1
  236. package/dist/src/features/onboarding-flow/providers/debug.js.map +0 -1
  237. package/dist/src/features/onboarding-flow/providers/index.js.map +0 -1
  238. package/dist/src/features/onboarding-flow/providers/onboardingStateMachine.js.map +0 -1
  239. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js.map +0 -1
  240. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +0 -1
  241. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +0 -1
  242. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +0 -1
  243. package/dist/src/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +0 -1
  244. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js.map +0 -1
  245. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +0 -1
  246. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +0 -1
  247. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +0 -1
  248. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js.map +0 -1
  249. package/dist/src/features/onboarding-flow/screens/index.js.map +0 -1
  250. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js.map +0 -1
  251. package/dist/src/features/onboarding-flow/types.js.map +0 -1
  252. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js.map +0 -1
  253. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js.map +0 -1
  254. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js.map +0 -1
  255. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js.map +0 -1
  256. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js.map +0 -1
  257. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js.map +0 -1
  258. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js.map +0 -1
  259. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js.map +0 -1
  260. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js +0 -8
  261. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js.map +0 -1
  262. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js.map +0 -1
  263. package/dist/src/features/onboarding-flow/utils/deposit/storage.js.map +0 -1
  264. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js.map +0 -1
  265. package/dist/src/features/onboarding-flow/utils/depositPolling.js.map +0 -1
  266. package/dist/src/features/onboarding-flow/utils/explorerUrl.js.map +0 -1
  267. package/dist/src/features/onboarding-flow/utils/nordUtils.js.map +0 -1
  268. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js.map +0 -1
  269. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js.map +0 -1
  270. package/dist/src/features/onboarding-flow/utils/utils.js.map +0 -1
  271. package/dist/src/features/onboarding-flow/utils/withImageFallback.js.map +0 -1
  272. package/dist/src/hooks/index.js.map +0 -1
  273. package/dist/src/hooks/useN1Wallet.js.map +0 -1
  274. package/dist/src/hooks/useNordUserInitialization.js.map +0 -1
  275. package/dist/src/index.js.map +0 -1
  276. package/dist/src/providers/LazyWalletProvider.js.map +0 -1
  277. package/dist/src/providers/N1WalletProvider/ContextBridge.js.map +0 -1
  278. package/dist/src/providers/N1WalletProvider/ModalProvider.js.map +0 -1
  279. package/dist/src/providers/N1WalletProvider/NetworkProvider.js.map +0 -1
  280. package/dist/src/providers/N1WalletProvider/SessionProvider.js.map +0 -1
  281. package/dist/src/providers/N1WalletProvider/SigningProvider.js.map +0 -1
  282. package/dist/src/providers/N1WalletProvider/ThemingProvider.js.map +0 -1
  283. package/dist/src/providers/N1WalletProvider/index.js.map +0 -1
  284. package/dist/src/providers/N1WalletProvider.js.map +0 -1
  285. package/dist/src/providers/N1WalletProviderTemp.d.ts +0 -0
  286. package/dist/src/providers/N1WalletProviderTemp.js +0 -184
  287. package/dist/src/providers/N1WalletProviderTemp.js.map +0 -1
  288. package/dist/src/providers/ShadowRootWrapper.js.map +0 -1
  289. package/dist/src/providers/WalletErrorBoundary.js.map +0 -1
  290. package/dist/src/services/bootstrap/DepositRecoveryService.js.map +0 -1
  291. package/dist/src/services/bootstrap/DynamicSdkService.js.map +0 -1
  292. package/dist/src/services/bootstrap/SessionBootstrapService.js.map +0 -1
  293. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js.map +0 -1
  294. package/dist/src/services/bootstrap/index.js.map +0 -1
  295. package/dist/src/services/bootstrap/types.js.map +0 -1
  296. package/dist/src/services/storage/StorageService.js.map +0 -1
  297. package/dist/src/services/storage/index.js.map +0 -1
  298. package/dist/src/services/storage/keys.js.map +0 -1
  299. package/dist/src/services/storage/types.js.map +0 -1
  300. package/dist/src/store/index.js.map +0 -1
  301. package/dist/src/store/selectors.js.map +0 -1
  302. package/dist/src/store/slices/bootstrapSlice.js.map +0 -1
  303. package/dist/src/store/slices/configSlice.js.map +0 -1
  304. package/dist/src/store/slices/index.js.map +0 -1
  305. package/dist/src/store/slices/sessionSlice.js.map +0 -1
  306. package/dist/src/store/slices/signingSlice.js.map +0 -1
  307. package/dist/src/store/slices/uiSlice.js.map +0 -1
  308. package/dist/src/store/slices/walletSlice.js.map +0 -1
  309. package/dist/src/store/store.js.map +0 -1
  310. package/dist/src/store/subscriptions/depositPersistence.js.map +0 -1
  311. package/dist/src/store/subscriptions/fontInjection.d.ts +0 -18
  312. package/dist/src/store/subscriptions/fontInjection.js +0 -90
  313. package/dist/src/store/subscriptions/fontInjection.js.map +0 -1
  314. package/dist/src/store/subscriptions/index.js.map +0 -1
  315. package/dist/src/store/subscriptions/turnkeyPersistence.js.map +0 -1
  316. package/dist/src/store/types.js.map +0 -1
  317. package/dist/src/styles/cdn-fonts.js.map +0 -1
  318. package/dist/src/styles/embedded-main-css.js.map +0 -1
  319. package/dist/src/turnkey/TurnkeyProvider.js.map +0 -1
  320. package/dist/src/turnkey/createTurnkeyWallet.js.map +0 -1
  321. package/dist/src/turnkey/createWalletProvider.js.map +0 -1
  322. package/dist/src/turnkey/index.js.map +0 -1
  323. package/dist/src/turnkey/turnkeySessionMachine.js.map +0 -1
  324. package/dist/src/turnkey/turnkeySessionStorage.js.map +0 -1
  325. package/dist/src/turnkey/types.js.map +0 -1
  326. package/dist/src/types/dynamic-wallets.d.ts +0 -104
  327. package/dist/src/types/dynamic-wallets.js +0 -8
  328. package/dist/src/types/dynamic-wallets.js.map +0 -1
  329. package/dist/src/types/wallet.js.map +0 -1
  330. package/dist/src/utils/address.js.map +0 -1
  331. package/dist/src/utils/chain.js.map +0 -1
  332. package/dist/src/utils/ed25519.js.map +0 -1
  333. package/dist/src/utils/errors.js.map +0 -1
  334. package/dist/src/utils/events.js.map +0 -1
  335. package/dist/src/utils/formatAmount.js.map +0 -1
  336. package/dist/src/utils/logger.js.map +0 -1
  337. package/dist/src/utils/shortenString.js.map +0 -1
  338. /package/dist/{src/adapters → adapters}/evm.d.ts +0 -0
  339. /package/dist/{src/adapters → adapters}/evm.js +0 -0
  340. /package/dist/{src/adapters → adapters}/factory.d.ts +0 -0
  341. /package/dist/{src/adapters → adapters}/factory.js +0 -0
  342. /package/dist/{src/adapters → adapters}/index.d.ts +0 -0
  343. /package/dist/{src/adapters → adapters}/index.js +0 -0
  344. /package/dist/{src/adapters → adapters}/solana.d.ts +0 -0
  345. /package/dist/{src/adapters → adapters}/solana.js +0 -0
  346. /package/dist/{src/adapters → adapters}/types.d.ts +0 -0
  347. /package/dist/{src/adapters → adapters}/types.js +0 -0
  348. /package/dist/{src/animations → animations}/N1Loader.d.ts +0 -0
  349. /package/dist/{src/animations → animations}/N1Loader.js +0 -0
  350. /package/dist/{src/animations → animations}/Processing.d.ts +0 -0
  351. /package/dist/{src/animations → animations}/Processing.js +0 -0
  352. /package/dist/{src/components → components}/LoadingFallback.d.ts +0 -0
  353. /package/dist/{src/components → components}/LoadingFallback.js +0 -0
  354. /package/dist/{src/components → components}/Logo.d.ts +0 -0
  355. /package/dist/{src/components → components}/Logo.js +0 -0
  356. /package/dist/{src/components → components}/N1ConnectButton.d.ts +0 -0
  357. /package/dist/{src/components → components}/N1ConnectButton.js +0 -0
  358. /package/dist/{src/components → components}/logos/ArbitrumLogo.d.ts +0 -0
  359. /package/dist/{src/components → components}/logos/ArbitrumLogo.js +0 -0
  360. /package/dist/{src/components → components}/logos/BaseLogo.d.ts +0 -0
  361. /package/dist/{src/components → components}/logos/BaseLogo.js +0 -0
  362. /package/dist/{src/components → components}/logos/BeraLogo.d.ts +0 -0
  363. /package/dist/{src/components → components}/logos/BeraLogo.js +0 -0
  364. /package/dist/{src/components → components}/logos/BitcoinLogo.d.ts +0 -0
  365. /package/dist/{src/components → components}/logos/BitcoinLogo.js +0 -0
  366. /package/dist/{src/components → components}/logos/EthereumLogo.d.ts +0 -0
  367. /package/dist/{src/components → components}/logos/EthereumLogo.js +0 -0
  368. /package/dist/{src/components → components}/logos/HyperliquidLogo.d.ts +0 -0
  369. /package/dist/{src/components → components}/logos/HyperliquidLogo.js +0 -0
  370. /package/dist/{src/components → components}/logos/OptimismLogo.d.ts +0 -0
  371. /package/dist/{src/components → components}/logos/OptimismLogo.js +0 -0
  372. /package/dist/{src/components → components}/logos/SolanaLogo.d.ts +0 -0
  373. /package/dist/{src/components → components}/logos/SolanaLogo.js +0 -0
  374. /package/dist/{src/components → components}/logos/ZeroOneLogo.d.ts +0 -0
  375. /package/dist/{src/components → components}/logos/ZeroOneLogo.js +0 -0
  376. /package/dist/{src/components → components}/logos/index.d.ts +0 -0
  377. /package/dist/{src/components → components}/logos/index.js +0 -0
  378. /package/dist/{src/config → config}/chains.d.ts +0 -0
  379. /package/dist/{src/config → config}/dynamic.d.ts +0 -0
  380. /package/dist/{src/config → config}/dynamic.js +0 -0
  381. /package/dist/{src/config → config}/solana.d.ts +0 -0
  382. /package/dist/{src/config → config}/solana.js +0 -0
  383. /package/dist/{src/config → config}/turnkey.d.ts +0 -0
  384. /package/dist/{src/config → config}/turnkey.js +0 -0
  385. /package/dist/{src/context → context}/n1-wallet-context.d.ts +0 -0
  386. /package/dist/{src/context → context}/n1-wallet-context.js +0 -0
  387. /package/dist/{src/errors → errors}/types.d.ts +0 -0
  388. /package/dist/{src/errors → errors}/types.js +0 -0
  389. /package/dist/{src/features → features}/onboarding-flow/N1WalletModal.d.ts +0 -0
  390. /package/dist/{src/features → features}/onboarding-flow/N1WalletModal.js +0 -0
  391. /package/dist/{src/features → features}/onboarding-flow/OnboardingFlow.d.ts +0 -0
  392. /package/dist/{src/features → features}/onboarding-flow/OnboardingFlow.js +0 -0
  393. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/client.d.ts +0 -0
  394. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/config.d.ts +0 -0
  395. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/config.js +0 -0
  396. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/index.d.ts +0 -0
  397. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/index.js +0 -0
  398. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/types.d.ts +0 -0
  399. /package/dist/{src/features → features}/onboarding-flow/bridge-assist/types.js +0 -0
  400. /package/dist/{src/features → features}/onboarding-flow/cctp/clientFactory.d.ts +0 -0
  401. /package/dist/{src/features → features}/onboarding-flow/cctp/clientFactory.js +0 -0
  402. /package/dist/{src/features → features}/onboarding-flow/cctp/config.d.ts +0 -0
  403. /package/dist/{src/features → features}/onboarding-flow/cctp/config.js +0 -0
  404. /package/dist/{src/features → features}/onboarding-flow/cctp/mockCctpClient.d.ts +0 -0
  405. /package/dist/{src/features → features}/onboarding-flow/cctp/mockCctpClient.js +0 -0
  406. /package/dist/{src/features → features}/onboarding-flow/cctp/types.d.ts +0 -0
  407. /package/dist/{src/features → features}/onboarding-flow/cctp/types.js +0 -0
  408. /package/dist/{src/features → features}/onboarding-flow/components/ChainButton.d.ts +0 -0
  409. /package/dist/{src/features → features}/onboarding-flow/components/ChainButton.js +0 -0
  410. /package/dist/{src/features → features}/onboarding-flow/components/Header.d.ts +0 -0
  411. /package/dist/{src/features → features}/onboarding-flow/components/Header.js +0 -0
  412. /package/dist/{src/features → features}/onboarding-flow/components/ImageWithFallback.d.ts +0 -0
  413. /package/dist/{src/features → features}/onboarding-flow/components/ImageWithFallback.js +0 -0
  414. /package/dist/{src/features → features}/onboarding-flow/components/TransactionTable.d.ts +0 -0
  415. /package/dist/{src/features → features}/onboarding-flow/components/WaitingMessage.d.ts +0 -0
  416. /package/dist/{src/features → features}/onboarding-flow/components/WaitingMessage.js +0 -0
  417. /package/dist/{src/features → features}/onboarding-flow/components/index.d.ts +0 -0
  418. /package/dist/{src/features → features}/onboarding-flow/components/index.js +0 -0
  419. /package/dist/{src/features → features}/onboarding-flow/errors/depositError.d.ts +0 -0
  420. /package/dist/{src/features → features}/onboarding-flow/errors/depositError.js +0 -0
  421. /package/dist/{src/features → features}/onboarding-flow/hooks/useBridgeDeposit.d.ts +0 -0
  422. /package/dist/{src/features → features}/onboarding-flow/hooks/useDepositAuth.d.ts +0 -0
  423. /package/dist/{src/features → features}/onboarding-flow/hooks/useDepositAuth.js +0 -0
  424. /package/dist/{src/features → features}/onboarding-flow/hooks/useDepositHydration.d.ts +0 -0
  425. /package/dist/{src/features → features}/onboarding-flow/hooks/useDepositHydration.js +0 -0
  426. /package/dist/{src/features → features}/onboarding-flow/hooks/usePendingDepositState.d.ts +0 -0
  427. /package/dist/{src/features → features}/onboarding-flow/hooks/useSolanaDeposit.d.ts +0 -0
  428. /package/dist/{src/features → features}/onboarding-flow/index.d.ts +0 -0
  429. /package/dist/{src/features → features}/onboarding-flow/index.js +0 -0
  430. /package/dist/{src/features → features}/onboarding-flow/providers/DepositFlowProvider.d.ts +0 -0
  431. /package/dist/{src/features → features}/onboarding-flow/providers/OnboardingStateProvider.d.ts +0 -0
  432. /package/dist/{src/features → features}/onboarding-flow/providers/StateProvider.d.ts +0 -0
  433. /package/dist/{src/features → features}/onboarding-flow/providers/StateProvider.js +0 -0
  434. /package/dist/{src/features → features}/onboarding-flow/providers/WalletConnectionProvider.d.ts +0 -0
  435. /package/dist/{src/features → features}/onboarding-flow/providers/debug.d.ts +0 -0
  436. /package/dist/{src/features → features}/onboarding-flow/providers/index.d.ts +0 -0
  437. /package/dist/{src/features → features}/onboarding-flow/providers/index.js +0 -0
  438. /package/dist/{src/features → features}/onboarding-flow/providers/onboardingStateMachine.d.ts +0 -0
  439. /package/dist/{src/features → features}/onboarding-flow/providers/onboardingStateMachine.js +0 -0
  440. /package/dist/{src/features → features}/onboarding-flow/screens/00-EntrySelectionScreen.d.ts +0 -0
  441. /package/dist/{src/features → features}/onboarding-flow/screens/00-EntrySelectionScreen.js +0 -0
  442. /package/dist/{src/features → features}/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +0 -0
  443. /package/dist/{src/features → features}/onboarding-flow/screens/01-ConnectWalletScreen.js +0 -0
  444. /package/dist/{src/features → features}/onboarding-flow/screens/02-TurnkeyAuthScreen.d.ts +0 -0
  445. /package/dist/{src/features → features}/onboarding-flow/screens/02-TurnkeyAuthScreen.js +0 -0
  446. /package/dist/{src/features → features}/onboarding-flow/screens/03-TurnkeyPreparingScreen.d.ts +0 -0
  447. /package/dist/{src/features → features}/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +0 -0
  448. /package/dist/{src/features → features}/onboarding-flow/screens/04-ChainSelectionScreen.d.ts +0 -0
  449. /package/dist/{src/features → features}/onboarding-flow/screens/04-ChainSelectionScreen.js +0 -0
  450. /package/dist/{src/features → features}/onboarding-flow/screens/06-DepositProgressScreen.d.ts +0 -0
  451. /package/dist/{src/features → features}/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +0 -0
  452. /package/dist/{src/features → features}/onboarding-flow/screens/07-DepositSuccessScreen.js +0 -0
  453. /package/dist/{src/features → features}/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +0 -0
  454. /package/dist/{src/features → features}/onboarding-flow/screens/08-AuthLoadingScreen.js +0 -0
  455. /package/dist/{src/features → features}/onboarding-flow/screens/09-ErrorScreen.d.ts +0 -0
  456. /package/dist/{src/features → features}/onboarding-flow/screens/09-ErrorScreen.js +0 -0
  457. /package/dist/{src/features → features}/onboarding-flow/screens/index.d.ts +0 -0
  458. /package/dist/{src/features → features}/onboarding-flow/screens/index.js +0 -0
  459. /package/dist/{src/features → features}/onboarding-flow/turnkey/turnkeySessionMachine.d.ts +0 -0
  460. /package/dist/{src/features → features}/onboarding-flow/turnkey/turnkeySessionMachine.js +0 -0
  461. /package/dist/{src/features → features}/onboarding-flow/types.d.ts +0 -0
  462. /package/dist/{src/features → features}/onboarding-flow/types.js +0 -0
  463. /package/dist/{src/features → features}/onboarding-flow/utils/bridgeUtils.d.ts +0 -0
  464. /package/dist/{src/features → features}/onboarding-flow/utils/bridgeUtils.js +0 -0
  465. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/attestationUtils.d.ts +0 -0
  466. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/attestationUtils.js +0 -0
  467. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/bridgeUtils.d.ts +0 -0
  468. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/bridgeUtils.js +0 -0
  469. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/claimConfirmation.d.ts +0 -0
  470. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/depositPolling.d.ts +0 -0
  471. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/depositPolling.js +0 -0
  472. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/evmTxInterceptor.d.ts +0 -0
  473. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/evmTxInterceptor.js +0 -0
  474. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/nonceUtils.d.ts +0 -0
  475. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/nonceUtils.js +0 -0
  476. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/solanaUtils.d.ts +0 -0
  477. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/solanaUtils.js +0 -0
  478. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/storage.d.ts +0 -0
  479. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/storage.js +0 -0
  480. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/walletUtils.d.ts +0 -0
  481. /package/dist/{src/features → features}/onboarding-flow/utils/deposit/walletUtils.js +0 -0
  482. /package/dist/{src/features → features}/onboarding-flow/utils/depositPolling.d.ts +0 -0
  483. /package/dist/{src/features → features}/onboarding-flow/utils/depositPolling.js +0 -0
  484. /package/dist/{src/features → features}/onboarding-flow/utils/explorerUrl.d.ts +0 -0
  485. /package/dist/{src/features → features}/onboarding-flow/utils/explorerUrl.js +0 -0
  486. /package/dist/{src/features → features}/onboarding-flow/utils/nordUtils.d.ts +0 -0
  487. /package/dist/{src/features → features}/onboarding-flow/utils/nordUtils.js +0 -0
  488. /package/dist/{src/features → features}/onboarding-flow/utils/pendingDepositCookie.d.ts +0 -0
  489. /package/dist/{src/features → features}/onboarding-flow/utils/pendingDepositCookie.js +0 -0
  490. /package/dist/{src/features → features}/onboarding-flow/utils/pendingDepositStorage.d.ts +0 -0
  491. /package/dist/{src/features → features}/onboarding-flow/utils/pendingDepositStorage.js +0 -0
  492. /package/dist/{src/features → features}/onboarding-flow/utils/utils.d.ts +0 -0
  493. /package/dist/{src/features → features}/onboarding-flow/utils/utils.js +0 -0
  494. /package/dist/{src/features → features}/onboarding-flow/utils/withImageFallback.d.ts +0 -0
  495. /package/dist/{src/features → features}/onboarding-flow/utils/withImageFallback.js +0 -0
  496. /package/dist/{src/hooks → hooks}/index.d.ts +0 -0
  497. /package/dist/{src/hooks → hooks}/index.js +0 -0
  498. /package/dist/{src/hooks → hooks}/useN1Wallet.d.ts +0 -0
  499. /package/dist/{src/hooks → hooks}/useN1Wallet.js +0 -0
  500. /package/dist/{src/hooks → hooks}/useNordUserInitialization.d.ts +0 -0
  501. /package/dist/{src/hooks → hooks}/useNordUserInitialization.js +0 -0
  502. /package/dist/{src/index.d.ts → index.d.ts} +0 -0
  503. /package/dist/{src/index.js → index.js} +0 -0
  504. /package/dist/{src/providers → providers}/LazyWalletProvider.d.ts +0 -0
  505. /package/dist/{src/providers → providers}/N1WalletProvider/ContextBridge.d.ts +0 -0
  506. /package/dist/{src/providers → providers}/N1WalletProvider/ContextBridge.js +0 -0
  507. /package/dist/{src/providers → providers}/N1WalletProvider/ModalProvider.d.ts +0 -0
  508. /package/dist/{src/providers → providers}/N1WalletProvider/ModalProvider.js +0 -0
  509. /package/dist/{src/providers → providers}/N1WalletProvider/NetworkProvider.d.ts +0 -0
  510. /package/dist/{src/providers → providers}/N1WalletProvider/NetworkProvider.js +0 -0
  511. /package/dist/{src/providers → providers}/N1WalletProvider/SessionProvider.d.ts +0 -0
  512. /package/dist/{src/providers → providers}/N1WalletProvider/SessionProvider.js +0 -0
  513. /package/dist/{src/providers → providers}/N1WalletProvider/SigningProvider.d.ts +0 -0
  514. /package/dist/{src/providers → providers}/N1WalletProvider/SigningProvider.js +0 -0
  515. /package/dist/{src/providers → providers}/N1WalletProvider/ThemingProvider.d.ts +0 -0
  516. /package/dist/{src/providers → providers}/N1WalletProvider/ThemingProvider.js +0 -0
  517. /package/dist/{src/providers → providers}/N1WalletProvider/index.d.ts +0 -0
  518. /package/dist/{src/providers → providers}/N1WalletProvider/index.js +0 -0
  519. /package/dist/{src/providers → providers}/N1WalletProvider.d.ts +0 -0
  520. /package/dist/{src/providers → providers}/N1WalletProvider.js +0 -0
  521. /package/dist/{src/providers → providers}/ShadowRootWrapper.d.ts +0 -0
  522. /package/dist/{src/providers → providers}/ShadowRootWrapper.js +0 -0
  523. /package/dist/{src/providers → providers}/WalletErrorBoundary.d.ts +0 -0
  524. /package/dist/{src/providers → providers}/WalletErrorBoundary.js +0 -0
  525. /package/dist/{src/services → services}/bootstrap/DepositRecoveryService.d.ts +0 -0
  526. /package/dist/{src/services → services}/bootstrap/DepositRecoveryService.js +0 -0
  527. /package/dist/{src/services → services}/bootstrap/DynamicSdkService.d.ts +0 -0
  528. /package/dist/{src/services → services}/bootstrap/DynamicSdkService.js +0 -0
  529. /package/dist/{src/services → services}/bootstrap/SessionBootstrapService.d.ts +0 -0
  530. /package/dist/{src/services → services}/bootstrap/SessionBootstrapService.js +0 -0
  531. /package/dist/{src/services → services}/bootstrap/TurnkeyBootstrapService.d.ts +0 -0
  532. /package/dist/{src/services → services}/bootstrap/TurnkeyBootstrapService.js +0 -0
  533. /package/dist/{src/services → services}/bootstrap/index.d.ts +0 -0
  534. /package/dist/{src/services → services}/bootstrap/index.js +0 -0
  535. /package/dist/{src/services → services}/bootstrap/types.d.ts +0 -0
  536. /package/dist/{src/services → services}/bootstrap/types.js +0 -0
  537. /package/dist/{src/services → services}/storage/StorageService.d.ts +0 -0
  538. /package/dist/{src/services → services}/storage/StorageService.js +0 -0
  539. /package/dist/{src/services → services}/storage/index.d.ts +0 -0
  540. /package/dist/{src/services → services}/storage/index.js +0 -0
  541. /package/dist/{src/services → services}/storage/keys.d.ts +0 -0
  542. /package/dist/{src/services → services}/storage/keys.js +0 -0
  543. /package/dist/{src/services → services}/storage/types.d.ts +0 -0
  544. /package/dist/{src/services → services}/storage/types.js +0 -0
  545. /package/dist/{src/store → store}/index.d.ts +0 -0
  546. /package/dist/{src/store → store}/index.js +0 -0
  547. /package/dist/{src/store → store}/selectors.d.ts +0 -0
  548. /package/dist/{src/store → store}/selectors.js +0 -0
  549. /package/dist/{src/store → store}/slices/bootstrapSlice.d.ts +0 -0
  550. /package/dist/{src/store → store}/slices/bootstrapSlice.js +0 -0
  551. /package/dist/{src/store → store}/slices/configSlice.d.ts +0 -0
  552. /package/dist/{src/store → store}/slices/configSlice.js +0 -0
  553. /package/dist/{src/store → store}/slices/index.d.ts +0 -0
  554. /package/dist/{src/store → store}/slices/index.js +0 -0
  555. /package/dist/{src/store → store}/slices/sessionSlice.d.ts +0 -0
  556. /package/dist/{src/store → store}/slices/sessionSlice.js +0 -0
  557. /package/dist/{src/store → store}/slices/signingSlice.d.ts +0 -0
  558. /package/dist/{src/store → store}/slices/signingSlice.js +0 -0
  559. /package/dist/{src/store → store}/slices/uiSlice.d.ts +0 -0
  560. /package/dist/{src/store → store}/slices/uiSlice.js +0 -0
  561. /package/dist/{src/store → store}/slices/walletSlice.d.ts +0 -0
  562. /package/dist/{src/store → store}/slices/walletSlice.js +0 -0
  563. /package/dist/{src/store → store}/store.d.ts +0 -0
  564. /package/dist/{src/store → store}/store.js +0 -0
  565. /package/dist/{src/store → store}/subscriptions/depositPersistence.d.ts +0 -0
  566. /package/dist/{src/store → store}/subscriptions/depositPersistence.js +0 -0
  567. /package/dist/{src/store → store}/subscriptions/index.d.ts +0 -0
  568. /package/dist/{src/store → store}/subscriptions/index.js +0 -0
  569. /package/dist/{src/store → store}/subscriptions/turnkeyPersistence.d.ts +0 -0
  570. /package/dist/{src/store → store}/subscriptions/turnkeyPersistence.js +0 -0
  571. /package/dist/{src/store → store}/types.d.ts +0 -0
  572. /package/dist/{src/store → store}/types.js +0 -0
  573. /package/dist/{src/styles → styles}/cdn-fonts.d.ts +0 -0
  574. /package/dist/{src/styles → styles}/cdn-fonts.js +0 -0
  575. /package/dist/{src/styles → styles}/embedded-main-css.d.ts +0 -0
  576. /package/dist/{src/styles → styles}/embedded-main-css.js +0 -0
  577. /package/dist/{src/turnkey → turnkey}/TurnkeyProvider.d.ts +0 -0
  578. /package/dist/{src/turnkey → turnkey}/TurnkeyProvider.js +0 -0
  579. /package/dist/{src/turnkey → turnkey}/createTurnkeyWallet.d.ts +0 -0
  580. /package/dist/{src/turnkey → turnkey}/createTurnkeyWallet.js +0 -0
  581. /package/dist/{src/turnkey → turnkey}/createWalletProvider.d.ts +0 -0
  582. /package/dist/{src/turnkey → turnkey}/createWalletProvider.js +0 -0
  583. /package/dist/{src/turnkey → turnkey}/index.d.ts +0 -0
  584. /package/dist/{src/turnkey → turnkey}/index.js +0 -0
  585. /package/dist/{src/turnkey → turnkey}/turnkeySessionMachine.d.ts +0 -0
  586. /package/dist/{src/turnkey → turnkey}/turnkeySessionMachine.js +0 -0
  587. /package/dist/{src/turnkey → turnkey}/turnkeySessionStorage.d.ts +0 -0
  588. /package/dist/{src/turnkey → turnkey}/turnkeySessionStorage.js +0 -0
  589. /package/dist/{src/turnkey → turnkey}/types.d.ts +0 -0
  590. /package/dist/{src/turnkey → turnkey}/types.js +0 -0
  591. /package/dist/{src/types → types}/wallet.d.ts +0 -0
  592. /package/dist/{src/types → types}/wallet.js +0 -0
  593. /package/dist/{src/utils → utils}/address.d.ts +0 -0
  594. /package/dist/{src/utils → utils}/address.js +0 -0
  595. /package/dist/{src/utils → utils}/chain.d.ts +0 -0
  596. /package/dist/{src/utils → utils}/chain.js +0 -0
  597. /package/dist/{src/utils → utils}/ed25519.d.ts +0 -0
  598. /package/dist/{src/utils → utils}/ed25519.js +0 -0
  599. /package/dist/{src/utils → utils}/errors.d.ts +0 -0
  600. /package/dist/{src/utils → utils}/errors.js +0 -0
  601. /package/dist/{src/utils → utils}/events.d.ts +0 -0
  602. /package/dist/{src/utils → utils}/events.js +0 -0
  603. /package/dist/{src/utils → utils}/formatAmount.d.ts +0 -0
  604. /package/dist/{src/utils → utils}/formatAmount.js +0 -0
  605. /package/dist/{src/utils → utils}/logger.d.ts +0 -0
  606. /package/dist/{src/utils → utils}/logger.js +0 -0
  607. /package/dist/{src/utils → utils}/shortenString.d.ts +0 -0
  608. /package/dist/{src/utils → utils}/shortenString.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../src/adapters/evm.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * EVM wallet adapter implementation.\n * Wraps Dynamic SDK EVM wallets in a unified interface.\n */\n\nimport { type Chain as ViemChain, hexToBytes } from 'viem';\nimport type { EVMWalletAdapter, EIP1193Provider, WalletAdapterState } from './types';\nimport type { ChainInfo } from '../utils/chain';\nimport { isValidEVMAddress, normalizeEVMAddress } from '../utils/address';\nimport { chainIdToNumber, normalizeChainName, getChainInfo } from '../utils/chain';\nimport { logger } from '../utils/logger';\n\n// ---------------------------------------------------------------------------\n// Types for Dynamic SDK EVM Wallet\n// ---------------------------------------------------------------------------\n\n/**\n * Dynamic SDK EVM wallet connector interface.\n */\ninterface DynamicEVMConnector {\n name?: string;\n key?: string;\n metadata?: {\n icon?: string;\n };\n getNetwork?: () => Promise<string | number | undefined>;\n getProvider?: () => Promise<EIP1193Provider>;\n getWalletClient?: (chainId?: number) => Promise<unknown>;\n signMessage?: (message: string, withAddress?: string) => Promise<string | undefined>;\n}\n\n/**\n * Dynamic SDK EVM wallet interface (type-safe subset).\n */\ninterface DynamicEVMWallet {\n id?: string;\n key?: string;\n address?: string | null;\n chain?: string | null;\n connected?: boolean;\n signMessage?: (message: string) => Promise<string | undefined>;\n switchNetwork?: (chainId: number) => Promise<void>;\n connector?: DynamicEVMConnector;\n}\n\n// ---------------------------------------------------------------------------\n// EVM Wallet Adapter Implementation\n// ---------------------------------------------------------------------------\n\nexport class EVMAdapter implements EVMWalletAdapter {\n readonly network = 'evm' as const;\n\n private _wallet: DynamicEVMWallet;\n private _cachedChainId: number | null = null;\n\n constructor(wallet: unknown) {\n this._wallet = wallet as DynamicEVMWallet;\n }\n\n // ---------------------------------------------------------------------------\n // State Properties\n // ---------------------------------------------------------------------------\n\n get address(): string | null {\n const addr = this._wallet.address;\n return addr && isValidEVMAddress(addr) ? normalizeEVMAddress(addr) : null;\n }\n\n get isConnected(): boolean {\n return Boolean(this._wallet.connected ?? this.address);\n }\n\n get state(): WalletAdapterState {\n if (this.isConnected) return 'connected';\n return 'disconnected';\n }\n\n get chainId(): number | null {\n // Try cached value first\n if (this._cachedChainId !== null) return this._cachedChainId;\n\n // Try to derive from wallet.chain\n if (this._wallet.chain) {\n const numericId = chainIdToNumber(this._wallet.chain);\n if (numericId !== null) {\n this._cachedChainId = numericId;\n return numericId;\n }\n }\n\n return null;\n }\n\n get chain(): ChainInfo | null {\n const id = this.chainId;\n if (id === null) return null;\n return getChainInfo(id);\n }\n\n get walletName(): string | null {\n return this._wallet.connector?.name ?? null;\n }\n\n // ---------------------------------------------------------------------------\n // EVMWalletAdapter Methods\n // ---------------------------------------------------------------------------\n\n async signMessage(message: string | Uint8Array): Promise<Uint8Array> {\n let messageStr: string;\n if (typeof message === 'string') {\n messageStr = message;\n } else {\n // Convert Uint8Array to hex string\n messageStr = '0x' + Array.from(message)\n .map(b => b.toString(16).padStart(2, '0'))\n .join('');\n }\n\n // Try wallet.signMessage first\n if (typeof this._wallet.signMessage === 'function') {\n const sig = await this._wallet.signMessage(messageStr);\n if (sig) {\n return hexToBytes(sig as `0x${string}`);\n }\n }\n\n // Try connector.signMessage\n if (this._wallet.connector && typeof this._wallet.connector.signMessage === 'function') {\n const sig = await this._wallet.connector.signMessage(messageStr, this._wallet.address ?? undefined);\n if (sig) {\n return hexToBytes(sig as `0x${string}`);\n }\n }\n\n throw new Error('Wallet does not support message signing');\n }\n\n async switchChain(chainId: number): Promise<void> {\n if (typeof this._wallet.switchNetwork !== 'function') {\n throw new Error('Wallet does not support network switching');\n }\n\n await this._wallet.switchNetwork(chainId);\n this._cachedChainId = chainId;\n\n // Small delay to allow provider state propagation\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n\n async getProvider(): Promise<EIP1193Provider> {\n if (this._wallet.connector?.getProvider) {\n const provider = await this._wallet.connector.getProvider();\n if (provider) return provider;\n }\n\n throw new Error('Wallet does not provide an EIP-1193 provider');\n }\n\n async getWalletClient(chain?: ViemChain): Promise<unknown> {\n if (this._wallet.connector?.getWalletClient) {\n const chainId = chain?.id ?? this.chainId ?? undefined;\n return this._wallet.connector.getWalletClient(chainId);\n }\n\n throw new Error('Wallet does not provide a wallet client');\n }\n\n async signTypedData(data: unknown): Promise<string> {\n const provider = await this.getProvider();\n\n // Use eth_signTypedData_v4 via the provider\n const result = await provider.request({\n method: 'eth_signTypedData_v4',\n params: [this.address, JSON.stringify(data)],\n });\n\n if (typeof result !== 'string') {\n throw new Error('Invalid signature result');\n }\n\n return result;\n }\n\n async disconnect(): Promise<void> {\n // EVM wallets typically don't have a disconnect method on the wallet object\n // The disconnect is usually handled at the Dynamic SDK level\n this._cachedChainId = null;\n logger.debug('[EVMAdapter] Disconnect called');\n }\n\n getRawWallet(): unknown {\n return this._wallet;\n }\n\n // ---------------------------------------------------------------------------\n // Additional Helper Methods\n // ---------------------------------------------------------------------------\n\n /**\n * Gets the current chain ID from the provider.\n * More reliable than the cached value.\n */\n async getCurrentChainId(): Promise<number | null> {\n try {\n // Try connector.getNetwork first\n if (this._wallet.connector?.getNetwork) {\n const network = await this._wallet.connector.getNetwork();\n const chainId = chainIdToNumber(network);\n if (chainId !== null) {\n this._cachedChainId = chainId;\n return chainId;\n }\n }\n\n // Try via provider\n const provider = await this.getProvider().catch(() => null);\n if (provider) {\n const chainIdHex = await provider.request({ method: 'eth_chainId' });\n const chainId = chainIdToNumber(chainIdHex);\n if (chainId !== null) {\n this._cachedChainId = chainId;\n return chainId;\n }\n }\n } catch (error) {\n logger.warn('[EVMAdapter] Failed to get current chain ID', { error });\n }\n\n return this._cachedChainId;\n }\n\n /**\n * Checks if the wallet is on the expected chain.\n */\n async isOnChain(expectedChainId: number): Promise<boolean> {\n const currentChainId = await this.getCurrentChainId();\n return currentChainId === expectedChainId;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/adapters/factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,OAA6B;IACjD,IAAA,OAAO,GAAa,OAAO,QAApB,EAAE,MAAM,GAAK,OAAO,OAAZ,CAAa;IAEpC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QAEnC,KAAK,KAAK;YACR,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAEhC;YACE,MAAM,IAAI,KAAK,CAAC,oCAA6B,OAAO,CAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAe;IACjD,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAe;IAC9C,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAe,EACf,cAAmC;;IAAnC,+BAAA,EAAA,sBAAmC;IAEnC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,IAAM,SAAS,GAAG,MAKjB,CAAC;IAEF,uCAAuC;IACvC,IACE,SAAS,CAAC,KAAK,KAAK,KAAK;QACzB,CAAC,OAAO,SAAS,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,CAAA,MAAA,SAAS,CAAC,SAAS,0CAAE,WAAW,CAAA,CAAC,EAChF,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,oCAAoC;IACpC,IACE,CAAA,MAAA,SAAS,CAAC,SAAS,0CAAE,WAAW;SAChC,MAAA,SAAS,CAAC,KAAK,0CAAE,UAAU,CAAC,KAAK,CAAC,CAAA;SAClC,MAAA,SAAS,CAAC,KAAK,0CAAE,UAAU,CAAC,KAAK,CAAC,CAAA;SAClC,MAAA,SAAS,CAAC,KAAK,0CAAE,UAAU,CAAC,MAAM,CAAC,CAAA,EACnC,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,cAAc;IACd,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC","sourcesContent":["/**\n * Wallet adapter factory.\n * Creates the appropriate adapter based on network type.\n */\n\nimport type { WalletAdapter, SolanaWalletAdapter, EVMWalletAdapter, CreateAdapterOptions } from './types';\nimport type { NetworkType } from '../utils/chain';\nimport { SolanaAdapter } from './solana';\nimport { EVMAdapter } from './evm';\n\n// ---------------------------------------------------------------------------\n// Factory Function\n// ---------------------------------------------------------------------------\n\n/**\n * Creates a wallet adapter for the given network and wallet.\n *\n * @param options - Options including network type and raw wallet object\n * @returns The appropriate wallet adapter\n * @throws Error if network type is unsupported\n */\nexport function createAdapter(options: CreateAdapterOptions): WalletAdapter {\n const { network, wallet } = options;\n\n switch (network) {\n case 'solana':\n return new SolanaAdapter(wallet);\n\n case 'evm':\n return new EVMAdapter(wallet);\n\n default:\n throw new Error(`Unsupported network type: ${network}`);\n }\n}\n\n/**\n * Creates a Solana wallet adapter.\n *\n * @param wallet - The raw wallet object from Dynamic SDK\n * @returns Solana wallet adapter\n */\nexport function createSolanaAdapter(wallet: unknown): SolanaWalletAdapter {\n return new SolanaAdapter(wallet);\n}\n\n/**\n * Creates an EVM wallet adapter.\n *\n * @param wallet - The raw wallet object from Dynamic SDK\n * @returns EVM wallet adapter\n */\nexport function createEVMAdapter(wallet: unknown): EVMWalletAdapter {\n return new EVMAdapter(wallet);\n}\n\n// ---------------------------------------------------------------------------\n// Auto-Detection Factory\n// ---------------------------------------------------------------------------\n\n/**\n * Attempts to detect the network type from a wallet object and create the appropriate adapter.\n * Falls back to the provided default network if detection fails.\n *\n * @param wallet - The raw wallet object\n * @param defaultNetwork - Network to use if detection fails (defaults to 'evm')\n * @returns The appropriate wallet adapter\n */\nexport function createAdapterFromWallet(\n wallet: unknown,\n defaultNetwork: NetworkType = 'evm'\n): WalletAdapter {\n if (!wallet || typeof wallet !== 'object') {\n throw new Error('Invalid wallet object');\n }\n\n const walletObj = wallet as {\n chain?: string;\n getSigner?: unknown;\n signMessage?: unknown;\n connector?: { getProvider?: unknown };\n };\n\n // Check for Solana-specific indicators\n if (\n walletObj.chain === 'SOL' ||\n (typeof walletObj.getSigner === 'function' && !walletObj.connector?.getProvider)\n ) {\n return new SolanaAdapter(wallet);\n }\n\n // Check for EVM-specific indicators\n if (\n walletObj.connector?.getProvider ||\n walletObj.chain?.startsWith('ETH') ||\n walletObj.chain?.startsWith('ARB') ||\n walletObj.chain?.startsWith('BASE')\n ) {\n return new EVMAdapter(wallet);\n }\n\n // Use default\n if (defaultNetwork === 'solana') {\n return new SolanaAdapter(wallet);\n }\n\n return new EVMAdapter(wallet);\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAcH,cAAc;AACd,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAExD,oBAAoB;AACpB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAEnB,uDAAuD;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC","sourcesContent":["/**\n * Unified wallet adapter exports.\n *\n * Provides a consistent interface across Solana and EVM wallets.\n *\n * Usage:\n * ```typescript\n * import { createAdapter, isSolanaAdapter, isEVMAdapter } from './adapters';\n *\n * // Create an adapter\n * const adapter = createAdapter({ network: 'solana', wallet: dynamicSolanaWallet });\n *\n * // Use common interface\n * const address = adapter.address;\n * const signature = await adapter.signMessage('Hello');\n *\n * // Type-specific operations\n * if (isSolanaAdapter(adapter)) {\n * const pubkey = adapter.getPublicKey();\n * const isLedger = await adapter.isLedger();\n * }\n *\n * if (isEVMAdapter(adapter)) {\n * const provider = await adapter.getProvider();\n * await adapter.switchChain(1);\n * }\n * ```\n */\n\n// Types\nexport type {\n WalletAdapter,\n SolanaWalletAdapter,\n EVMWalletAdapter,\n EIP1193Provider,\n WalletAdapterState,\n WalletAdapterError,\n CreateAdapterOptions,\n WalletAdapterFactory,\n} from './types';\n\n// Type guards\nexport { isSolanaAdapter, isEVMAdapter } from './types';\n\n// Factory functions\nexport {\n createAdapter,\n createSolanaAdapter,\n createEVMAdapter,\n createAdapterFromWallet,\n} from './factory';\n\n// Adapter classes (for instanceof checks or extension)\nexport { SolanaAdapter } from './solana';\nexport { EVMAdapter } from './evm';\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../src/adapters/solana.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Solana wallet adapter implementation.\n * Wraps Dynamic SDK Solana wallets in a unified interface.\n */\n\nimport { PublicKey, Transaction, VersionedTransaction } from '@solana/web3.js';\nimport type { SolanaWalletAdapter, WalletAdapterState } from './types';\nimport type { ChainInfo } from '../utils/chain';\nimport { isValidSolanaAddress } from '../utils/address';\nimport { logger } from '../utils/logger';\n\n// ---------------------------------------------------------------------------\n// Types for Dynamic SDK Solana Wallet\n// ---------------------------------------------------------------------------\n\n/**\n * Dynamic SDK Solana wallet signer interface.\n */\ninterface DynamicSolanaSigner {\n publicKey: PublicKey;\n signTransaction: <T extends Transaction | VersionedTransaction>(tx: T) => Promise<T>;\n signAllTransactions?: <T extends Transaction | VersionedTransaction>(txs: T[]) => Promise<T[]>;\n signMessage: (message: Uint8Array) => Promise<Uint8Array>;\n}\n\n/**\n * Dynamic SDK Solana wallet interface (type-safe subset).\n */\ninterface DynamicSolanaWallet {\n address?: string | null;\n chain?: string | null;\n connected?: boolean;\n getSigner: () => Promise<DynamicSolanaSigner>;\n disconnect?: () => Promise<void>;\n connector?: {\n name?: string;\n getSigner?: () => Promise<DynamicSolanaSigner>;\n };\n}\n\n// ---------------------------------------------------------------------------\n// Helper Functions\n// ---------------------------------------------------------------------------\n\n/**\n * Detects if a wallet is likely backed by a Ledger hardware wallet.\n * Probes signMessage: failure with non-rejection error indicates Ledger.\n */\nasync function detectLedger(signer: DynamicSolanaSigner): Promise<boolean> {\n try {\n // Probe with a minimal message\n const msg = new TextEncoder().encode('n1-ledger-probe');\n await signer.signMessage(msg);\n return false;\n } catch (error) {\n // Check if user rejected\n const anyErr = error as { code?: number | string; message?: string };\n if (anyErr?.code === 4001) return false; // User rejection, not Ledger\n\n const message = (anyErr?.message ?? '').toLowerCase();\n if (message.includes('reject') || message.includes('denied') || message.includes('cancel')) {\n // User rejection\n const cancelled = new Error('Signature request was cancelled');\n (cancelled as { code?: string }).code = 'N1_SIGNATURE_CANCELLED';\n throw cancelled;\n }\n\n // Other failure - likely Ledger\n logger.debug('[SolanaAdapter] signMessage probe failed, treating as Ledger', {\n error: message,\n });\n return true;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Solana Wallet Adapter Implementation\n// ---------------------------------------------------------------------------\n\nexport class SolanaAdapter implements SolanaWalletAdapter {\n readonly network = 'solana' as const;\n\n private _wallet: DynamicSolanaWallet;\n private _signer: DynamicSolanaSigner | null = null;\n private _isLedger: boolean | null = null;\n\n constructor(wallet: unknown) {\n this._wallet = wallet as DynamicSolanaWallet;\n }\n\n // ---------------------------------------------------------------------------\n // State Properties\n // ---------------------------------------------------------------------------\n\n get address(): string | null {\n const addr = this._wallet.address;\n return addr && isValidSolanaAddress(addr) ? addr : null;\n }\n\n get isConnected(): boolean {\n return Boolean(this._wallet.connected ?? this.address);\n }\n\n get state(): WalletAdapterState {\n if (this.isConnected) return 'connected';\n return 'disconnected';\n }\n\n get chain(): ChainInfo | null {\n if (!this.isConnected) return null;\n return {\n id: 'solana',\n name: 'Solana',\n network: 'solana',\n };\n }\n\n get walletName(): string | null {\n return this._wallet.connector?.name ?? null;\n }\n\n // ---------------------------------------------------------------------------\n // Signer Access\n // ---------------------------------------------------------------------------\n\n private async ensureSigner(): Promise<DynamicSolanaSigner> {\n if (this._signer) return this._signer;\n\n // Try wallet.getSigner first, then connector.getSigner\n if (typeof this._wallet.getSigner === 'function') {\n this._signer = await this._wallet.getSigner();\n } else if (this._wallet.connector && typeof this._wallet.connector.getSigner === 'function') {\n this._signer = await this._wallet.connector.getSigner();\n } else {\n throw new Error('Wallet does not support getSigner');\n }\n\n return this._signer;\n }\n\n // ---------------------------------------------------------------------------\n // SolanaWalletAdapter Methods\n // ---------------------------------------------------------------------------\n\n getPublicKey(): PublicKey | null {\n const addr = this.address;\n if (!addr) return null;\n try {\n return new PublicKey(addr);\n } catch {\n return null;\n }\n }\n\n async signMessage(message: string | Uint8Array): Promise<Uint8Array> {\n const signer = await this.ensureSigner();\n\n let messageBytes: Uint8Array;\n if (typeof message === 'string') {\n messageBytes = new TextEncoder().encode(message);\n } else {\n messageBytes = message;\n }\n\n return signer.signMessage(messageBytes);\n }\n\n async signTransaction<T extends Transaction | VersionedTransaction>(transaction: T): Promise<T> {\n const signer = await this.ensureSigner();\n return signer.signTransaction(transaction);\n }\n\n async signAllTransactions<T extends Transaction | VersionedTransaction>(transactions: T[]): Promise<T[]> {\n const signer = await this.ensureSigner();\n\n if (typeof signer.signAllTransactions === 'function') {\n return signer.signAllTransactions(transactions);\n }\n\n // Fallback: sign one at a time\n const signed: T[] = [];\n for (const tx of transactions) {\n signed.push(await signer.signTransaction(tx));\n }\n return signed;\n }\n\n async isLedger(): Promise<boolean> {\n if (this._isLedger !== null) return this._isLedger;\n\n try {\n const signer = await this.ensureSigner();\n this._isLedger = await detectLedger(signer);\n return this._isLedger;\n } catch (error) {\n // Propagate user cancellation\n if ((error as { code?: string })?.code === 'N1_SIGNATURE_CANCELLED') {\n throw error;\n }\n // Default to false on other errors\n return false;\n }\n }\n\n async getSigner(): Promise<{\n publicKey: PublicKey;\n signTransaction: <T extends Transaction | VersionedTransaction>(tx: T) => Promise<T>;\n signAllTransactions: <T extends Transaction | VersionedTransaction>(txs: T[]) => Promise<T[]>;\n signMessage: (message: Uint8Array) => Promise<Uint8Array>;\n }> {\n const signer = await this.ensureSigner();\n\n return {\n publicKey: signer.publicKey,\n signTransaction: (tx) => signer.signTransaction(tx),\n signAllTransactions: async <T extends Transaction | VersionedTransaction>(txs: T[]): Promise<T[]> => {\n if (typeof signer.signAllTransactions === 'function') {\n return signer.signAllTransactions(txs);\n }\n const signed: T[] = [];\n for (const tx of txs) {\n signed.push(await signer.signTransaction(tx));\n }\n return signed;\n },\n signMessage: (msg) => signer.signMessage(msg),\n };\n }\n\n async disconnect(): Promise<void> {\n if (typeof this._wallet.disconnect === 'function') {\n await this._wallet.disconnect();\n }\n this._signer = null;\n this._isLedger = null;\n }\n\n getRawWallet(): unknown {\n return this._wallet;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8KH,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAsB;IACpD,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,OAAO,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;AACnC,CAAC","sourcesContent":["/**\n * Type definitions for unified wallet adapters.\n * Provides a consistent interface across Solana and EVM wallets.\n */\n\nimport type { PublicKey, Transaction, VersionedTransaction } from '@solana/web3.js';\nimport type { Chain as ViemChain } from 'viem';\nimport type { NetworkType, ChainInfo } from '../utils/chain';\n\n// ---------------------------------------------------------------------------\n// Base Types\n// ---------------------------------------------------------------------------\n\n/**\n * Possible states for a wallet adapter.\n */\nexport type WalletAdapterState = 'disconnected' | 'connecting' | 'connected' | 'error';\n\n/**\n * Error from wallet operations.\n */\nexport interface WalletAdapterError {\n code: string;\n message: string;\n cause?: unknown;\n}\n\n// ---------------------------------------------------------------------------\n// Base Wallet Adapter Interface\n// ---------------------------------------------------------------------------\n\n/**\n * Base interface for all wallet adapters.\n * Provides common functionality across Solana and EVM wallets.\n */\nexport interface WalletAdapter {\n /** The network type (solana or evm) */\n readonly network: NetworkType;\n\n /** The wallet address (null if not connected) */\n readonly address: string | null;\n\n /** Whether the wallet is currently connected */\n readonly isConnected: boolean;\n\n /** Current connection state */\n readonly state: WalletAdapterState;\n\n /** Chain information (null if not connected or unknown) */\n readonly chain: ChainInfo | null;\n\n /** Name of the wallet (e.g., \"Phantom\", \"MetaMask\") */\n readonly walletName: string | null;\n\n /**\n * Signs a message with the wallet.\n * @param message - The message to sign (string or bytes)\n * @returns The signature as a Uint8Array\n */\n signMessage(message: string | Uint8Array): Promise<Uint8Array>;\n\n /**\n * Disconnects the wallet.\n */\n disconnect(): Promise<void>;\n\n /**\n * Returns the raw underlying wallet object.\n * Use with caution - prefer the typed interface methods.\n */\n getRawWallet(): unknown;\n}\n\n// ---------------------------------------------------------------------------\n// Solana Wallet Adapter\n// ---------------------------------------------------------------------------\n\n/**\n * Solana-specific wallet adapter interface.\n */\nexport interface SolanaWalletAdapter extends WalletAdapter {\n readonly network: 'solana';\n\n /**\n * Gets the wallet's public key.\n * @returns PublicKey object\n */\n getPublicKey(): PublicKey | null;\n\n /**\n * Signs a transaction.\n * @param transaction - The transaction to sign\n * @returns The signed transaction\n */\n signTransaction<T extends Transaction | VersionedTransaction>(transaction: T): Promise<T>;\n\n /**\n * Signs multiple transactions.\n * @param transactions - The transactions to sign\n * @returns The signed transactions\n */\n signAllTransactions<T extends Transaction | VersionedTransaction>(transactions: T[]): Promise<T[]>;\n\n /**\n * Checks if the wallet is a Ledger hardware wallet.\n * Important for transaction size limits.\n */\n isLedger(): Promise<boolean>;\n\n /**\n * Gets the signer for use with SDKs that need it.\n */\n getSigner(): Promise<{\n publicKey: PublicKey;\n signTransaction: <T extends Transaction | VersionedTransaction>(tx: T) => Promise<T>;\n signAllTransactions: <T extends Transaction | VersionedTransaction>(txs: T[]) => Promise<T[]>;\n signMessage: (message: Uint8Array) => Promise<Uint8Array>;\n }>;\n}\n\n// ---------------------------------------------------------------------------\n// EVM Wallet Adapter\n// ---------------------------------------------------------------------------\n\n/**\n * EIP-1193 provider interface (subset needed for wallet operations).\n */\nexport interface EIP1193Provider {\n request: (args: { method: string; params?: unknown[] }) => Promise<unknown>;\n on?: (event: string, handler: (...args: unknown[]) => void) => void;\n removeListener?: (event: string, handler: (...args: unknown[]) => void) => void;\n}\n\n/**\n * EVM-specific wallet adapter interface.\n */\nexport interface EVMWalletAdapter extends WalletAdapter {\n readonly network: 'evm';\n\n /** The current chain ID (null if not connected). May be cached. */\n readonly chainId: number | null;\n\n /**\n * Gets the current chain ID from the provider.\n * More reliable than the cached chainId property - use this when\n * you need the live value (e.g., before switching networks).\n * @returns The current chain ID or null\n */\n getCurrentChainId(): Promise<number | null>;\n\n /**\n * Switches to a different chain.\n * @param chainId - The target chain ID\n */\n switchChain(chainId: number): Promise<void>;\n\n /**\n * Gets the EIP-1193 provider.\n * @returns Provider for direct RPC calls\n */\n getProvider(): Promise<EIP1193Provider>;\n\n /**\n * Gets a viem WalletClient.\n * @param chain - Optional chain to use\n * @returns WalletClient for viem operations\n */\n getWalletClient(chain?: ViemChain): Promise<unknown>;\n\n /**\n * Signs typed data (EIP-712).\n * @param data - The typed data to sign\n * @returns The signature as a hex string\n */\n signTypedData(data: unknown): Promise<string>;\n}\n\n// ---------------------------------------------------------------------------\n// Type Guards\n// ---------------------------------------------------------------------------\n\n/**\n * Type guard to check if an adapter is a Solana adapter.\n */\nexport function isSolanaAdapter(adapter: WalletAdapter): adapter is SolanaWalletAdapter {\n return adapter.network === 'solana';\n}\n\n/**\n * Type guard to check if an adapter is an EVM adapter.\n */\nexport function isEVMAdapter(adapter: WalletAdapter): adapter is EVMWalletAdapter {\n return adapter.network === 'evm';\n}\n\n// ---------------------------------------------------------------------------\n// Factory Types\n// ---------------------------------------------------------------------------\n\n/**\n * Options for creating a wallet adapter.\n */\nexport interface CreateAdapterOptions {\n /** The network type */\n network: NetworkType;\n /** The raw wallet object from Dynamic SDK */\n wallet: unknown;\n /** Optional chain info */\n chain?: ChainInfo;\n}\n\n/**\n * Factory function type for creating adapters.\n */\nexport type WalletAdapterFactory = (options: CreateAdapterOptions) => WalletAdapter;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"N1Loader.js","sourceRoot":"","sources":["../../src/animations/N1Loader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AAGb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,MAAsC,MAAM,cAAc,CAAC;AAElE,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAS5C;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAQT;IAPvB,IAAA,YAAS,EAAT,IAAI,mBAAG,EAAE,KAAA,EACT,YAAW,EAAX,IAAI,mBAAG,IAAI,KAAA,EACX,gBAAe,EAAf,QAAQ,mBAAG,IAAI,KAAA,EACf,aAAS,EAAT,KAAK,mBAAG,CAAC,KAAA,EACT,SAAS,eAAA,EACT,KAAK,WAAA,EACF,IAAI,cAPyB,2DAQjC,CADQ;IAEP,IAAM,SAAS,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACtD,IAAM,cAAc,cAClB,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,IACT,KAAK,CACT,CAAC;IAEF,SAAS,CAAC;QACR,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,uBAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,IAAM,IAAI,cACxD,KAAC,MAAM,IACL,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GACxC,IACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["'use client';\n\nimport type { CSSProperties, HTMLAttributes } from 'react';\nimport { useEffect, useRef } from 'react';\nimport Lottie, { type LottieRefCurrentProps } from 'lottie-react';\n\nimport animationData from './N1Loader.json';\n\nexport interface N1LoaderAnimationProps extends HTMLAttributes<HTMLDivElement> {\n size?: number;\n loop?: boolean;\n autoplay?: boolean;\n speed?: number;\n}\n\n/**\n * N1 loader rendered via the original Lottie JSON animation.\n */\nexport function N1LoaderAnimation({\n size = 96,\n loop = true,\n autoplay = true,\n speed = 1,\n className,\n style,\n ...rest\n}: N1LoaderAnimationProps) {\n const lottieRef = useRef<LottieRefCurrentProps>(null);\n const containerStyle: CSSProperties = {\n width: size,\n height: size,\n ...style,\n };\n\n useEffect(() => {\n if (lottieRef.current) {\n lottieRef.current.setSpeed(speed);\n }\n }, [speed]);\n\n return (\n <div className={className} style={containerStyle} {...rest}>\n <Lottie\n lottieRef={lottieRef}\n animationData={animationData}\n loop={loop}\n autoplay={autoplay}\n style={{ width: '100%', height: '100%' }}\n />\n </div>\n );\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Processing.js","sourceRoot":"","sources":["../../src/animations/Processing.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AAGb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,MAAsC,MAAM,cAAc,CAAC;AAElE,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAS9C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAQT;IAPzB,IAAA,YAAU,EAAV,IAAI,mBAAG,GAAG,KAAA,EACV,YAAW,EAAX,IAAI,mBAAG,IAAI,KAAA,EACX,gBAAe,EAAf,QAAQ,mBAAG,IAAI,KAAA,EACf,aAAS,EAAT,KAAK,mBAAG,CAAC,KAAA,EACT,SAAS,eAAA,EACT,KAAK,WAAA,EACF,IAAI,cAP2B,2DAQnC,CADQ;IAEP,IAAM,SAAS,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACtD,IAAM,cAAc,cAClB,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,IACT,KAAK,CACT,CAAC;IAEF,SAAS,CAAC;QACR,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,uBAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,IAAM,IAAI,cACxD,KAAC,MAAM,IACL,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GACxC,IACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["'use client';\n\nimport type { CSSProperties, HTMLAttributes } from 'react';\nimport { useEffect, useRef } from 'react';\nimport Lottie, { type LottieRefCurrentProps } from 'lottie-react';\n\nimport animationData from './Processing.json';\n\nexport interface ProcessingAnimationProps extends HTMLAttributes<HTMLDivElement> {\n size?: number;\n loop?: boolean;\n autoplay?: boolean;\n speed?: number;\n}\n\n/**\n * Processing animation powered by the original Lottie JSON asset.\n */\nexport function ProcessingAnimation({\n size = 120,\n loop = true,\n autoplay = true,\n speed = 1,\n className,\n style,\n ...rest\n}: ProcessingAnimationProps) {\n const lottieRef = useRef<LottieRefCurrentProps>(null);\n const containerStyle: CSSProperties = {\n width: size,\n height: size,\n ...style,\n };\n\n useEffect(() => {\n if (lottieRef.current) {\n lottieRef.current.setSpeed(speed);\n }\n }, [speed]);\n\n return (\n <div className={className} style={containerStyle} {...rest}>\n <Lottie\n lottieRef={lottieRef}\n animationData={animationData}\n loop={loop}\n autoplay={autoplay}\n style={{ width: '100%', height: '100%' }}\n />\n </div>\n );\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import { VersionedTransaction } from '@solana/web3.js';
2
+ export declare const getSolanaChain: () => any;
2
3
  export declare const mapChainToBridgeKit: (chain: string) => any;
3
4
  export declare const hashVersionedTransaction: (tx: VersionedTransaction) => string;
4
5
  export type ConstructCctpClaimTxParams = {
@@ -45,24 +45,30 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
45
45
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
46
  }
47
47
  };
48
+ var _a;
48
49
  import { createAdapterFromProvider } from '@circle-fin/adapter-solana';
49
- import { ArbitrumSepolia, BaseSepolia, EthereumSepolia, SolanaDevnet } from '@circle-fin/bridge-kit/chains';
50
+ import { ArbitrumSepolia, BaseSepolia, EthereumSepolia, SolanaDevnet, Arbitrum, Base, Ethereum, Solana, } from '@circle-fin/bridge-kit/chains';
50
51
  import * as anchor from '@coral-xyz/anchor';
51
52
  import { createAssociatedTokenAccountInstruction, createTransferInstruction, getAssociatedTokenAddressSync } from '@solana/spl-token';
52
53
  import { Connection, PublicKey, TransactionMessage, VersionedTransaction, LAMPORTS_PER_SOL, SystemProgram, ComputeBudgetProgram } from '@solana/web3.js';
53
54
  import { sha256 } from '@noble/hashes/sha2';
54
55
  import { bytesToHex } from '@noble/hashes/utils';
56
+ // Network selection based on TESTNET env var (default: true for testnet)
57
+ // Check both TESTNET (server-side) and NEXT_PUBLIC_TESTNET (client-side/Next.js)
58
+ var isTestnet = ((_a = process.env.TESTNET) !== null && _a !== void 0 ? _a : process.env.NEXT_PUBLIC_TESTNET) !== 'false';
59
+ // Get the appropriate Solana chain based on network
60
+ export var getSolanaChain = function () { return isTestnet ? SolanaDevnet : Solana; };
55
61
  // Map chain string to BridgeKit chain object
56
62
  export var mapChainToBridgeKit = function (chain) {
57
63
  var lower = chain.toLowerCase().trim();
58
64
  if (lower === 'arbitrum' || lower === 'arb')
59
- return ArbitrumSepolia;
65
+ return isTestnet ? ArbitrumSepolia : Arbitrum;
60
66
  if (lower === 'solana')
61
- return SolanaDevnet;
67
+ return isTestnet ? SolanaDevnet : Solana;
62
68
  if (lower === 'base')
63
- return BaseSepolia;
69
+ return isTestnet ? BaseSepolia : Base;
64
70
  if (lower === 'ethereum' || lower === 'evm')
65
- return EthereumSepolia;
71
+ return isTestnet ? EthereumSepolia : Ethereum;
66
72
  throw new Error("Unsupported chain \"".concat(chain, "\""));
67
73
  };
68
74
  // Mock signer to trick SolanaAdapter
@@ -251,7 +257,7 @@ export var constructCctpClaimTx = function (params) { return __awaiter(void 0, v
251
257
  fromChain = typeof params.sourceChain === 'string'
252
258
  ? mapChainToBridgeKit(params.sourceChain)
253
259
  : params.sourceChain;
254
- toChain = SolanaDevnet;
260
+ toChain = getSolanaChain();
255
261
  mockSigner = createMockSigner(params.feePayer);
256
262
  return [4 /*yield*/, createAdapterFromProvider({
257
263
  connection: connection,
@@ -1 +1 @@
1
- {"version":3,"file":"cctp-solana.js","sourceRoot":"","sources":["../../bridge-assist/cctp-solana.ts"],"names":[],"mappings":"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","sourcesContent":["import { createAdapterFromProvider } from '@circle-fin/adapter-solana';\nimport { ArbitrumSepolia, BaseSepolia, EthereumSepolia, SolanaDevnet } from '@circle-fin/bridge-kit/chains';\nimport * as anchor from '@coral-xyz/anchor';\nimport { createAssociatedTokenAccountInstruction, createTransferInstruction, getAssociatedTokenAddressSync } from '@solana/spl-token';\nimport { Connection, PublicKey, TransactionMessage, VersionedTransaction, AddressLookupTableAccount, LAMPORTS_PER_SOL, SystemProgram, ComputeBudgetProgram } from '@solana/web3.js';\nimport { sha256 } from '@noble/hashes/sha2';\nimport { bytesToHex } from '@noble/hashes/utils';\n\n// Map chain string to BridgeKit chain object\nexport const mapChainToBridgeKit = (chain: string): any => {\n const lower = chain.toLowerCase().trim();\n if (lower === 'arbitrum' || lower === 'arb') return ArbitrumSepolia;\n if (lower === 'solana') return SolanaDevnet;\n if (lower === 'base') return BaseSepolia;\n if (lower === 'ethereum' || lower === 'evm') return EthereumSepolia;\n throw new Error(`Unsupported chain \"${chain}\"`);\n};\n\n// Mock signer to trick SolanaAdapter\nconst createMockSigner = (publicKeyString: string) => {\n const publicKey = new PublicKey(publicKeyString);\n return {\n publicKey,\n isConnected: true,\n connect: async () => { },\n disconnect: async () => { },\n signTransaction: async (tx: VersionedTransaction) => tx,\n signAllTransactions: async (txs: VersionedTransaction[]) => txs,\n signMessage: async (msg: Uint8Array) => msg,\n };\n};\n\n// Helper functions to convert addresses\nconst detectFormat = (address: string): 'evm' | 'solana' | 'bytes32' => {\n if (/^0x[0-9a-fA-F]{40}$/.test(address)) return 'evm';\n if (/^0x[0-9a-fA-F]{64}$/.test(address)) return 'bytes32';\n try {\n const pubkey = new PublicKey(address);\n if (pubkey.toBuffer().length === 32) return 'solana';\n } catch { }\n throw new Error(`Unsupported address format: ${address}`);\n};\n\nconst toBytes32 = (address: string): string => {\n const fmt = detectFormat(address);\n switch (fmt) {\n case 'evm': {\n const hex = address.startsWith('0x') ? address.slice(2) : address;\n return '0x' + '0'.repeat(24) + hex;\n }\n case 'bytes32':\n return address;\n case 'solana': {\n const pubkey = new PublicKey(address);\n return '0x' + Buffer.from(pubkey.toBuffer()).toString('hex');\n }\n }\n};\n\nconst bytes32ToSolana = (bytes32: string): string => {\n const hex = bytes32.startsWith('0x') ? bytes32.slice(2) : bytes32;\n return new PublicKey(Buffer.from(hex, 'hex')).toBase58();\n};\n\nconst convertAddress = (address: string, targetFormat: 'evm' | 'solana' | 'bytes32'): string => {\n const current = detectFormat(address);\n if (current === targetFormat) return address;\n const asBytes32 = toBytes32(address);\n switch (targetFormat) {\n case 'bytes32':\n return asBytes32;\n case 'solana':\n return bytes32ToSolana(asBytes32);\n case 'evm': {\n const hex = asBytes32.startsWith('0x') ? asBytes32.slice(2) : asBytes32;\n return '0x' + hex.slice(-40);\n }\n }\n throw new Error(`Unsupported target format: ${targetFormat}`);\n};\n\n// Derive all PDAs needed for receiveMessage\nconst derivePdas = (\n sourceChain: any,\n destinationChain: any,\n messageTransmitterProgramId: PublicKey,\n tokenMessengerProgramId: PublicKey\n) => {\n const remoteMintKey = new PublicKey(convertAddress(sourceChain.usdcAddress, 'solana'));\n const destinationUsdcMint = new PublicKey(destinationChain.usdcAddress);\n\n const [tokenMessengerPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('token_messenger')],\n tokenMessengerProgramId\n );\n const [messageTransmitterPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('message_transmitter')],\n messageTransmitterProgramId\n );\n const [tokenMinterPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('token_minter')],\n tokenMessengerProgramId\n );\n const [localTokenPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('local_token'), destinationUsdcMint.toBuffer()],\n tokenMessengerProgramId\n );\n const domainSeed = Buffer.from(sourceChain.cctp.domain.toString(), 'utf8');\n const [remoteTokenMessengerPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('remote_token_messenger'), domainSeed],\n tokenMessengerProgramId\n );\n const [tokenPairPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('token_pair'), domainSeed, remoteMintKey.toBuffer()],\n tokenMessengerProgramId\n );\n const [custodyPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('custody'), destinationUsdcMint.toBuffer()],\n tokenMessengerProgramId\n );\n const [messageTransmitterAuthorityPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('message_transmitter_authority'), tokenMessengerProgramId.toBuffer()],\n messageTransmitterProgramId\n );\n\n return {\n tokenMessengerPda,\n messageTransmitterPda,\n tokenMinterPda,\n localTokenPda,\n remoteTokenMessengerPda,\n tokenPairPda,\n custodyPda,\n messageTransmitterAuthorityPda,\n remoteMintKey,\n };\n};\n\n// Build receiveMessage instruction\nconst buildReceiveMessageInstruction = async (\n params: {\n adapter: any;\n message: string;\n attestation: string;\n destinationAddress: string;\n toChain: any;\n },\n programs: {\n tokenMessenger: any;\n messageTransmitter: any;\n },\n pdas: ReturnType<typeof derivePdas>,\n feeRecipientAta: PublicKey,\n eventNonce: string\n) => {\n const provider = await params.adapter.getAnchorProvider({ chain: params.toChain });\n const user = provider.wallet.publicKey;\n const usdcMint = new PublicKey(params.toChain.usdcAddress);\n\n // Derive usedNoncePda from eventNonce\n const nonceHex = eventNonce.replace(/^0x/, '');\n if (nonceHex.length !== 64) {\n throw new Error(`Invalid eventNonce ${eventNonce}`);\n }\n const nonceBuf = Buffer.from(nonceHex, 'hex');\n const [usedNoncePda] = PublicKey.findProgramAddressSync(\n [Buffer.from('used_nonce'), nonceBuf],\n programs.messageTransmitter.programId\n );\n\n // Determine the ATA owner (recipient of the tokens)\n const mintRecipientOwner = params.destinationAddress\n ? new PublicKey(params.destinationAddress)\n : user;\n\n // Derive the USDC ATA for the recipient\n const userUsdcAta = anchor.utils.token.associatedAddress({\n mint: usdcMint,\n owner: mintRecipientOwner,\n });\n\n if (!('receiveMessage' in programs.messageTransmitter.methods)) {\n throw new Error('receiveMessage method not found');\n }\n\n // Build instruction\n const instruction = await programs.messageTransmitter.methods['receiveMessage']({\n message: Buffer.from(params.message.replace(/^0x/, ''), 'hex'),\n attestation: Buffer.from(params.attestation.replace(/^0x/, ''), 'hex'),\n })\n .accounts({\n payer: user,\n caller: user,\n authorityPda: pdas.messageTransmitterAuthorityPda,\n messageTransmitter: pdas.messageTransmitterPda,\n usedNonce: usedNoncePda,\n receiver: programs.tokenMessenger.programId,\n systemProgram: anchor.web3.SystemProgram.programId,\n })\n .remainingAccounts([\n { pubkey: pdas.tokenMessengerPda, isSigner: false, isWritable: false },\n { pubkey: pdas.remoteTokenMessengerPda, isSigner: false, isWritable: false },\n { pubkey: pdas.tokenMinterPda, isSigner: false, isWritable: true },\n { pubkey: pdas.localTokenPda, isSigner: false, isWritable: true },\n { pubkey: pdas.tokenPairPda, isSigner: false, isWritable: false },\n { pubkey: feeRecipientAta, isSigner: false, isWritable: true },\n { pubkey: userUsdcAta, isSigner: false, isWritable: true },\n { pubkey: pdas.custodyPda, isSigner: false, isWritable: true },\n {\n pubkey: anchor.utils.token.TOKEN_PROGRAM_ID,\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: PublicKey.findProgramAddressSync(\n [Buffer.from('__event_authority')],\n programs.tokenMessenger.programId\n )[0],\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: programs.tokenMessenger.programId,\n isSigner: false,\n isWritable: false,\n },\n ])\n .instruction();\n\n return { instruction, userUsdcAta, mintRecipientOwner };\n};\n\nexport const hashVersionedTransaction = (tx: VersionedTransaction): string => {\n const serialized = tx.serialize();\n return bytesToHex(sha256(serialized));\n};\n\nexport type ConstructCctpClaimTxParams = {\n message: string;\n attestation: string;\n sourceChain: string | any;\n destinationAddress: string;\n feePayer: string;\n userAddress: string;\n lookupTableAddress: string;\n rpcUrl?: string;\n blockhash?: string;\n lastValidBlockHeight?: number;\n decodedMessage?: {\n sourceDomain: string;\n destinationDomain: string;\n nonce: string;\n sender: string;\n recipient: string;\n decodedMessageBody?: {\n mintRecipient?: string;\n amount?: string;\n burnToken?: string;\n messageSender?: string;\n };\n };\n};\n\nexport const constructCctpClaimTx = async (\n params: ConstructCctpClaimTxParams\n): Promise<{ tx: VersionedTransaction; blockhash: string; lastValidBlockHeight: number }> => {\n const rpcUrl = params.rpcUrl ?? 'https://api.devnet.solana.com';\n const connection = new Connection(rpcUrl);\n\n const feePayerPubkey = new PublicKey(params.feePayer);\n const userPubkey = new PublicKey(params.userAddress);\n const fromChain =\n typeof params.sourceChain === 'string'\n ? mapChainToBridgeKit(params.sourceChain)\n : params.sourceChain;\n const toChain = SolanaDevnet;\n\n // Mock signer for adapter\n const mockSigner = createMockSigner(params.feePayer);\n const adapter = await createAdapterFromProvider({\n connection: connection as any,\n provider: mockSigner as any,\n });\n\n const context = {\n chain: toChain,\n address: params.feePayer,\n };\n\n const provider = await adapter.getAnchorProvider(context);\n\n const v2config = toChain.cctp.contracts.v2;\n if (!v2config || v2config.type !== 'split') {\n throw new Error('Unsupported CCTP v2 contract configuration for Solana. Expected \"split\" type.');\n }\n const config = v2config;\n\n const [tokenMessengerProgram, messageTransmitterProgram] = await Promise.all([\n anchor.Program.at(new PublicKey(config.tokenMessenger), provider),\n anchor.Program.at(new PublicKey(config.messageTransmitter), provider),\n ]);\n\n const pdas = derivePdas(\n fromChain,\n toChain,\n messageTransmitterProgram.programId,\n tokenMessengerProgram.programId\n );\n\n if (!('tokenMessenger' in tokenMessengerProgram.account)) {\n throw new Error('TokenMessenger account not found');\n }\n const tokenMessengerState = await (tokenMessengerProgram.account as any).tokenMessenger.fetch(\n pdas.tokenMessengerPda\n );\n const usdcMint = new PublicKey(toChain.usdcAddress);\n const feeRecipientAta = anchor.utils.token.associatedAddress({\n mint: usdcMint,\n owner: (tokenMessengerState as any)['feeRecipient'],\n });\n\n // Extract event nonce from decoded message or raw message\n let eventNonce = '0x0';\n if (params.decodedMessage?.nonce) {\n eventNonce = params.decodedMessage.nonce.startsWith('0x')\n ? params.decodedMessage.nonce\n : `0x${params.decodedMessage.nonce}`;\n } else {\n const msgHex = params.message.startsWith('0x') ? params.message.slice(2) : params.message;\n if (msgHex.length >= 88) {\n eventNonce = '0x' + msgHex.slice(24, 88);\n }\n }\n\n const { instruction, userUsdcAta, mintRecipientOwner } = await buildReceiveMessageInstruction(\n {\n adapter,\n message: params.message,\n attestation: params.attestation,\n destinationAddress: params.destinationAddress,\n toChain,\n },\n {\n tokenMessenger: tokenMessengerProgram,\n messageTransmitter: messageTransmitterProgram,\n },\n pdas,\n feeRecipientAta,\n eventNonce\n );\n\n const instructions: anchor.web3.TransactionInstruction[] = [];\n \n // Set compute unit limits to help with the transaction being confirmed\n instructions.push(\n ComputeBudgetProgram.setComputeUnitPrice({\n microLamports: 200_000,\n }),\n ComputeBudgetProgram.setComputeUnitLimit({\n units: 400_000,\n })\n );\n \n const feePayerAta = getAssociatedTokenAddressSync(usdcMint, feePayerPubkey);\n\n const ataAccountInfo = await connection.getAccountInfo(userUsdcAta);\n if (!ataAccountInfo) {\n const ataInstruction = createAssociatedTokenAccountInstruction(\n feePayerPubkey,\n userUsdcAta,\n mintRecipientOwner,\n usdcMint\n );\n instructions.push(ataInstruction);\n }\n\n const feePayerAtaInfo = await connection.getAccountInfo(feePayerAta);\n if (!feePayerAtaInfo) {\n const feePayerAtaIx = createAssociatedTokenAccountInstruction(\n feePayerPubkey,\n feePayerAta,\n feePayerPubkey,\n usdcMint\n );\n instructions.push(feePayerAtaIx);\n }\n\n instructions.push(instruction);\n\n const feeAmount = 500000; // 0.50 * 1e6\n const transferIx = createTransferInstruction(userUsdcAta, feePayerAta, userPubkey, feeAmount);\n instructions.push(transferIx);\n\n // Send a small SOL rebate (0.003 SOL) from the fee payer to the user to help cover fees.\n const solRebateLamports = Math.round(0.003 * LAMPORTS_PER_SOL);\n instructions.push(\n SystemProgram.transfer({\n fromPubkey: feePayerPubkey,\n toPubkey: userPubkey,\n lamports: solRebateLamports,\n })\n );\n\n // Normalize signer flags: only fee payer and user should be signers\n const modifiedInstructions = instructions.map((ix: any) => {\n const newKeys = ix.keys.map((meta: any) => {\n if (meta.pubkey.equals(feePayerPubkey)) {\n return { ...meta, isSigner: true, isWritable: meta.isWritable ?? true };\n }\n if (meta.pubkey.equals(userPubkey)) {\n return { ...meta, isSigner: true };\n }\n return { ...meta, isSigner: false };\n });\n return { ...ix, keys: newKeys };\n });\n\n if (!params.lookupTableAddress) {\n throw new Error('lookupTableAddress is required for claim transaction');\n }\n const lookupTableAddress = new PublicKey(params.lookupTableAddress);\n const lookupTableInfo = await connection.getAddressLookupTable(lookupTableAddress);\n if (!lookupTableInfo.value) {\n throw new Error(`Lookup table ${lookupTableAddress.toBase58()} not found`);\n }\n const lookupTableAccount = lookupTableInfo.value;\n\n let blockhash = params.blockhash;\n let lastValidBlockHeight = params.lastValidBlockHeight;\n if (!blockhash) {\n const latest = await connection.getLatestBlockhash();\n blockhash = latest.blockhash;\n lastValidBlockHeight = latest.lastValidBlockHeight;\n }\n\n const messageV0 = new TransactionMessage({\n payerKey: feePayerPubkey,\n recentBlockhash: blockhash,\n instructions: modifiedInstructions,\n }).compileToV0Message([lookupTableAccount as AddressLookupTableAccount]);\n\n const versionedTx = new VersionedTransaction(messageV0);\n\n return { tx: versionedTx as any, blockhash: blockhash!, lastValidBlockHeight: lastValidBlockHeight! };\n};\n"]}
1
+ {"version":3,"file":"cctp-solana.js","sourceRoot":"","sources":["../../../bridge-assist/cctp-solana.ts"],"names":[],"mappings":"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","sourcesContent":["import { createAdapterFromProvider } from '@circle-fin/adapter-solana';\nimport {\n ArbitrumSepolia,\n BaseSepolia,\n EthereumSepolia,\n SolanaDevnet,\n Arbitrum,\n Base,\n Ethereum,\n Solana,\n} from '@circle-fin/bridge-kit/chains';\nimport * as anchor from '@coral-xyz/anchor';\nimport { createAssociatedTokenAccountInstruction, createTransferInstruction, getAssociatedTokenAddressSync } from '@solana/spl-token';\nimport { Connection, PublicKey, TransactionMessage, VersionedTransaction, AddressLookupTableAccount, LAMPORTS_PER_SOL, SystemProgram, ComputeBudgetProgram } from '@solana/web3.js';\nimport { sha256 } from '@noble/hashes/sha2';\nimport { bytesToHex } from '@noble/hashes/utils';\n\n// Network selection based on TESTNET env var (default: true for testnet)\n// Check both TESTNET (server-side) and NEXT_PUBLIC_TESTNET (client-side/Next.js)\nconst isTestnet = (process.env.TESTNET ?? process.env.NEXT_PUBLIC_TESTNET) !== 'false';\n\n// Get the appropriate Solana chain based on network\nexport const getSolanaChain = (): any => isTestnet ? SolanaDevnet : Solana;\n\n// Map chain string to BridgeKit chain object\nexport const mapChainToBridgeKit = (chain: string): any => {\n const lower = chain.toLowerCase().trim();\n if (lower === 'arbitrum' || lower === 'arb') return isTestnet ? ArbitrumSepolia : Arbitrum;\n if (lower === 'solana') return isTestnet ? SolanaDevnet : Solana;\n if (lower === 'base') return isTestnet ? BaseSepolia : Base;\n if (lower === 'ethereum' || lower === 'evm') return isTestnet ? EthereumSepolia : Ethereum;\n throw new Error(`Unsupported chain \"${chain}\"`);\n};\n\n// Mock signer to trick SolanaAdapter\nconst createMockSigner = (publicKeyString: string) => {\n const publicKey = new PublicKey(publicKeyString);\n return {\n publicKey,\n isConnected: true,\n connect: async () => { },\n disconnect: async () => { },\n signTransaction: async (tx: VersionedTransaction) => tx,\n signAllTransactions: async (txs: VersionedTransaction[]) => txs,\n signMessage: async (msg: Uint8Array) => msg,\n };\n};\n\n// Helper functions to convert addresses\nconst detectFormat = (address: string): 'evm' | 'solana' | 'bytes32' => {\n if (/^0x[0-9a-fA-F]{40}$/.test(address)) return 'evm';\n if (/^0x[0-9a-fA-F]{64}$/.test(address)) return 'bytes32';\n try {\n const pubkey = new PublicKey(address);\n if (pubkey.toBuffer().length === 32) return 'solana';\n } catch { }\n throw new Error(`Unsupported address format: ${address}`);\n};\n\nconst toBytes32 = (address: string): string => {\n const fmt = detectFormat(address);\n switch (fmt) {\n case 'evm': {\n const hex = address.startsWith('0x') ? address.slice(2) : address;\n return '0x' + '0'.repeat(24) + hex;\n }\n case 'bytes32':\n return address;\n case 'solana': {\n const pubkey = new PublicKey(address);\n return '0x' + Buffer.from(pubkey.toBuffer()).toString('hex');\n }\n }\n};\n\nconst bytes32ToSolana = (bytes32: string): string => {\n const hex = bytes32.startsWith('0x') ? bytes32.slice(2) : bytes32;\n return new PublicKey(Buffer.from(hex, 'hex')).toBase58();\n};\n\nconst convertAddress = (address: string, targetFormat: 'evm' | 'solana' | 'bytes32'): string => {\n const current = detectFormat(address);\n if (current === targetFormat) return address;\n const asBytes32 = toBytes32(address);\n switch (targetFormat) {\n case 'bytes32':\n return asBytes32;\n case 'solana':\n return bytes32ToSolana(asBytes32);\n case 'evm': {\n const hex = asBytes32.startsWith('0x') ? asBytes32.slice(2) : asBytes32;\n return '0x' + hex.slice(-40);\n }\n }\n throw new Error(`Unsupported target format: ${targetFormat}`);\n};\n\n// Derive all PDAs needed for receiveMessage\nconst derivePdas = (\n sourceChain: any,\n destinationChain: any,\n messageTransmitterProgramId: PublicKey,\n tokenMessengerProgramId: PublicKey\n) => {\n const remoteMintKey = new PublicKey(convertAddress(sourceChain.usdcAddress, 'solana'));\n const destinationUsdcMint = new PublicKey(destinationChain.usdcAddress);\n\n const [tokenMessengerPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('token_messenger')],\n tokenMessengerProgramId\n );\n const [messageTransmitterPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('message_transmitter')],\n messageTransmitterProgramId\n );\n const [tokenMinterPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('token_minter')],\n tokenMessengerProgramId\n );\n const [localTokenPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('local_token'), destinationUsdcMint.toBuffer()],\n tokenMessengerProgramId\n );\n const domainSeed = Buffer.from(sourceChain.cctp.domain.toString(), 'utf8');\n const [remoteTokenMessengerPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('remote_token_messenger'), domainSeed],\n tokenMessengerProgramId\n );\n const [tokenPairPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('token_pair'), domainSeed, remoteMintKey.toBuffer()],\n tokenMessengerProgramId\n );\n const [custodyPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('custody'), destinationUsdcMint.toBuffer()],\n tokenMessengerProgramId\n );\n const [messageTransmitterAuthorityPda] = PublicKey.findProgramAddressSync(\n [Buffer.from('message_transmitter_authority'), tokenMessengerProgramId.toBuffer()],\n messageTransmitterProgramId\n );\n\n return {\n tokenMessengerPda,\n messageTransmitterPda,\n tokenMinterPda,\n localTokenPda,\n remoteTokenMessengerPda,\n tokenPairPda,\n custodyPda,\n messageTransmitterAuthorityPda,\n remoteMintKey,\n };\n};\n\n// Build receiveMessage instruction\nconst buildReceiveMessageInstruction = async (\n params: {\n adapter: any;\n message: string;\n attestation: string;\n destinationAddress: string;\n toChain: any;\n },\n programs: {\n tokenMessenger: any;\n messageTransmitter: any;\n },\n pdas: ReturnType<typeof derivePdas>,\n feeRecipientAta: PublicKey,\n eventNonce: string\n) => {\n const provider = await params.adapter.getAnchorProvider({ chain: params.toChain });\n const user = provider.wallet.publicKey;\n const usdcMint = new PublicKey(params.toChain.usdcAddress);\n\n // Derive usedNoncePda from eventNonce\n const nonceHex = eventNonce.replace(/^0x/, '');\n if (nonceHex.length !== 64) {\n throw new Error(`Invalid eventNonce ${eventNonce}`);\n }\n const nonceBuf = Buffer.from(nonceHex, 'hex');\n const [usedNoncePda] = PublicKey.findProgramAddressSync(\n [Buffer.from('used_nonce'), nonceBuf],\n programs.messageTransmitter.programId\n );\n\n // Determine the ATA owner (recipient of the tokens)\n const mintRecipientOwner = params.destinationAddress\n ? new PublicKey(params.destinationAddress)\n : user;\n\n // Derive the USDC ATA for the recipient\n const userUsdcAta = anchor.utils.token.associatedAddress({\n mint: usdcMint,\n owner: mintRecipientOwner,\n });\n\n if (!('receiveMessage' in programs.messageTransmitter.methods)) {\n throw new Error('receiveMessage method not found');\n }\n\n // Build instruction\n const instruction = await programs.messageTransmitter.methods['receiveMessage']({\n message: Buffer.from(params.message.replace(/^0x/, ''), 'hex'),\n attestation: Buffer.from(params.attestation.replace(/^0x/, ''), 'hex'),\n })\n .accounts({\n payer: user,\n caller: user,\n authorityPda: pdas.messageTransmitterAuthorityPda,\n messageTransmitter: pdas.messageTransmitterPda,\n usedNonce: usedNoncePda,\n receiver: programs.tokenMessenger.programId,\n systemProgram: anchor.web3.SystemProgram.programId,\n })\n .remainingAccounts([\n { pubkey: pdas.tokenMessengerPda, isSigner: false, isWritable: false },\n { pubkey: pdas.remoteTokenMessengerPda, isSigner: false, isWritable: false },\n { pubkey: pdas.tokenMinterPda, isSigner: false, isWritable: true },\n { pubkey: pdas.localTokenPda, isSigner: false, isWritable: true },\n { pubkey: pdas.tokenPairPda, isSigner: false, isWritable: false },\n { pubkey: feeRecipientAta, isSigner: false, isWritable: true },\n { pubkey: userUsdcAta, isSigner: false, isWritable: true },\n { pubkey: pdas.custodyPda, isSigner: false, isWritable: true },\n {\n pubkey: anchor.utils.token.TOKEN_PROGRAM_ID,\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: PublicKey.findProgramAddressSync(\n [Buffer.from('__event_authority')],\n programs.tokenMessenger.programId\n )[0],\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: programs.tokenMessenger.programId,\n isSigner: false,\n isWritable: false,\n },\n ])\n .instruction();\n\n return { instruction, userUsdcAta, mintRecipientOwner };\n};\n\nexport const hashVersionedTransaction = (tx: VersionedTransaction): string => {\n const serialized = tx.serialize();\n return bytesToHex(sha256(serialized));\n};\n\nexport type ConstructCctpClaimTxParams = {\n message: string;\n attestation: string;\n sourceChain: string | any;\n destinationAddress: string;\n feePayer: string;\n userAddress: string;\n lookupTableAddress: string;\n rpcUrl?: string;\n blockhash?: string;\n lastValidBlockHeight?: number;\n decodedMessage?: {\n sourceDomain: string;\n destinationDomain: string;\n nonce: string;\n sender: string;\n recipient: string;\n decodedMessageBody?: {\n mintRecipient?: string;\n amount?: string;\n burnToken?: string;\n messageSender?: string;\n };\n };\n};\n\nexport const constructCctpClaimTx = async (\n params: ConstructCctpClaimTxParams\n): Promise<{ tx: VersionedTransaction; blockhash: string; lastValidBlockHeight: number }> => {\n const rpcUrl = params.rpcUrl ?? 'https://api.devnet.solana.com';\n const connection = new Connection(rpcUrl);\n\n const feePayerPubkey = new PublicKey(params.feePayer);\n const userPubkey = new PublicKey(params.userAddress);\n const fromChain =\n typeof params.sourceChain === 'string'\n ? mapChainToBridgeKit(params.sourceChain)\n : params.sourceChain;\n const toChain = getSolanaChain();\n\n // Mock signer for adapter\n const mockSigner = createMockSigner(params.feePayer);\n const adapter = await createAdapterFromProvider({\n connection: connection as any,\n provider: mockSigner as any,\n });\n\n const context = {\n chain: toChain,\n address: params.feePayer,\n };\n\n const provider = await adapter.getAnchorProvider(context);\n\n const v2config = toChain.cctp.contracts.v2;\n if (!v2config || v2config.type !== 'split') {\n throw new Error('Unsupported CCTP v2 contract configuration for Solana. Expected \"split\" type.');\n }\n const config = v2config;\n\n const [tokenMessengerProgram, messageTransmitterProgram] = await Promise.all([\n anchor.Program.at(new PublicKey(config.tokenMessenger), provider),\n anchor.Program.at(new PublicKey(config.messageTransmitter), provider),\n ]);\n\n const pdas = derivePdas(\n fromChain,\n toChain,\n messageTransmitterProgram.programId,\n tokenMessengerProgram.programId\n );\n\n if (!('tokenMessenger' in tokenMessengerProgram.account)) {\n throw new Error('TokenMessenger account not found');\n }\n const tokenMessengerState = await (tokenMessengerProgram.account as any).tokenMessenger.fetch(\n pdas.tokenMessengerPda\n );\n const usdcMint = new PublicKey(toChain.usdcAddress);\n const feeRecipientAta = anchor.utils.token.associatedAddress({\n mint: usdcMint,\n owner: (tokenMessengerState as any)['feeRecipient'],\n });\n\n // Extract event nonce from decoded message or raw message\n let eventNonce = '0x0';\n if (params.decodedMessage?.nonce) {\n eventNonce = params.decodedMessage.nonce.startsWith('0x')\n ? params.decodedMessage.nonce\n : `0x${params.decodedMessage.nonce}`;\n } else {\n const msgHex = params.message.startsWith('0x') ? params.message.slice(2) : params.message;\n if (msgHex.length >= 88) {\n eventNonce = '0x' + msgHex.slice(24, 88);\n }\n }\n\n const { instruction, userUsdcAta, mintRecipientOwner } = await buildReceiveMessageInstruction(\n {\n adapter,\n message: params.message,\n attestation: params.attestation,\n destinationAddress: params.destinationAddress,\n toChain,\n },\n {\n tokenMessenger: tokenMessengerProgram,\n messageTransmitter: messageTransmitterProgram,\n },\n pdas,\n feeRecipientAta,\n eventNonce\n );\n\n const instructions: anchor.web3.TransactionInstruction[] = [];\n \n // Set compute unit limits to help with the transaction being confirmed\n instructions.push(\n ComputeBudgetProgram.setComputeUnitPrice({\n microLamports: 200_000,\n }),\n ComputeBudgetProgram.setComputeUnitLimit({\n units: 400_000,\n })\n );\n \n const feePayerAta = getAssociatedTokenAddressSync(usdcMint, feePayerPubkey);\n\n const ataAccountInfo = await connection.getAccountInfo(userUsdcAta);\n if (!ataAccountInfo) {\n const ataInstruction = createAssociatedTokenAccountInstruction(\n feePayerPubkey,\n userUsdcAta,\n mintRecipientOwner,\n usdcMint\n );\n instructions.push(ataInstruction);\n }\n\n const feePayerAtaInfo = await connection.getAccountInfo(feePayerAta);\n if (!feePayerAtaInfo) {\n const feePayerAtaIx = createAssociatedTokenAccountInstruction(\n feePayerPubkey,\n feePayerAta,\n feePayerPubkey,\n usdcMint\n );\n instructions.push(feePayerAtaIx);\n }\n\n instructions.push(instruction);\n\n const feeAmount = 500000; // 0.50 * 1e6\n const transferIx = createTransferInstruction(userUsdcAta, feePayerAta, userPubkey, feeAmount);\n instructions.push(transferIx);\n\n // Send a small SOL rebate (0.003 SOL) from the fee payer to the user to help cover fees.\n const solRebateLamports = Math.round(0.003 * LAMPORTS_PER_SOL);\n instructions.push(\n SystemProgram.transfer({\n fromPubkey: feePayerPubkey,\n toPubkey: userPubkey,\n lamports: solRebateLamports,\n })\n );\n\n // Normalize signer flags: only fee payer and user should be signers\n const modifiedInstructions = instructions.map((ix: any) => {\n const newKeys = ix.keys.map((meta: any) => {\n if (meta.pubkey.equals(feePayerPubkey)) {\n return { ...meta, isSigner: true, isWritable: meta.isWritable ?? true };\n }\n if (meta.pubkey.equals(userPubkey)) {\n return { ...meta, isSigner: true };\n }\n return { ...meta, isSigner: false };\n });\n return { ...ix, keys: newKeys };\n });\n\n if (!params.lookupTableAddress) {\n throw new Error('lookupTableAddress is required for claim transaction');\n }\n const lookupTableAddress = new PublicKey(params.lookupTableAddress);\n const lookupTableInfo = await connection.getAddressLookupTable(lookupTableAddress);\n if (!lookupTableInfo.value) {\n throw new Error(`Lookup table ${lookupTableAddress.toBase58()} not found`);\n }\n const lookupTableAccount = lookupTableInfo.value;\n\n let blockhash = params.blockhash;\n let lastValidBlockHeight = params.lastValidBlockHeight;\n if (!blockhash) {\n const latest = await connection.getLatestBlockhash();\n blockhash = latest.blockhash;\n lastValidBlockHeight = latest.lastValidBlockHeight;\n }\n\n const messageV0 = new TransactionMessage({\n payerKey: feePayerPubkey,\n recentBlockhash: blockhash,\n instructions: modifiedInstructions,\n }).compileToV0Message([lookupTableAccount as AddressLookupTableAccount]);\n\n const versionedTx = new VersionedTransaction(messageV0);\n\n return { tx: versionedTx as any, blockhash: blockhash!, lastValidBlockHeight: lastValidBlockHeight! };\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingFallback.js","sourceRoot":"","sources":["../../src/components/LoadingFallback.tsx"],"names":[],"mappings":";AAEA;;GAEG;AACH,MAAM,CAAC,IAAM,eAAe,GAAa,cAAM,OAAA,CAC7C,cAAK,SAAS,EAAC,gDAAgD,YAC7D,cAAK,SAAS,EAAC,6EAA6E,GAAO,GAC/F,CACP,EAJ8C,CAI9C,CAAC","sourcesContent":["import React from 'react';\n\n/**\n * Simple loading spinner fallback for Suspense boundaries.\n */\nexport const LoadingFallback: React.FC = () => (\n <div className=\"flex items-center justify-center w-full h-full\">\n <div className=\"n1-ww-animate-spin-slow rounded-full h-8 w-8 border-b-2 border-n1-ww-border\"></div>\n </div>\n);\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logo.js","sourceRoot":"","sources":["../../src/components/Logo.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\n\ninterface LogoProps {\n size?: number;\n outlined?: boolean;\n fillOpacity?: number;\n className?: string;\n}\n\n/**\n * N1 logo component with configurable size, outline mode, and fill opacity.\n * Maintains SVG aspect ratio automatically.\n */\nexport default function Logo({\n size = 24,\n outlined = false,\n fillOpacity = 1,\n className,\n}: LogoProps) {\n // Calculate width based on the SVG's aspect ratio (1347.5/838)\n const width = size * (1347.5 / 838);\n const wrapperClassName = className\n ? `cursor-pointer ${className}`\n : 'cursor-pointer text-white';\n\n return (\n <div\n className={wrapperClassName}\n style={{ height: size, width: `${width}px` }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n version=\"1.1\"\n viewBox=\"0 0 1347.5 838\"\n className=\"h-full w-full\"\n preserveAspectRatio=\"xMidYMid meet\"\n >\n <g>\n <g id=\"Layer_1\">\n <path\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: outlined || fillOpacity !== 1 ? '2px' : '0.5px',\n fill: outlined ? 'none' : 'currentColor',\n fillOpacity: outlined ? 0 : fillOpacity,\n transition:\n outlined || fillOpacity !== 1\n ? 'fill-opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1)'\n : undefined,\n }}\n d=\"M965.4,1497.9h-133.8v133.8h133.8v-133.8Z\"\n />\n <path\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: outlined || fillOpacity !== 1 ? '2px' : '0.5px',\n fill: outlined ? 'none' : 'currentColor',\n fillOpacity: outlined ? 0 : fillOpacity,\n transition:\n outlined || fillOpacity !== 1\n ? 'fill-opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1)'\n : undefined,\n }}\n d=\"M394.9,1497.9h-126.3l-134.9,134.9v435.7h134.9v-435.7h70.4l435.7,435.7h190.7l-435.7-435.7-134.9-134.9Z\"\n />\n <path\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: outlined || fillOpacity !== 1 ? '2px' : '0.5px',\n fill: outlined ? 'none' : 'currentColor',\n fillOpacity: outlined ? 0 : fillOpacity,\n transition:\n outlined || fillOpacity !== 1\n ? 'fill-opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1)'\n : undefined,\n }}\n d=\"M1078.9,1632.8v435.7h134.9v-570.5l-134.9,134.9Z\"\n />\n <rect\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: outlined || fillOpacity !== 1 ? '2px' : '0.5px',\n fill: outlined ? 'none' : 'currentColor',\n fillOpacity: outlined ? 0 : fillOpacity,\n transition:\n outlined || fillOpacity !== 1\n ? 'fill-opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1)'\n : undefined,\n }}\n x=\"831.7\"\n y=\"133.8\"\n width=\"133.8\"\n height=\"133.8\"\n />\n <polygon\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: outlined || fillOpacity !== 1 ? '2px' : '0.5px',\n fill: outlined ? 'none' : 'currentColor',\n fillOpacity: outlined ? 0 : fillOpacity,\n transition:\n outlined || fillOpacity !== 1\n ? 'fill-opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1)'\n : undefined,\n }}\n points=\"394.9 133.8 268.6 133.8 133.8 268.6 133.8 704.3 268.6 704.3 268.6 268.6 339 268.6 774.7 704.3 965.4 704.3 529.8 268.6 394.9 133.8\"\n />\n <polygon\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: outlined || fillOpacity !== 1 ? '2px' : '0.5px',\n fill: outlined ? 'none' : 'currentColor',\n fillOpacity: outlined ? 0 : fillOpacity,\n transition:\n outlined || fillOpacity !== 1\n ? 'fill-opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1)'\n : undefined,\n }}\n points=\"1078.9 268.6 1078.9 704.3 1213.8 704.3 1213.8 268.6 1213.8 198.2 1213.8 133.8 1078.9 268.6\"\n />\n </g>\n <g id=\"Gridlines\">\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"965.4\"\n y1=\"1232\"\n x2=\"965.4\"\n y2=\"2334.3\"\n />\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"-359.4\"\n y1=\"1631.7\"\n x2=\"1707.2\"\n y2=\"1631.7\"\n />\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"831.7\"\n y1=\"1232\"\n x2=\"831.7\"\n y2=\"2334.3\"\n />\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"129\"\n y1=\"1232\"\n x2=\"1231.2\"\n y2=\"2334.3\"\n />\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"-61.7\"\n y1=\"1232\"\n x2=\"1040.5\"\n y2=\"2334.3\"\n />\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"-359.4\"\n y1=\"1632.8\"\n x2=\"1707.2\"\n y2=\"1632.8\"\n />\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"268.6\"\n y1=\"1232\"\n x2=\"268.6\"\n y2=\"2334.3\"\n />\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"133.8\"\n y1=\"1232\"\n x2=\"133.8\"\n y2=\"2334.3\"\n />\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"534.5\"\n y1=\"1232\"\n x2=\"-359.4\"\n y2=\"2126\"\n />\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"-359.4\"\n y1=\"1497.9\"\n x2=\"1707.2\"\n y2=\"1497.9\"\n />\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"1479.7\"\n y1=\"1232\"\n x2=\"377.4\"\n y2=\"2334.3\"\n />\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"1213.8\"\n y1=\"1232\"\n x2=\"1213.8\"\n y2=\"2334.3\"\n />\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"-359.4\"\n y1=\"2068.5\"\n x2=\"1707.2\"\n y2=\"2068.5\"\n />\n <line\n style={{\n stroke: 'currentColor',\n strokeMiterlimit: 10,\n strokeWidth: '0.5px',\n }}\n x1=\"1078.9\"\n y1=\"1232\"\n x2=\"1078.9\"\n y2=\"2334.3\"\n />\n </g>\n </g>\n </svg>\n </div>\n );\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"N1ConnectButton.js","sourceRoot":"","sources":["../../src/components/N1ConnectButton.tsx"],"names":[],"mappings":";AAAA,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,MAG/B;IACC,8CAA8C;IACtC,IAAA,aAAa,GAAK,UAAU,EAAE,cAAjB,CAAkB;IACjC,IAAA,KAA2B,UAAU,EAAE,EAArC,WAAW,iBAAA,EAAE,OAAO,aAAiB,CAAC;IACxC,IAAA,KAA2B,QAAQ,EAAE,EAAnC,SAAS,eAAA,EAAE,SAAS,eAAe,CAAC;IAEtC,IAAA,KAAsB,QAAQ,CAAC,KAAK,CAAC,EAApC,MAAM,QAAA,EAAE,SAAS,QAAmB,CAAC;IAC5C,IAAM,WAAW,GAAG,WAAW,IAAI,aAAa;QAC9C,CAAC,CAAC,UAAG,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAM,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE;QACjE,CAAC,CAAC,EAAE,CAAC;IAEP,uCAAuC;IACvC,SAAS,CAAC;QACR,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC;YACvB,SAAS,EAAE,CAAC;YACZ,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAEjC,IAAM,WAAW,GAAG,sBAAsB,CAAC;IAE3C,IAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,IAAM,WAAW,GAAG;QAClB,IAAI,OAAO,IAAI,CAAC,WAAW;YAAE,OAAO,eAAe,CAAC;QACpD,IAAI,CAAC,WAAW;YAAE,OAAO,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC;QACnD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF;;;;;OAKG;IACH,IAAM,WAAW,GAAG;QAClB,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5B,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,WAAW;YAAE,OAAO;QAExB,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACnE,SAAS,EAAE,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,iBAAiB,IAAC,WAAW,EAAE,OAAO,GAAG,WAAW,YACnD,cAAK,SAAS,EAAC,uBAAuB,YACpC,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,WAAW,eACT,OAAO,IAAI,CAAC,WAAW,aAEjC,WAAW,IAAI,aAAa,IAAI,CAC/B,eAAM,SAAS,EAAC,gEAAgE,YAC9E,KAAC,WAAW,IACV,OAAO,EAAE,aAAa,EACtB,SAAS,EAAC,sBAAsB,GAChC,GACG,CACR,EACD,yBAAO,WAAW,EAAE,GAAQ,IACrB,GACL,GACY,CACrB,CAAC;AACJ,CAAC","sourcesContent":["import BlockiesSvg from 'blockies-react-svg';\nimport React, { useEffect, useState } from 'react';\nimport { useNetwork } from '../providers/N1WalletProvider/NetworkProvider';\nimport { useSession } from '../providers/N1WalletProvider/SessionProvider';\nimport { useModal } from '../providers/N1WalletProvider/ModalProvider';\nimport { ShadowRootWrapper } from '../providers/ShadowRootWrapper';\nimport mainCss from '../styles/embedded-main-css';\nimport { logger } from '../utils/logger';\n\n/**\n * Public connect button component for integrating the wallet widget.\n * Shows connection status, handles click events, and defers opening until SDK is ready.\n *\n * Uses the modal state machine:\n * - openModal(): opens the modal (handles cooldown, SDK readiness internally)\n * - isClosing: true when modal is in closing animation\n */\nexport function N1ConnectButton(_props: {\n label: string;\n children?: React.ReactNode;\n}) {\n // Use new providers instead of legacy context\n const { solanaAddress } = useNetwork();\n const { isConnected, loading } = useSession();\n const { openModal, isClosing } = useModal();\n\n const [toOpen, setToOpen] = useState(false);\n const addressText = isConnected && solanaAddress\n ? `${solanaAddress.substring(0, 6)}...${solanaAddress.slice(-4)}`\n : '';\n\n // Deferred open when loading completes\n useEffect(() => {\n if (!loading && toOpen) {\n openModal();\n setToOpen(false);\n }\n }, [loading, toOpen, openModal]);\n\n const buttonClass = 'n1-ww-connect-button';\n\n const injectedCss = '';\n\n const renderLabel = () => {\n if (loading && !isConnected) return 'Connecting...';\n if (!isConnected) return _props.label || 'Connect';\n return addressText;\n };\n\n /**\n * Handles button clicks with guards:\n * - Ignores clicks during modal close animation\n * - Defers opening until loading completes\n * - No-op if already connected\n */\n const handleClick = () => {\n if (isClosing) {\n logger.debug('[N1ConnectButton] click ignored; modal closing');\n return;\n }\n\n if (loading && !isConnected) {\n setToOpen(true);\n logger.debug('[N1ConnectButton] deferring open until loading completes');\n return;\n }\n\n if (isConnected) return;\n\n logger.debug('[N1ConnectButton] opening modal via connect button');\n openModal();\n };\n\n return (\n <ShadowRootWrapper injectedCss={mainCss + injectedCss}>\n <div className=\"n1-wallet-widget dark\">\n <button\n type=\"button\"\n className={buttonClass}\n onClick={handleClick}\n aria-busy={loading && !isConnected}\n >\n {isConnected && solanaAddress && (\n <span className=\"flex h-5 w-5 items-center justify-center rounded-full bg-white\">\n <BlockiesSvg\n address={solanaAddress}\n className=\"h-4 w-4 rounded-full\"\n />\n </span>\n )}\n <span>{renderLabel()}</span>\n </button>\n </div>\n </ShadowRootWrapper>\n );\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArbitrumLogo.js","sourceRoot":"","sources":["../../../src/components/logos/ArbitrumLogo.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,IAAM,YAAY,GAAgC,UAAC,EAIzD;QAHC,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAEd,OAAO,CACL,cACE,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,eAAe,EACvB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAC,4BAA4B,YAElC,wBACE,eAAM,SAAS,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,GAAG,EAC/D,sBACE,wBACE,eACE,IAAI,EAAC,SAAS,EACd,CAAC,EAAC,8LACkF,GACpF,EACF,sBACE,wBACE,sBACE,eACE,IAAI,EAAC,SAAS,EACd,CAAC,EAAC,4FAA4F,GAC9F,GACA,EACJ,sBACE,eACE,IAAI,EAAC,SAAS,EACd,CAAC,EAAC,kFAAkF,GACpF,GACA,IACF,GACF,EACJ,sBACE,eACE,IAAI,EAAC,SAAS,EACd,CAAC,EAAC,ubAGuD,GACzD,GACA,EACJ,kBACE,IAAI,EAAC,SAAS,EACd,MAAM,EAAC,qCAAqC,GAC5C,EACF,wBACE,eACE,IAAI,EAAC,SAAS,EACd,CAAC,EAAC,qFAAqF,GACvF,EACF,eACE,IAAI,EAAC,SAAS,EACd,CAAC,EAAC,iFAAiF,GACnF,IACA,IACF,GACF,IACF,GACA,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\ninterface ArbitrumLogoProps {\n width?: number;\n height?: number;\n className?: string;\n}\n\nexport const ArbitrumLogo: React.FC<ArbitrumLogoProps> = ({\n width = 48,\n height = 48,\n className = '',\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 2500 2500\"\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <rect className=\"st0\" width=\"2500\" height=\"2500\" fill=\"none\" />\n <g>\n <g>\n <path\n fill=\"#213147\"\n d=\"M226,760v980c0,63,33,120,88,152l849,490c54,31,121,31,175,0l849-490c54-31,88-89,88-152V760\n c0-63-33-120-88-152l-849-490c-54-31-121-31-175,0L314,608c-54,31-87,89-87,152H226z\"\n />\n <g>\n <g>\n <g>\n <path\n fill=\"#12AAFF\"\n d=\"M1435,1440l-121,332c-3,9-3,19,0,29l208,571l241-139l-289-793C1467,1422,1442,1422,1435,1440z\"\n />\n </g>\n <g>\n <path\n fill=\"#12AAFF\"\n d=\"M1678,882c-7-18-32-18-39,0l-121,332c-3,9-3,19,0,29l341,935l241-139L1678,883V882z\"\n />\n </g>\n </g>\n </g>\n <g>\n <path\n fill=\"#9DCCED\"\n d=\"M1250,155c6,0,12,2,17,5l918,530c11,6,17,18,17,30v1060c0,12-7,24-17,30l-918,530c-5,3-11,5-17,5\n s-12-2-17-5l-918-530c-11-6-17-18-17-30V719c0-12,7-24,17-30l918-530c5-3,11-5,17-5l0,0V155z M1250,0c-33,0-65,8-95,25L237,555\n c-59,34-95,96-95,164v1060c0,68,36,130,95,164l918,530c29,17,62,25,95,25s65-8,95-25l918-530c59-34,95-96,95-164V719\n c0-68-36-130-95-164L1344,25c-29-17-62-25-95-25l0,0H1250z\"\n />\n </g>\n <polygon\n fill=\"#213147\"\n points=\"642,2179 727,1947 897,2088 738,2234\"\n />\n <g>\n <path\n fill=\"#FFFFFF\"\n d=\"M1172,644H939c-17,0-33,11-39,27L401,2039l241,139l550-1507c5-14-5-28-19-28L1172,644z\"\n />\n <path\n fill=\"#FFFFFF\"\n d=\"M1580,644h-233c-17,0-33,11-39,27L738,2233l241,139l620-1701c5-14-5-28-19-28V644z\"\n />\n </g>\n </g>\n </g>\n </g>\n </svg>\n );\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseLogo.js","sourceRoot":"","sources":["../../../src/components/logos/BaseLogo.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,IAAM,QAAQ,GAA4B,UAAC,EAIjD;QAHC,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAEd,OAAO,CACL,cACE,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,eAAe,EACvB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAC,4BAA4B,YAElC,YAAG,EAAE,EAAC,SAAS,YACb,eAAM,IAAI,EAAC,OAAO,EAAC,CAAC,EAAC,8JAA8J,GAAE,GACnL,GACA,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\ninterface BaseLogoProps {\n width?: number;\n height?: number;\n className?: string;\n}\n\nexport const BaseLogo: React.FC<BaseLogoProps> = ({\n width = 48,\n height = 48,\n className = '',\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 2500 2500\"\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g id=\"Layer_1\">\n <path fill=\"white\" d=\"M1247.8,2500c691.6,0,1252.2-559.6,1252.2-1250C2500,559.6,1939.4,0,1247.8,0C591.7,0,53.5,503.8,0,1144.9h1655.1v210.2H0 C53.5,1996.2,591.7,2500,1247.8,2500z\"/>\n </g>\n </svg>\n );\n};\n\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BeraLogo.js","sourceRoot":"","sources":["../../../src/components/logos/BeraLogo.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,IAAM,QAAQ,GAA4B,UAAC,EAIjD;QAHC,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAEd,OAAO,CACL,eACE,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,WAAW,EACnB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAC,4BAA4B,aAElC,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,GAAG,EAChD,eACE,CAAC,EAAC,iJAAiJ,EACnJ,IAAI,EAAC,SAAS,GACd,EACF,eACE,CAAC,EAAC,uJAAuJ,EACzJ,IAAI,EAAC,SAAS,GACd,EACF,eACE,CAAC,EAAC,eAAe,EACjB,MAAM,EAAC,SAAS,EAChB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,GACrB,IACE,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\ninterface BeraLogoProps {\n width?: number;\n height?: number;\n className?: string;\n}\n\nexport const BeraLogo: React.FC<BeraLogoProps> = ({\n width = 48,\n height = 48,\n className = '',\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 24 24\"\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"12\" fill=\"#000000\" />\n <path\n d=\"M7.5 7.5C7.5 6.67157 8.17157 6 9 6H15C15.8284 6 16.5 6.67157 16.5 7.5V9C16.5 9.82843 15.8284 10.5 15 10.5H9C8.17157 10.5 7.5 9.82843 7.5 9V7.5Z\"\n fill=\"#FFD700\"\n />\n <path\n d=\"M7.5 15C7.5 14.1716 8.17157 13.5 9 13.5H15C15.8284 13.5 16.5 14.1716 16.5 15V16.5C16.5 17.3284 15.8284 18 15 18H9C8.17157 18 7.5 17.3284 7.5 16.5V15Z\"\n fill=\"#FFD700\"\n />\n <path\n d=\"M12 10.5V13.5\"\n stroke=\"#FFD700\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitcoinLogo.js","sourceRoot":"","sources":["../../../src/components/logos/BitcoinLogo.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,IAAM,WAAW,GAA+B,UAAC,EAIvD;QAHC,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAEd,OAAO,CACL,cACE,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,qBAAqB,EAC7B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAC,4BAA4B,YAElC,wBACE,eACE,IAAI,EAAC,SAAS,EACd,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,kOAAkO,GACpO,EACF,eACE,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,mjCAAmjC,GACrjC,IACA,GACA,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\ninterface BitcoinLogoProps {\n width?: number;\n height?: number;\n className?: string;\n}\n\nexport const BitcoinLogo: React.FC<BitcoinLogoProps> = ({\n width = 48,\n height = 48,\n className = '',\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 4091.27 4091.73\"\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n fill=\"#F7931A\"\n fillRule=\"nonzero\"\n d=\"M4030.06 2540.77c-273.24,1096.01 -1383.32,1763.02 -2479.46,1489.71 -1095.68,-273.24 -1762.69,-1383.39 -1489.33,-2479.31 273.12,-1096.13 1383.2,-1763.19 2479,-1489.95 1096.06,273.24 1763.03,1383.51 1489.76,2479.57l0.02 -0.02z\"\n />\n <path\n fill=\"white\"\n fillRule=\"nonzero\"\n d=\"M2947.77 1754.38c40.72,-272.26 -166.56,-418.61 -450,-516.24l91.95 -368.8 -224.5 -55.94 -89.51 359.09c-59.02,-14.72 -119.63,-28.59 -179.87,-42.34l90.16 -361.46 -224.36 -55.94 -92 368.68c-48.84,-11.12 -96.81,-22.11 -143.35,-33.69l0.26 -1.16 -309.59 -77.31 -59.72 239.78c0,0 166.56,38.18 163.05,40.53 90.91,22.69 107.35,82.87 104.62,130.57l-104.74 420.15c6.26,1.59 14.38,3.89 23.34,7.49 -7.49,-1.86 -15.46,-3.89 -23.73,-5.87l-146.81 588.57c-11.11,27.62 -39.31,69.07 -102.87,53.33 2.25,3.26 -163.17,-40.72 -163.17,-40.72l-111.46 256.98 292.15 72.83c54.35,13.63 107.61,27.89 160.06,41.3l-92.9 373.03 224.24 55.94 92 -369.07c61.26,16.63 120.71,31.97 178.91,46.43l-91.69 367.33 224.51 55.94 92.89 -372.33c382.82,72.45 670.67,43.24 791.83,-303.02 97.63,-278.78 -4.86,-439.58 -206.26,-544.44 146.69,-33.83 257.18,-130.31 286.64,-329.61l-0.07 -0.05zm-512.93 719.26c-69.38,278.78 -538.76,128.08 -690.94,90.29l123.28 -494.2c152.17,37.99 640.17,113.17 567.67,403.91zm69.43 -723.3c-63.29,253.58 -453.96,124.75 -580.69,93.16l111.77 -448.21c126.73,31.59 534.85,90.55 468.94,355.05l-0.02 0z\"\n />\n </g>\n </svg>\n );\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EthereumLogo.js","sourceRoot":"","sources":["../../../src/components/logos/EthereumLogo.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,IAAM,YAAY,GAAgC,UAAC,EAIzD;QAHC,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAEd,OAAO,CACL,cACE,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,oBAAoB,EAC5B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAC,4BAA4B,YAElC,wBACE,kBACE,IAAI,EAAC,SAAS,EACd,QAAQ,EAAC,SAAS,EAClB,MAAM,EAAC,+DAA+D,GACtE,EACF,kBACE,IAAI,EAAC,SAAS,EACd,QAAQ,EAAC,SAAS,EAClB,MAAM,EAAC,gDAAgD,GACvD,EACF,kBACE,IAAI,EAAC,SAAS,EACd,QAAQ,EAAC,SAAS,EAClB,MAAM,EAAC,yEAAyE,GAChF,EACF,kBACE,IAAI,EAAC,SAAS,EACd,QAAQ,EAAC,SAAS,EAClB,MAAM,EAAC,wCAAwC,GAC/C,EACF,kBACE,IAAI,EAAC,SAAS,EACd,QAAQ,EAAC,SAAS,EAClB,MAAM,EAAC,2CAA2C,GAClD,EACF,kBACE,IAAI,EAAC,SAAS,EACd,QAAQ,EAAC,SAAS,EAClB,MAAM,EAAC,sCAAsC,GAC7C,IACA,GACA,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\ninterface EthereumLogoProps {\n width?: number;\n height?: number;\n className?: string;\n}\n\nexport const EthereumLogo: React.FC<EthereumLogoProps> = ({\n width = 48,\n height = 48,\n className = '',\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 784.37 1277.39\"\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <polygon\n fill=\"#343434\"\n fillRule=\"nonzero\"\n points=\"392.07,0 383.5,29.11 383.5,873.74 392.07,882.29 784.13,650.54\"\n />\n <polygon\n fill=\"#8C8C8C\"\n fillRule=\"nonzero\"\n points=\"392.07,0 -0,650.54 392.07,882.29 392.07,472.33\"\n />\n <polygon\n fill=\"#3C3C3B\"\n fillRule=\"nonzero\"\n points=\"392.07,956.52 387.24,962.41 387.24,1263.28 392.07,1277.38 784.37,724.89\"\n />\n <polygon\n fill=\"#8C8C8C\"\n fillRule=\"nonzero\"\n points=\"392.07,1277.38 392.07,956.52 -0,724.89\"\n />\n <polygon\n fill=\"#141414\"\n fillRule=\"nonzero\"\n points=\"392.07,882.29 784.13,650.54 392.07,472.33\"\n />\n <polygon\n fill=\"#393939\"\n fillRule=\"nonzero\"\n points=\"0,650.54 392.07,882.29 392.07,472.33\"\n />\n </g>\n </svg>\n );\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HyperliquidLogo.js","sourceRoot":"","sources":["../../../src/components/logos/HyperliquidLogo.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,IAAM,eAAe,GAAmC,UAAC,EAI/D;QAHC,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAEd,OAAO,CACL,eACE,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,WAAW,EACnB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAC,4BAA4B,aAElC,YAAG,QAAQ,EAAC,sBAAsB,YAChC,eACE,CAAC,EAAC,kgBAAkgB,EACpgB,IAAI,EAAC,SAAS,GACd,GACA,EACJ,yBACE,mBAAU,EAAE,EAAC,gBAAgB,YAC3B,eAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,GAAG,GACnC,GACN,IACH,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\ninterface HyperliquidLogoProps {\n width?: number;\n height?: number;\n className?: string;\n}\n\nexport const HyperliquidLogo: React.FC<HyperliquidLogoProps> = ({\n width = 48,\n height = 48,\n className = '',\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 32 28\"\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_975_1209)\">\n <path\n d=\"M31.8056 11.727C31.8346 14.3384 31.2881 16.8337 30.2146 19.2178C28.6816 22.6126 25.0063 25.3885 21.6501 22.4337C18.913 20.0254 18.4052 15.1363 14.3044 14.4206C8.87845 13.7629 8.74788 20.0544 5.20315 20.7653C1.2522 21.5681 -0.0583338 14.9235 -0.000302664 11.9059C0.0577284 8.88828 0.860492 4.64717 4.294 4.64717C8.24495 4.64717 8.51092 10.6292 13.5258 10.3052C18.4923 9.96669 18.5793 3.74285 21.8242 1.07826C24.6242 -1.22364 27.9175 0.464096 29.5665 3.23508C31.0947 5.79812 31.7669 8.80606 31.8007 11.727H31.8056Z\"\n fill=\"#072723\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_975_1209\">\n <rect width=\"32\" height=\"24\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptimismLogo.js","sourceRoot":"","sources":["../../../src/components/logos/OptimismLogo.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,IAAM,YAAY,GAAgC,UAAC,EAIzD;QAHC,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAEd,OAAO,CACL,eACE,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,aAAa,EACrB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAC,4BAA4B,aAElC,iBAAQ,IAAI,EAAC,SAAS,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,GAAG,EACnD,eACE,IAAI,EAAC,SAAS,EACd,CAAC,EAAC,2oBAK6D,GAC/D,EACF,eACE,IAAI,EAAC,SAAS,EACd,CAAC,EAAC,ufAIM,GACR,IACE,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\ninterface OptimismLogoProps {\n width?: number;\n height?: number;\n className?: string;\n}\n\nexport const OptimismLogo: React.FC<OptimismLogoProps> = ({\n width = 48,\n height = 48,\n className = '',\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 500 500\"\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle fill=\"#FF0420\" cx=\"250\" cy=\"250\" r=\"250\" />\n <path\n fill=\"#FFFFFF\"\n d=\"M177.1,316.4c-14.9,0-27.1-3.5-36.6-10.5c-9.4-7.1-14.1-17.3-14.1-30.4c0-2.8,0.3-6.1,0.9-10.1\n c1.6-9,3.9-19.8,6.9-32.5c8.5-34.4,30.5-51.6,65.9-51.6c9.6,0,18.3,1.6,25.9,4.9c7.6,3.1,13.6,7.9,18,14.3\n c4.4,6.3,6.6,13.8,6.6,22.5c0,2.6-0.3,5.9-0.9,9.9c-1.9,11.1-4.1,22-6.8,32.5c-4.4,17.1-11.9,30-22.7,38.5\n C209.5,312.3,195.1,316.4,177.1,316.4z M179.8,289.4c7,0,12.9-2.1,17.8-6.2c5-4.1,8.6-10.4,10.7-19c2.9-11.8,5.1-22,6.6-30.8\n c0.5-2.6,0.8-5.3,0.8-8.1c0-11.4-5.9-17.1-17.8-17.1c-7,0-13,2.1-18,6.2c-4.9,4.1-8.4,10.4-10.5,19c-2.3,8.4-4.5,18.6-6.8,30.8\n c-0.5,2.5-0.8,5.1-0.8,7.9C161.7,283.7,167.8,289.4,179.8,289.4z\"\n />\n <path\n fill=\"#FFFFFF\"\n d=\"M259.3,314.6c-1.4,0-2.4-0.4-3.2-1.3c-0.6-1-0.8-2.1-0.6-3.4l25.9-122c0.2-1.4,0.9-2.5,2.1-3.4\n c1.1-0.9,2.3-1.3,3.6-1.3H337c13.9,0,25,2.9,33.4,8.6c8.5,5.8,12.8,14.1,12.8,25c0,3.1-0.4,6.4-1.1,9.8c-3.1,14.4-9.4,25-19,31.9\n c-9.4,6.9-22.3,10.3-38.7,10.3h-25.3l-8.6,41.1c-0.3,1.4-0.9,2.5-2.1,3.4c-1.1,0.9-2.3,1.3-3.6,1.3H259.3z M325.7,242.9\n c5.3,0,9.8-1.4,13.7-4.3c4-2.9,6.6-7,7.9-12.4c0.4-2.1,0.6-4,0.6-5.6c0-3.6-1.1-6.4-3.2-8.3c-2.1-2-5.8-3-10.9-3h-22.5l-7.1,33.6\n H325.7z\"\n />\n </svg>\n );\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolanaLogo.js","sourceRoot":"","sources":["../../../src/components/logos/SolanaLogo.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,IAAM,UAAU,GAA8B,UAAC,EAIrD;QAHC,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAEd,OAAO,CACL,eACE,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,iBAAiB,EACzB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAC,4BAA4B,aAElC,0BACE,EAAE,EAAC,mBAAmB,EACtB,aAAa,EAAC,gBAAgB,EAC9B,EAAE,EAAC,UAAU,EACb,EAAE,EAAC,UAAU,EACb,EAAE,EAAC,SAAS,EACZ,EAAE,EAAC,UAAU,EACb,iBAAiB,EAAC,wBAAwB,aAE1C,eAAM,MAAM,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAI,EACpD,eAAM,MAAM,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAI,IACrC,EACjB,eACE,IAAI,EAAC,yBAAyB,EAC9B,CAAC,EAAC,oJACiC,GACnC,EACF,0BACE,EAAE,EAAC,mBAAmB,EACtB,aAAa,EAAC,gBAAgB,EAC9B,EAAE,EAAC,UAAU,EACb,EAAE,EAAC,UAAU,EACb,EAAE,EAAC,QAAQ,EACX,EAAE,EAAC,UAAU,EACb,iBAAiB,EAAC,wBAAwB,aAE1C,eAAM,MAAM,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAI,EACpD,eAAM,MAAM,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAI,IACrC,EACjB,eACE,IAAI,EAAC,yBAAyB,EAC9B,CAAC,EAAC,+IAC+B,GACjC,EACF,0BACE,EAAE,EAAC,mBAAmB,EACtB,aAAa,EAAC,gBAAgB,EAC9B,EAAE,EAAC,UAAU,EACb,EAAE,EAAC,SAAS,EACZ,EAAE,EAAC,SAAS,EACZ,EAAE,EAAC,SAAS,EACZ,iBAAiB,EAAC,wBAAwB,aAE1C,eAAM,MAAM,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAI,EACpD,eAAM,MAAM,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAI,IACrC,EACjB,eACE,IAAI,EAAC,yBAAyB,EAC9B,CAAC,EAAC,qJACiC,GACnC,IACE,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\ninterface SolanaLogoProps {\n width?: number;\n height?: number;\n className?: string;\n}\n\nexport const SolanaLogo: React.FC<SolanaLogoProps> = ({\n width = 48,\n height = 48,\n className = '',\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 397.7 311.7\"\n className={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <linearGradient\n id=\"solana-gradient-1\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"360.8791\"\n y1=\"351.4553\"\n x2=\"141.213\"\n y2=\"-69.2936\"\n gradientTransform=\"matrix(1 0 0 -1 0 314)\"\n >\n <stop offset=\"0\" style={{ stopColor: '#00FFA3' }} />\n <stop offset=\"1\" style={{ stopColor: '#DC1FFF' }} />\n </linearGradient>\n <path\n fill=\"url(#solana-gradient-1)\"\n d=\"M64.6,237.9c2.4-2.4,5.7-3.8,9.2-3.8h317.4c5.8,0,8.7,7,4.6,11.1l-62.7,62.7c-2.4,2.4-5.7,3.8-9.2,3.8H6.5\n c-5.8,0-8.7-7-4.6-11.1L64.6,237.9z\"\n />\n <linearGradient\n id=\"solana-gradient-2\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"264.8291\"\n y1=\"401.6014\"\n x2=\"45.163\"\n y2=\"-19.1475\"\n gradientTransform=\"matrix(1 0 0 -1 0 314)\"\n >\n <stop offset=\"0\" style={{ stopColor: '#00FFA3' }} />\n <stop offset=\"1\" style={{ stopColor: '#DC1FFF' }} />\n </linearGradient>\n <path\n fill=\"url(#solana-gradient-2)\"\n d=\"M64.6,3.8C67.1,1.4,70.4,0,73.8,0h317.4c5.8,0,8.7,7,4.6,11.1l-62.7,62.7c-2.4,2.4-5.7,3.8-9.2,3.8H6.5\n c-5.8,0-8.7-7-4.6-11.1L64.6,3.8z\"\n />\n <linearGradient\n id=\"solana-gradient-3\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"312.5484\"\n y1=\"376.688\"\n x2=\"92.8822\"\n y2=\"-44.061\"\n gradientTransform=\"matrix(1 0 0 -1 0 314)\"\n >\n <stop offset=\"0\" style={{ stopColor: '#00FFA3' }} />\n <stop offset=\"1\" style={{ stopColor: '#DC1FFF' }} />\n </linearGradient>\n <path\n fill=\"url(#solana-gradient-3)\"\n d=\"M333.1,120.1c-2.4-2.4-5.7-3.8-9.2-3.8H6.5c-5.8,0-8.7,7-4.6,11.1l62.7,62.7c2.4,2.4,5.7,3.8,9.2,3.8h317.4\n c5.8,0,8.7-7,4.6-11.1L333.1,120.1z\"\n />\n </svg>\n );\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZeroOneLogo.js","sourceRoot":"","sources":["../../../src/components/logos/ZeroOneLogo.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,IAAM,WAAW,GAA+B,UAAC,EAIvD;QAHC,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IACV,OAAA,CACJ,cACE,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAClC,SAAS,EAAE,SAAS,YAEpB,eACE,CAAC,EAAC,27DAA27D,EAC77D,IAAI,EAAC,OAAO,GACZ,GACE,CACP;AAdK,CAcL,CAAC","sourcesContent":["import React from 'react';\n\ninterface ZeroOneLogoProps {\n width?: number;\n height?: number;\n className?: string;\n}\n\nexport const ZeroOneLogo: React.FC<ZeroOneLogoProps> = ({\n width = 43,\n height = 34,\n className = '',\n}) => (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 43 34\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M21.3299 20.7674C21.3299 22.8824 21.0824 24.7499 20.5874 26.3699C20.1074 27.9749 19.4099 29.3174 18.4949 30.3974C17.5799 31.4924 16.4624 32.3174 15.1424 32.8724C13.8224 33.4274 12.3374 33.7049 10.6874 33.7049C9.05244 33.7049 7.57494 33.4274 6.25494 32.8724C4.93494 32.3174 3.81744 31.4924 2.90244 30.3974C1.97244 29.3174 1.25244 27.9749 0.742442 26.3699C0.247442 24.7499 -0.0000579674 22.8824 -0.0000579674 20.7674V12.9374C-0.0000579674 10.8224 0.247442 8.96242 0.742442 7.35742C1.23744 5.73742 1.94994 4.37992 2.87994 3.28492C3.79494 2.20492 4.90494 1.38742 6.20994 0.832423C7.52994 0.277423 9.00744 -0.0000766945 10.6424 -0.0000766945C12.2924 -0.0000766945 13.7774 0.277423 15.0974 0.832423C16.4174 1.38742 17.5424 2.20492 18.4724 3.28492C19.3874 4.37992 20.0924 5.73742 20.5874 7.35742C21.0824 8.96242 21.3299 10.8224 21.3299 12.9374V20.7674ZM6.29994 18.0674L15.0299 11.5649C14.9999 10.3349 14.8649 9.28492 14.6249 8.41492C14.3999 7.52992 14.0624 6.82492 13.6124 6.29992C13.2674 5.87992 12.8399 5.57242 12.3299 5.37742C11.8349 5.16742 11.2724 5.06242 10.6424 5.06242C9.93744 5.06242 9.31494 5.19742 8.77494 5.46742C8.24994 5.72242 7.80744 6.11242 7.44744 6.63742C7.05744 7.19242 6.76494 7.91242 6.56994 8.79742C6.38994 9.68242 6.29994 10.7324 6.29994 11.9474V15.5699C6.29994 16.2899 6.29994 16.7699 6.29994 17.0099C6.29994 17.2499 6.29994 17.6024 6.29994 18.0674ZM15.0299 21.7124V17.9099C15.0299 17.4149 15.0299 17.0549 15.0299 16.8299C15.0299 16.5899 15.0299 16.2524 15.0299 15.8174L6.29994 22.2974C6.32994 23.2874 6.42744 24.1649 6.59244 24.9299C6.77244 25.6949 7.01994 26.3324 7.33494 26.8424C7.69494 27.4574 8.15244 27.9149 8.70744 28.2149C9.26244 28.5149 9.92244 28.6649 10.6874 28.6649C11.3924 28.6649 12.0149 28.5374 12.5549 28.2824C13.0949 28.0124 13.5449 27.6074 13.9049 27.0674C14.2799 26.4974 14.5574 25.7699 14.7374 24.8849C14.9324 23.9849 15.0299 22.9274 15.0299 21.7124ZM42.9974 33.2324H36.6749V8.09992L28.3949 11.0699V5.62492L42.6599 0.472423H42.9974V33.2324Z\"\n fill=\"white\"\n />\n </svg>\n);\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/logos/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC","sourcesContent":["export * from './SolanaLogo';\nexport * from './EthereumLogo';\nexport * from './OptimismLogo';\nexport * from './ArbitrumLogo';\nexport * from './BitcoinLogo';\nexport * from './HyperliquidLogo';\nexport * from './BaseLogo';\nexport * from './BeraLogo';\nexport * from './ZeroOneLogo';\n"]}
@@ -8,23 +8,53 @@ var parseNumber = function (value) {
8
8
  var parsed = Number(value);
9
9
  return Number.isFinite(parsed) ? parsed : undefined;
10
10
  };
11
- var ETHEREUM_RPC = (_b = (_a = process.env.NEXT_PUBLIC_RPC_ETHEREUM) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : 'https://ethereum-sepolia-rpc.publicnode.com';
12
- var ARBITRUM_RPC = (_d = (_c = process.env.NEXT_PUBLIC_RPC_ARBITRUM) === null || _c === void 0 ? void 0 : _c.trim()) !== null && _d !== void 0 ? _d : 'https://sepolia-rollup.arbitrum.io/rpc';
13
- var BASE_RPC = (_f = (_e = process.env.NEXT_PUBLIC_RPC_BASE) === null || _e === void 0 ? void 0 : _e.trim()) !== null && _f !== void 0 ? _f : 'https://sepolia.base.org';
14
- var ETHEREUM_EXPLORER = (_h = (_g = process.env.NEXT_PUBLIC_ETHERSCAN_BASE) === null || _g === void 0 ? void 0 : _g.trim()) !== null && _h !== void 0 ? _h : 'https://sepolia.etherscan.io';
15
- var ARBITRUM_EXPLORER = (_k = (_j = process.env.NEXT_PUBLIC_ARBITRUM_EXPLORER_BASE) === null || _j === void 0 ? void 0 : _j.trim()) !== null && _k !== void 0 ? _k : 'https://sepolia.arbiscan.io';
16
- var BASE_EXPLORER = (_m = (_l = process.env.NEXT_PUBLIC_BASE_EXPLORER_BASE) === null || _l === void 0 ? void 0 : _l.trim()) !== null && _m !== void 0 ? _m : 'https://sepolia.basescan.org';
17
- var ETH_CHAIN_ID = (_o = parseNumber(process.env.NEXT_PUBLIC_CHAIN_ID_ETHEREUM)) !== null && _o !== void 0 ? _o : 11155111;
18
- var ARB_CHAIN_ID = (_p = parseNumber(process.env.NEXT_PUBLIC_CHAIN_ID_ARBITRUM)) !== null && _p !== void 0 ? _p : 421614;
19
- var BASE_CHAIN_ID = (_q = parseNumber(process.env.NEXT_PUBLIC_CHAIN_ID_BASE)) !== null && _q !== void 0 ? _q : 84532;
11
+ // Network selection based on NEXT_PUBLIC_TESTNET env var (default: true for testnet)
12
+ var isTestnet = process.env.NEXT_PUBLIC_TESTNET !== 'false';
13
+ // Default RPC URLs based on network
14
+ var DEFAULT_ETHEREUM_RPC = isTestnet
15
+ ? 'https://ethereum-sepolia-rpc.publicnode.com'
16
+ : 'https://eth.llamarpc.com';
17
+ var DEFAULT_ARBITRUM_RPC = isTestnet
18
+ ? 'https://sepolia-rollup.arbitrum.io/rpc'
19
+ : 'https://arb1.arbitrum.io/rpc';
20
+ var DEFAULT_BASE_RPC = isTestnet
21
+ ? 'https://sepolia.base.org'
22
+ : 'https://mainnet.base.org';
23
+ // Default explorer URLs based on network
24
+ var DEFAULT_ETHEREUM_EXPLORER = isTestnet
25
+ ? 'https://sepolia.etherscan.io'
26
+ : 'https://etherscan.io';
27
+ var DEFAULT_ARBITRUM_EXPLORER = isTestnet
28
+ ? 'https://sepolia.arbiscan.io'
29
+ : 'https://arbiscan.io';
30
+ var DEFAULT_BASE_EXPLORER = isTestnet
31
+ ? 'https://sepolia.basescan.org'
32
+ : 'https://basescan.org';
33
+ // Default chain IDs based on network
34
+ var DEFAULT_ETH_CHAIN_ID = isTestnet ? 11155111 : 1;
35
+ var DEFAULT_ARB_CHAIN_ID = isTestnet ? 421614 : 42161;
36
+ var DEFAULT_BASE_CHAIN_ID = isTestnet ? 84532 : 8453;
37
+ // Network names based on network
38
+ var ETH_NETWORK_NAME = isTestnet ? 'Ethereum Sepolia' : 'Ethereum';
39
+ var ARB_NETWORK_NAME = isTestnet ? 'Arbitrum Sepolia' : 'Arbitrum One';
40
+ var BASE_NETWORK_NAME = isTestnet ? 'Base Sepolia' : 'Base';
41
+ var ETHEREUM_RPC = (_b = (_a = process.env.NEXT_PUBLIC_RPC_ETHEREUM) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : DEFAULT_ETHEREUM_RPC;
42
+ var ARBITRUM_RPC = (_d = (_c = process.env.NEXT_PUBLIC_RPC_ARBITRUM) === null || _c === void 0 ? void 0 : _c.trim()) !== null && _d !== void 0 ? _d : DEFAULT_ARBITRUM_RPC;
43
+ var BASE_RPC = (_f = (_e = process.env.NEXT_PUBLIC_RPC_BASE) === null || _e === void 0 ? void 0 : _e.trim()) !== null && _f !== void 0 ? _f : DEFAULT_BASE_RPC;
44
+ var ETHEREUM_EXPLORER = (_h = (_g = process.env.NEXT_PUBLIC_ETHERSCAN_BASE) === null || _g === void 0 ? void 0 : _g.trim()) !== null && _h !== void 0 ? _h : DEFAULT_ETHEREUM_EXPLORER;
45
+ var ARBITRUM_EXPLORER = (_k = (_j = process.env.NEXT_PUBLIC_ARBITRUM_EXPLORER_BASE) === null || _j === void 0 ? void 0 : _j.trim()) !== null && _k !== void 0 ? _k : DEFAULT_ARBITRUM_EXPLORER;
46
+ var BASE_EXPLORER = (_m = (_l = process.env.NEXT_PUBLIC_BASE_EXPLORER_BASE) === null || _l === void 0 ? void 0 : _l.trim()) !== null && _m !== void 0 ? _m : DEFAULT_BASE_EXPLORER;
47
+ var ETH_CHAIN_ID = (_o = parseNumber(process.env.NEXT_PUBLIC_CHAIN_ID_ETHEREUM)) !== null && _o !== void 0 ? _o : DEFAULT_ETH_CHAIN_ID;
48
+ var ARB_CHAIN_ID = (_p = parseNumber(process.env.NEXT_PUBLIC_CHAIN_ID_ARBITRUM)) !== null && _p !== void 0 ? _p : DEFAULT_ARB_CHAIN_ID;
49
+ var BASE_CHAIN_ID = (_q = parseNumber(process.env.NEXT_PUBLIC_CHAIN_ID_BASE)) !== null && _q !== void 0 ? _q : DEFAULT_BASE_CHAIN_ID;
20
50
  export var DEFAULT_EVM_NETWORKS = [
21
51
  {
22
52
  blockExplorerUrl: ETHEREUM_EXPLORER,
23
53
  blockExplorerUrls: [ETHEREUM_EXPLORER],
24
54
  chainId: ETH_CHAIN_ID,
25
55
  networkId: ETH_CHAIN_ID,
26
- name: 'Ethereum Sepolia',
27
- vanityName: 'Ethereum Sepolia',
56
+ name: ETH_NETWORK_NAME,
57
+ vanityName: ETH_NETWORK_NAME,
28
58
  nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
29
59
  rpcUrl: ETHEREUM_RPC,
30
60
  rpcUrls: [ETHEREUM_RPC],
@@ -34,8 +64,8 @@ export var DEFAULT_EVM_NETWORKS = [
34
64
  blockExplorerUrls: [ARBITRUM_EXPLORER],
35
65
  chainId: ARB_CHAIN_ID,
36
66
  networkId: ARB_CHAIN_ID,
37
- name: 'Arbitrum Sepolia',
38
- vanityName: 'Arbitrum Sepolia',
67
+ name: ARB_NETWORK_NAME,
68
+ vanityName: ARB_NETWORK_NAME,
39
69
  nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
40
70
  rpcUrl: ARBITRUM_RPC,
41
71
  rpcUrls: [ARBITRUM_RPC],
@@ -45,8 +75,8 @@ export var DEFAULT_EVM_NETWORKS = [
45
75
  blockExplorerUrls: [BASE_EXPLORER],
46
76
  chainId: BASE_CHAIN_ID,
47
77
  networkId: BASE_CHAIN_ID,
48
- name: 'Base Sepolia',
49
- vanityName: 'Base Sepolia',
78
+ name: BASE_NETWORK_NAME,
79
+ vanityName: BASE_NETWORK_NAME,
50
80
  nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
51
81
  rpcUrl: BASE_RPC,
52
82
  rpcUrls: [BASE_RPC],
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../src/config/chains.tsx"],"names":[],"mappings":"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","sourcesContent":["export interface EvmNetwork {\n blockExplorerUrl: string;\n blockExplorerUrls?: string[];\n chainId: number;\n networkId?: number;\n name: string;\n vanityName?: string;\n nativeCurrency: {\n name: string;\n symbol: string;\n decimals: number;\n };\n rpcUrls?: string[];\n rpcUrl: string;\n iconUrls?: string[];\n}\n\n/**\n * Parses a numeric environment variable, returning undefined if invalid.\n */\nconst parseNumber = (value?: string | null): number | undefined => {\n if (!value) return undefined;\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n};\n\n// Network selection based on NEXT_PUBLIC_TESTNET env var (default: true for testnet)\nconst isTestnet = process.env.NEXT_PUBLIC_TESTNET !== 'false';\n\n// Default RPC URLs based on network\nconst DEFAULT_ETHEREUM_RPC = isTestnet\n ? 'https://ethereum-sepolia-rpc.publicnode.com'\n : 'https://eth.llamarpc.com';\nconst DEFAULT_ARBITRUM_RPC = isTestnet\n ? 'https://sepolia-rollup.arbitrum.io/rpc'\n : 'https://arb1.arbitrum.io/rpc';\nconst DEFAULT_BASE_RPC = isTestnet\n ? 'https://sepolia.base.org'\n : 'https://mainnet.base.org';\n\n// Default explorer URLs based on network\nconst DEFAULT_ETHEREUM_EXPLORER = isTestnet\n ? 'https://sepolia.etherscan.io'\n : 'https://etherscan.io';\nconst DEFAULT_ARBITRUM_EXPLORER = isTestnet\n ? 'https://sepolia.arbiscan.io'\n : 'https://arbiscan.io';\nconst DEFAULT_BASE_EXPLORER = isTestnet\n ? 'https://sepolia.basescan.org'\n : 'https://basescan.org';\n\n// Default chain IDs based on network\nconst DEFAULT_ETH_CHAIN_ID = isTestnet ? 11155111 : 1;\nconst DEFAULT_ARB_CHAIN_ID = isTestnet ? 421614 : 42161;\nconst DEFAULT_BASE_CHAIN_ID = isTestnet ? 84532 : 8453;\n\n// Network names based on network\nconst ETH_NETWORK_NAME = isTestnet ? 'Ethereum Sepolia' : 'Ethereum';\nconst ARB_NETWORK_NAME = isTestnet ? 'Arbitrum Sepolia' : 'Arbitrum One';\nconst BASE_NETWORK_NAME = isTestnet ? 'Base Sepolia' : 'Base';\n\nconst ETHEREUM_RPC =\n process.env.NEXT_PUBLIC_RPC_ETHEREUM?.trim() ?? DEFAULT_ETHEREUM_RPC;\nconst ARBITRUM_RPC =\n process.env.NEXT_PUBLIC_RPC_ARBITRUM?.trim() ?? DEFAULT_ARBITRUM_RPC;\nconst BASE_RPC =\n process.env.NEXT_PUBLIC_RPC_BASE?.trim() ?? DEFAULT_BASE_RPC;\n\nconst ETHEREUM_EXPLORER =\n process.env.NEXT_PUBLIC_ETHERSCAN_BASE?.trim() ?? DEFAULT_ETHEREUM_EXPLORER;\nconst ARBITRUM_EXPLORER =\n process.env.NEXT_PUBLIC_ARBITRUM_EXPLORER_BASE?.trim() ?? DEFAULT_ARBITRUM_EXPLORER;\nconst BASE_EXPLORER =\n process.env.NEXT_PUBLIC_BASE_EXPLORER_BASE?.trim() ?? DEFAULT_BASE_EXPLORER;\n\nconst ETH_CHAIN_ID =\n parseNumber(process.env.NEXT_PUBLIC_CHAIN_ID_ETHEREUM) ?? DEFAULT_ETH_CHAIN_ID;\nconst ARB_CHAIN_ID =\n parseNumber(process.env.NEXT_PUBLIC_CHAIN_ID_ARBITRUM) ?? DEFAULT_ARB_CHAIN_ID;\nconst BASE_CHAIN_ID =\n parseNumber(process.env.NEXT_PUBLIC_CHAIN_ID_BASE) ?? DEFAULT_BASE_CHAIN_ID;\n\nexport const DEFAULT_EVM_NETWORKS: EvmNetwork[] = [\n {\n blockExplorerUrl: ETHEREUM_EXPLORER,\n blockExplorerUrls: [ETHEREUM_EXPLORER],\n chainId: ETH_CHAIN_ID,\n networkId: ETH_CHAIN_ID,\n name: ETH_NETWORK_NAME,\n vanityName: ETH_NETWORK_NAME,\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrl: ETHEREUM_RPC,\n rpcUrls: [ETHEREUM_RPC],\n },\n {\n blockExplorerUrl: ARBITRUM_EXPLORER,\n blockExplorerUrls: [ARBITRUM_EXPLORER],\n chainId: ARB_CHAIN_ID,\n networkId: ARB_CHAIN_ID,\n name: ARB_NETWORK_NAME,\n vanityName: ARB_NETWORK_NAME,\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrl: ARBITRUM_RPC,\n rpcUrls: [ARBITRUM_RPC],\n },\n {\n blockExplorerUrl: BASE_EXPLORER,\n blockExplorerUrls: [BASE_EXPLORER],\n chainId: BASE_CHAIN_ID,\n networkId: BASE_CHAIN_ID,\n name: BASE_NETWORK_NAME,\n vanityName: BASE_NETWORK_NAME,\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrl: BASE_RPC,\n rpcUrls: [BASE_RPC],\n },\n];\n\nexport const fallbackEvmNetworks = (networks?: EvmNetwork[]) =>\n networks && networks.length > 0 ? networks : DEFAULT_EVM_NETWORKS;\n"]}