@n1xyz/wallet-widget 0.0.34 → 0.0.35-alpha.1
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.
- package/dist/bridge-assist/cctp-solana.d.ts +33 -0
- package/dist/bridge-assist/cctp-solana.js +392 -0
- package/dist/bridge-assist/cctp-solana.js.map +1 -0
- package/dist/main.css +1 -2
- package/dist/src/adapters/evm.d.ts +39 -0
- package/dist/src/adapters/evm.js +338 -0
- package/dist/src/adapters/evm.js.map +1 -0
- package/dist/src/adapters/factory.d.ts +37 -0
- package/dist/src/adapters/factory.js +82 -0
- package/dist/src/adapters/factory.js.map +1 -0
- package/dist/src/adapters/index.d.ts +33 -0
- package/dist/src/adapters/index.js +36 -0
- package/dist/src/adapters/index.js.map +1 -0
- package/dist/src/adapters/solana.d.ts +37 -0
- package/dist/src/adapters/solana.js +359 -0
- package/dist/src/adapters/solana.js.map +1 -0
- package/dist/src/adapters/types.d.ts +160 -0
- package/dist/src/adapters/types.js +20 -0
- package/dist/src/adapters/types.js.map +1 -0
- package/dist/src/animations/N1Loader.js.map +1 -0
- package/dist/src/animations/N1Loader.json +1 -0
- package/dist/src/animations/Processing.js.map +1 -0
- package/dist/src/animations/Processing.json +1 -0
- package/dist/{components → src/components}/LoadingFallback.d.ts +3 -0
- package/dist/{components → src/components}/LoadingFallback.js +3 -0
- package/dist/src/components/LoadingFallback.js.map +1 -0
- package/dist/{components → src/components}/Logo.d.ts +4 -0
- package/dist/{components → src/components}/Logo.js +4 -0
- package/dist/src/components/Logo.js.map +1 -0
- package/dist/src/components/N1ConnectButton.d.ts +13 -0
- package/dist/src/components/N1ConnectButton.js +66 -0
- package/dist/src/components/N1ConnectButton.js.map +1 -0
- package/dist/src/components/logos/ArbitrumLogo.js.map +1 -0
- package/dist/src/components/logos/BaseLogo.js +6 -0
- package/dist/src/components/logos/BaseLogo.js.map +1 -0
- package/dist/src/components/logos/BeraLogo.js.map +1 -0
- package/dist/src/components/logos/BitcoinLogo.js.map +1 -0
- package/dist/src/components/logos/EthereumLogo.js.map +1 -0
- package/dist/{components → src/components}/logos/HyperliquidLogo.js +1 -1
- package/dist/src/components/logos/HyperliquidLogo.js.map +1 -0
- package/dist/src/components/logos/OptimismLogo.js.map +1 -0
- package/dist/src/components/logos/SolanaLogo.js.map +1 -0
- package/dist/src/components/logos/ZeroOneLogo.js.map +1 -0
- package/dist/src/components/logos/index.js.map +1 -0
- package/dist/src/config/chains.d.ts +18 -0
- package/dist/src/config/chains.js +58 -0
- package/dist/src/config/chains.js.map +1 -0
- package/dist/src/config/dynamic.js +18 -0
- package/dist/src/config/dynamic.js.map +1 -0
- package/dist/src/config/solana.js.map +1 -0
- package/dist/src/config/turnkey.d.ts +2 -0
- package/dist/{config → src/config}/turnkey.js +9 -12
- package/dist/src/config/turnkey.js.map +1 -0
- package/dist/src/context/n1-wallet-context.js.map +1 -0
- package/dist/src/errors/types.d.ts +72 -0
- package/dist/src/errors/types.js +140 -0
- package/dist/src/errors/types.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/N1WalletModal.js +44 -29
- package/dist/src/features/onboarding-flow/N1WalletModal.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.d.ts +2 -1
- package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.js +54 -8
- package/dist/src/features/onboarding-flow/OnboardingFlow.js.map +1 -0
- package/dist/src/features/onboarding-flow/bridge-assist/client.d.ts +42 -0
- package/dist/src/features/onboarding-flow/bridge-assist/client.js +268 -0
- package/dist/src/features/onboarding-flow/bridge-assist/client.js.map +1 -0
- package/dist/src/features/onboarding-flow/bridge-assist/config.d.ts +4 -0
- package/dist/src/features/onboarding-flow/bridge-assist/config.js +11 -0
- package/dist/src/features/onboarding-flow/bridge-assist/config.js.map +1 -0
- package/dist/src/features/onboarding-flow/bridge-assist/index.d.ts +1 -0
- package/dist/src/features/onboarding-flow/bridge-assist/index.js +2 -0
- package/dist/src/features/onboarding-flow/bridge-assist/index.js.map +1 -0
- package/dist/src/features/onboarding-flow/bridge-assist/types.d.ts +5 -0
- package/dist/src/features/onboarding-flow/bridge-assist/types.js +28 -0
- package/dist/src/features/onboarding-flow/bridge-assist/types.js.map +1 -0
- package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.d.ts +35 -0
- package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js +391 -0
- package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js.map +1 -0
- package/dist/src/features/onboarding-flow/cctp/clientFactory.d.ts +6 -0
- package/dist/src/features/onboarding-flow/cctp/clientFactory.js +9 -0
- package/dist/src/features/onboarding-flow/cctp/clientFactory.js.map +1 -0
- package/dist/src/features/onboarding-flow/cctp/config.d.ts +16 -0
- package/dist/src/features/onboarding-flow/cctp/config.js +55 -0
- package/dist/src/features/onboarding-flow/cctp/config.js.map +1 -0
- package/dist/src/features/onboarding-flow/cctp/mockCctpClient.d.ts +11 -0
- package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js +85 -0
- package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js.map +1 -0
- package/dist/src/features/onboarding-flow/cctp/solanaClaim.d.ts +1 -0
- package/dist/src/features/onboarding-flow/cctp/solanaClaim.js +2 -0
- package/dist/src/features/onboarding-flow/cctp/solanaClaim.js.map +1 -0
- package/dist/src/features/onboarding-flow/cctp/types.d.ts +50 -0
- package/dist/src/features/onboarding-flow/cctp/types.js +2 -0
- package/dist/src/features/onboarding-flow/cctp/types.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/components/ChainButton.d.ts +5 -2
- package/dist/src/features/onboarding-flow/components/ChainButton.js +14 -0
- package/dist/src/features/onboarding-flow/components/ChainButton.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/components/Header.d.ts +2 -2
- package/dist/src/features/onboarding-flow/components/Header.js +69 -0
- package/dist/src/features/onboarding-flow/components/Header.js.map +1 -0
- package/dist/src/features/onboarding-flow/components/ImageWithFallback.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.d.ts +5 -0
- package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.js +8 -3
- package/dist/src/features/onboarding-flow/components/TransactionTable.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.d.ts +4 -0
- package/dist/src/features/onboarding-flow/components/WaitingMessage.js.map +1 -0
- package/dist/src/features/onboarding-flow/components/index.js.map +1 -0
- package/dist/src/features/onboarding-flow/errors/depositError.d.ts +36 -0
- package/dist/src/features/onboarding-flow/errors/depositError.js +134 -0
- package/dist/src/features/onboarding-flow/errors/depositError.js.map +1 -0
- package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.d.ts +35 -0
- package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js +585 -0
- package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js.map +1 -0
- package/dist/src/features/onboarding-flow/hooks/useDepositAuth.d.ts +6 -0
- package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js +141 -0
- package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js.map +1 -0
- package/dist/src/features/onboarding-flow/hooks/useDepositHydration.d.ts +15 -0
- package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js +83 -0
- package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js.map +1 -0
- package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.d.ts +6 -0
- package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js +45 -0
- package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js.map +1 -0
- package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.d.ts +13 -0
- package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js +161 -0
- package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js.map +1 -0
- package/dist/src/features/onboarding-flow/index.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/providers/DepositFlowProvider.d.ts +10 -3
- package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js +762 -0
- package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/providers/OnboardingStateProvider.d.ts +5 -0
- package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js +399 -0
- package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.d.ts +2 -2
- package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.js +2 -2
- package/dist/src/features/onboarding-flow/providers/StateProvider.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/providers/WalletConnectionProvider.d.ts +8 -0
- package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js +938 -0
- package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/providers/debug.js +5 -1
- package/dist/src/features/onboarding-flow/providers/debug.js.map +1 -0
- package/dist/src/features/onboarding-flow/providers/index.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.d.ts +28 -1
- package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.js +38 -4
- package/dist/src/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.d.ts +4 -0
- package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js +32 -0
- package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +5 -0
- package/dist/{features → src/features}/onboarding-flow/screens/01-ConnectWalletScreen.js +5 -0
- package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/screens/02-TurnkeyAuthScreen.js +8 -1
- package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +8 -1
- package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/screens/04-ChainSelectionScreen.d.ts +11 -11
- package/dist/{features → src/features}/onboarding-flow/screens/04-ChainSelectionScreen.js +59 -29
- package/dist/src/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +11 -0
- package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js +585 -0
- package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/screens/06-DepositProgressScreen.d.ts +5 -0
- package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js +367 -0
- package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +6 -0
- package/dist/{features → src/features}/onboarding-flow/screens/07-DepositSuccessScreen.js +11 -5
- package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +5 -0
- package/dist/{features → src/features}/onboarding-flow/screens/08-AuthLoadingScreen.js +5 -1
- package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.d.ts +5 -0
- package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js +43 -0
- package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/index.d.ts +10 -0
- package/dist/src/features/onboarding-flow/screens/index.js +11 -0
- package/dist/src/features/onboarding-flow/screens/index.js.map +1 -0
- package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.d.ts +1 -0
- package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js +2 -0
- package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/types.d.ts +38 -11
- package/dist/{features → src/features}/onboarding-flow/types.js +5 -0
- package/dist/src/features/onboarding-flow/types.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/bridgeUtils.d.ts +6 -0
- package/dist/src/features/onboarding-flow/utils/bridgeUtils.js +34 -0
- package/dist/src/features/onboarding-flow/utils/bridgeUtils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.d.ts +29 -0
- package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js +82 -0
- package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.d.ts +5 -0
- package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js +10 -0
- package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.d.ts +14 -0
- package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js +94 -0
- package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.d.ts +25 -0
- package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js +212 -0
- package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.d.ts +37 -0
- package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js +199 -0
- package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.d.ts +27 -0
- package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js +149 -0
- package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.d.ts +5 -0
- package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js +121 -0
- package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js.map +1 -0
- package/dist/{features/onboarding-flow/utils/transaction.d.ts → src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.d.ts} +3 -3
- package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js +8 -0
- package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.d.ts +12 -0
- package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js +150 -0
- package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/storage.d.ts +52 -0
- package/dist/src/features/onboarding-flow/utils/deposit/storage.js +243 -0
- package/dist/src/features/onboarding-flow/utils/deposit/storage.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.d.ts +36 -0
- package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js +304 -0
- package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/depositPolling.d.ts +1 -0
- package/dist/src/features/onboarding-flow/utils/depositPolling.js +3 -0
- package/dist/src/features/onboarding-flow/utils/depositPolling.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/explorerUrl.d.ts +14 -0
- package/dist/src/features/onboarding-flow/utils/explorerUrl.js +44 -0
- package/dist/src/features/onboarding-flow/utils/explorerUrl.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/nordUtils.d.ts +8 -0
- package/dist/{features/onboarding-flow/utils/nordUser.js → src/features/onboarding-flow/utils/nordUtils.js} +14 -1
- package/dist/src/features/onboarding-flow/utils/nordUtils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.d.ts +13 -0
- package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js +15 -0
- package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.d.ts +15 -0
- package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js +94 -0
- package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js.map +1 -0
- package/dist/{features → src/features}/onboarding-flow/utils/utils.d.ts +9 -2
- package/dist/{features → src/features}/onboarding-flow/utils/utils.js +9 -4
- package/dist/src/features/onboarding-flow/utils/utils.js.map +1 -0
- package/dist/src/features/onboarding-flow/utils/withImageFallback.d.ts +6 -0
- package/dist/{features → src/features}/onboarding-flow/utils/withImageFallback.js +2 -3
- package/dist/src/features/onboarding-flow/utils/withImageFallback.js.map +1 -0
- package/dist/src/hooks/index.js.map +1 -0
- package/dist/src/hooks/useN1Wallet.d.ts +12 -0
- package/dist/{hooks → src/hooks}/useN1Wallet.js +10 -0
- package/dist/src/hooks/useN1Wallet.js.map +1 -0
- package/dist/src/hooks/useNordUserInitialization.d.ts +12 -0
- package/dist/{hooks → src/hooks}/useNordUserInitialization.js +74 -33
- package/dist/src/hooks/useNordUserInitialization.js.map +1 -0
- package/dist/src/index.d.ts +9 -0
- package/dist/src/index.js +16 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/providers/LazyWalletProvider.d.ts +4 -0
- package/dist/src/providers/LazyWalletProvider.js +404 -0
- package/dist/src/providers/LazyWalletProvider.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/ContextBridge.d.ts +28 -0
- package/dist/src/providers/N1WalletProvider/ContextBridge.js +273 -0
- package/dist/src/providers/N1WalletProvider/ContextBridge.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/ModalProvider.d.ts +113 -0
- package/dist/src/providers/N1WalletProvider/ModalProvider.js +319 -0
- package/dist/src/providers/N1WalletProvider/ModalProvider.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/NetworkProvider.d.ts +88 -0
- package/dist/src/providers/N1WalletProvider/NetworkProvider.js +252 -0
- package/dist/src/providers/N1WalletProvider/NetworkProvider.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/SessionProvider.d.ts +71 -0
- package/dist/src/providers/N1WalletProvider/SessionProvider.js +187 -0
- package/dist/src/providers/N1WalletProvider/SessionProvider.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/SigningProvider.d.ts +58 -0
- package/dist/src/providers/N1WalletProvider/SigningProvider.js +134 -0
- package/dist/src/providers/N1WalletProvider/SigningProvider.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/ThemingProvider.d.ts +50 -0
- package/dist/src/providers/N1WalletProvider/ThemingProvider.js +102 -0
- package/dist/src/providers/N1WalletProvider/ThemingProvider.js.map +1 -0
- package/dist/src/providers/N1WalletProvider/index.d.ts +21 -0
- package/dist/src/providers/N1WalletProvider/index.js +27 -0
- package/dist/src/providers/N1WalletProvider/index.js.map +1 -0
- package/dist/src/providers/N1WalletProvider.d.ts +17 -0
- package/dist/src/providers/N1WalletProvider.js +102 -0
- package/dist/src/providers/N1WalletProvider.js.map +1 -0
- package/dist/{providers → src/providers}/ShadowRootWrapper.d.ts +4 -0
- package/dist/{providers → src/providers}/ShadowRootWrapper.js +4 -0
- package/dist/src/providers/ShadowRootWrapper.js.map +1 -0
- package/dist/{providers → src/providers}/WalletErrorBoundary.d.ts +7 -2
- package/dist/{providers → src/providers}/WalletErrorBoundary.js +5 -1
- package/dist/src/providers/WalletErrorBoundary.js.map +1 -0
- package/dist/src/services/bootstrap/DepositRecoveryService.d.ts +64 -0
- package/dist/src/services/bootstrap/DepositRecoveryService.js +245 -0
- package/dist/src/services/bootstrap/DepositRecoveryService.js.map +1 -0
- package/dist/src/services/bootstrap/DynamicSdkService.d.ts +62 -0
- package/dist/src/services/bootstrap/DynamicSdkService.js +335 -0
- package/dist/src/services/bootstrap/DynamicSdkService.js.map +1 -0
- package/dist/src/services/bootstrap/SessionBootstrapService.d.ts +78 -0
- package/dist/src/services/bootstrap/SessionBootstrapService.js +280 -0
- package/dist/src/services/bootstrap/SessionBootstrapService.js.map +1 -0
- package/dist/src/services/bootstrap/TurnkeyBootstrapService.d.ts +92 -0
- package/dist/src/services/bootstrap/TurnkeyBootstrapService.js +253 -0
- package/dist/src/services/bootstrap/TurnkeyBootstrapService.js.map +1 -0
- package/dist/src/services/bootstrap/index.d.ts +13 -0
- package/dist/src/services/bootstrap/index.js +16 -0
- package/dist/src/services/bootstrap/index.js.map +1 -0
- package/dist/src/services/bootstrap/types.d.ts +92 -0
- package/dist/src/services/bootstrap/types.js +7 -0
- package/dist/src/services/bootstrap/types.js.map +1 -0
- package/dist/src/services/storage/StorageService.d.ts +98 -0
- package/dist/src/services/storage/StorageService.js +360 -0
- package/dist/src/services/storage/StorageService.js.map +1 -0
- package/dist/src/services/storage/index.d.ts +9 -0
- package/dist/src/services/storage/index.js +10 -0
- package/dist/src/services/storage/index.js.map +1 -0
- package/dist/src/services/storage/keys.d.ts +28 -0
- package/dist/src/services/storage/keys.js +45 -0
- package/dist/src/services/storage/keys.js.map +1 -0
- package/dist/src/services/storage/types.d.ts +73 -0
- package/dist/src/services/storage/types.js +23 -0
- package/dist/src/services/storage/types.js.map +1 -0
- package/dist/src/store/index.d.ts +8 -0
- package/dist/src/store/index.js +24 -0
- package/dist/src/store/index.js.map +1 -0
- package/dist/src/store/selectors.d.ts +105 -0
- package/dist/src/store/selectors.js +183 -0
- package/dist/src/store/selectors.js.map +1 -0
- package/dist/src/store/slices/bootstrapSlice.d.ts +64 -0
- package/dist/src/store/slices/bootstrapSlice.js +78 -0
- package/dist/src/store/slices/bootstrapSlice.js.map +1 -0
- package/dist/src/store/slices/configSlice.d.ts +7 -0
- package/dist/src/store/slices/configSlice.js +14 -0
- package/dist/src/store/slices/configSlice.js.map +1 -0
- package/dist/src/store/slices/index.d.ts +10 -0
- package/dist/src/store/slices/index.js +10 -0
- package/dist/src/store/slices/index.js.map +1 -0
- package/dist/src/store/slices/sessionSlice.d.ts +7 -0
- package/dist/src/store/slices/sessionSlice.js +17 -0
- package/dist/src/store/slices/sessionSlice.js.map +1 -0
- package/dist/src/store/slices/signingSlice.d.ts +7 -0
- package/dist/src/store/slices/signingSlice.js +14 -0
- package/dist/src/store/slices/signingSlice.js.map +1 -0
- package/dist/src/store/slices/uiSlice.d.ts +9 -0
- package/dist/src/store/slices/uiSlice.js +25 -0
- package/dist/src/store/slices/uiSlice.js.map +1 -0
- package/dist/src/store/slices/walletSlice.d.ts +7 -0
- package/dist/src/store/slices/walletSlice.js +21 -0
- package/dist/src/store/slices/walletSlice.js.map +1 -0
- package/dist/src/store/store.d.ts +50 -0
- package/dist/src/store/store.js +259 -0
- package/dist/src/store/store.js.map +1 -0
- package/dist/src/store/subscriptions/depositPersistence.d.ts +32 -0
- package/dist/src/store/subscriptions/depositPersistence.js +106 -0
- package/dist/src/store/subscriptions/depositPersistence.js.map +1 -0
- package/dist/src/store/subscriptions/index.d.ts +34 -0
- package/dist/src/store/subscriptions/index.js +73 -0
- package/dist/src/store/subscriptions/index.js.map +1 -0
- package/dist/src/store/subscriptions/turnkeyPersistence.d.ts +42 -0
- package/dist/src/store/subscriptions/turnkeyPersistence.js +127 -0
- package/dist/src/store/subscriptions/turnkeyPersistence.js.map +1 -0
- package/dist/src/store/types.d.ts +166 -0
- package/dist/src/store/types.js +7 -0
- package/dist/src/store/types.js.map +1 -0
- package/dist/src/styles/cdn-fonts.d.ts +12 -0
- package/dist/src/styles/cdn-fonts.js +63 -0
- package/dist/src/styles/cdn-fonts.js.map +1 -0
- package/dist/src/styles/embedded-main-css.d.ts +2 -0
- package/dist/src/styles/embedded-main-css.js +3 -0
- package/dist/src/styles/embedded-main-css.js.map +1 -0
- package/dist/src/turnkey/TurnkeyProvider.d.ts +21 -0
- package/dist/src/turnkey/TurnkeyProvider.js +695 -0
- package/dist/src/turnkey/TurnkeyProvider.js.map +1 -0
- package/dist/src/turnkey/createTurnkeyWallet.d.ts +39 -0
- package/dist/src/turnkey/createTurnkeyWallet.js +319 -0
- package/dist/src/turnkey/createTurnkeyWallet.js.map +1 -0
- package/dist/src/turnkey/createWalletProvider.d.ts +8 -0
- package/dist/src/turnkey/createWalletProvider.js +286 -0
- package/dist/src/turnkey/createWalletProvider.js.map +1 -0
- package/dist/src/turnkey/index.d.ts +3 -0
- package/dist/src/turnkey/index.js +3 -0
- package/dist/src/turnkey/index.js.map +1 -0
- package/dist/src/turnkey/turnkeySessionMachine.d.ts +39 -0
- package/dist/src/turnkey/turnkeySessionMachine.js +77 -0
- package/dist/src/turnkey/turnkeySessionMachine.js.map +1 -0
- package/dist/src/turnkey/turnkeySessionStorage.d.ts +48 -0
- package/dist/src/turnkey/turnkeySessionStorage.js +183 -0
- package/dist/src/turnkey/turnkeySessionStorage.js.map +1 -0
- package/dist/{turnkey → src/turnkey}/types.d.ts +21 -8
- package/dist/src/turnkey/types.js +12 -0
- package/dist/src/turnkey/types.js.map +1 -0
- package/dist/{types → src/types}/wallet.d.ts +39 -13
- package/dist/src/types/wallet.js.map +1 -0
- package/dist/src/utils/address.d.ts +130 -0
- package/dist/src/utils/address.js +274 -0
- package/dist/src/utils/address.js.map +1 -0
- package/dist/src/utils/chain.d.ts +89 -0
- package/dist/src/utils/chain.js +282 -0
- package/dist/src/utils/chain.js.map +1 -0
- package/dist/{utils → src/utils}/ed25519.d.ts +0 -2
- package/dist/{utils → src/utils}/ed25519.js +4 -19
- package/dist/src/utils/ed25519.js.map +1 -0
- package/dist/src/utils/errors.d.ts +68 -0
- package/dist/src/utils/errors.js +190 -0
- package/dist/src/utils/errors.js.map +1 -0
- package/dist/src/utils/events.d.ts +124 -0
- package/dist/src/utils/events.js +155 -0
- package/dist/src/utils/events.js.map +1 -0
- package/dist/src/utils/formatAmount.d.ts +4 -0
- package/dist/src/utils/formatAmount.js +9 -0
- package/dist/src/utils/formatAmount.js.map +1 -0
- package/dist/src/utils/logger.d.ts +45 -0
- package/dist/{utils → src/utils}/logger.js +68 -2
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/shortenString.d.ts +5 -0
- package/dist/src/utils/shortenString.js +16 -0
- package/dist/src/utils/shortenString.js.map +1 -0
- package/package.json +37 -15
- package/dist/animations/N1Loader.js.map +0 -1
- package/dist/animations/Processing.js.map +0 -1
- package/dist/components/LoadingFallback.js.map +0 -1
- package/dist/components/Logo.js.map +0 -1
- package/dist/components/N1ConnectButton.d.ts +0 -5
- package/dist/components/N1ConnectButton.js +0 -49
- package/dist/components/N1ConnectButton.js.map +0 -1
- package/dist/components/logos/ArbitrumLogo.js.map +0 -1
- package/dist/components/logos/BaseLogo.js +0 -6
- package/dist/components/logos/BaseLogo.js.map +0 -1
- package/dist/components/logos/BeraLogo.js.map +0 -1
- package/dist/components/logos/BitcoinLogo.js.map +0 -1
- package/dist/components/logos/EthereumLogo.js.map +0 -1
- package/dist/components/logos/HyperliquidLogo.js.map +0 -1
- package/dist/components/logos/OptimismLogo.js.map +0 -1
- package/dist/components/logos/SolanaLogo.js.map +0 -1
- package/dist/components/logos/ZeroOneLogo.js.map +0 -1
- package/dist/components/logos/index.js.map +0 -1
- package/dist/config/chains.d.ts +0 -0
- package/dist/config/chains.js +0 -2
- package/dist/config/chains.js.map +0 -1
- package/dist/config/dynamic.js +0 -13
- package/dist/config/dynamic.js.map +0 -1
- package/dist/config/solana.js.map +0 -1
- package/dist/config/turnkey.d.ts +0 -2
- package/dist/config/turnkey.js.map +0 -1
- package/dist/config.d.ts +0 -2
- package/dist/config.js +0 -3
- package/dist/config.js.map +0 -1
- package/dist/context/n1-wallet-context.js.map +0 -1
- package/dist/errors/types.d.ts +0 -25
- package/dist/errors/types.js +0 -77
- package/dist/errors/types.js.map +0 -1
- package/dist/features/onboarding-flow/N1WalletModal.js.map +0 -1
- package/dist/features/onboarding-flow/OnboardingFlow.js.map +0 -1
- package/dist/features/onboarding-flow/components/ChainButton.js +0 -21
- package/dist/features/onboarding-flow/components/ChainButton.js.map +0 -1
- package/dist/features/onboarding-flow/components/Header.js +0 -45
- package/dist/features/onboarding-flow/components/Header.js.map +0 -1
- package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +0 -1
- package/dist/features/onboarding-flow/components/TransactionTable.js.map +0 -1
- package/dist/features/onboarding-flow/components/WaitingMessage.js.map +0 -1
- package/dist/features/onboarding-flow/components/index.js.map +0 -1
- package/dist/features/onboarding-flow/index.js.map +0 -1
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +0 -525
- package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +0 -1
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +0 -185
- package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +0 -1
- package/dist/features/onboarding-flow/providers/StateProvider.js.map +0 -1
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +0 -394
- package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +0 -1
- package/dist/features/onboarding-flow/providers/debug.js.map +0 -1
- package/dist/features/onboarding-flow/providers/index.js.map +0 -1
- package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +0 -1
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.d.ts +0 -31
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js +0 -100
- package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.d.ts +0 -6
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +0 -360
- package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.d.ts +0 -3
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +0 -31
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +0 -6
- package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js +0 -360
- package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js +0 -136
- package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js +0 -31
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js +0 -31
- package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +0 -14
- package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/09-ErrorScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/09-ErrorScreen.js +0 -14
- package/dist/features/onboarding-flow/screens/09-ErrorScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/index.d.ts +0 -7
- package/dist/features/onboarding-flow/screens/index.js +0 -8
- package/dist/features/onboarding-flow/screens/index.js.map +0 -1
- package/dist/features/onboarding-flow/types.js.map +0 -1
- package/dist/features/onboarding-flow/utils/depositStorage.d.ts +0 -4
- package/dist/features/onboarding-flow/utils/depositStorage.js +0 -48
- package/dist/features/onboarding-flow/utils/depositStorage.js.map +0 -1
- package/dist/features/onboarding-flow/utils/imageUtils.d.ts +0 -21
- package/dist/features/onboarding-flow/utils/imageUtils.js +0 -110
- package/dist/features/onboarding-flow/utils/imageUtils.js.map +0 -1
- package/dist/features/onboarding-flow/utils/nordUser.d.ts +0 -1
- package/dist/features/onboarding-flow/utils/nordUser.js.map +0 -1
- package/dist/features/onboarding-flow/utils/nordUtils.d.ts +0 -40
- package/dist/features/onboarding-flow/utils/nordUtils.js +0 -64
- package/dist/features/onboarding-flow/utils/nordUtils.js.map +0 -1
- package/dist/features/onboarding-flow/utils/session.d.ts +0 -17
- package/dist/features/onboarding-flow/utils/session.js +0 -69
- package/dist/features/onboarding-flow/utils/session.js.map +0 -1
- package/dist/features/onboarding-flow/utils/transaction.js +0 -8
- package/dist/features/onboarding-flow/utils/transaction.js.map +0 -1
- package/dist/features/onboarding-flow/utils/utils.js.map +0 -1
- package/dist/features/onboarding-flow/utils/withImageFallback.d.ts +0 -7
- package/dist/features/onboarding-flow/utils/withImageFallback.js.map +0 -1
- package/dist/features/turnkey/createTurnkeyWallet.d.ts +0 -25
- package/dist/features/turnkey/createTurnkeyWallet.js +0 -119
- package/dist/features/turnkey/createTurnkeyWallet.js.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/useN1Wallet.d.ts +0 -2
- package/dist/hooks/useN1Wallet.js.map +0 -1
- package/dist/hooks/useNordUserInitialization.d.ts +0 -1
- package/dist/hooks/useNordUserInitialization.js.map +0 -1
- package/dist/index.d.ts +0 -7
- package/dist/index.js +0 -8
- package/dist/index.js.map +0 -1
- package/dist/polyfills/windowEthereumGuard.d.ts +0 -6
- package/dist/polyfills/windowEthereumGuard.js +0 -28
- package/dist/polyfills/windowEthereumGuard.js.map +0 -1
- package/dist/providers/LazyWalletProvider.d.ts +0 -1
- package/dist/providers/LazyWalletProvider.js +0 -230
- package/dist/providers/LazyWalletProvider.js.map +0 -1
- package/dist/providers/N1WalletProvider.d.ts +0 -3
- package/dist/providers/N1WalletProvider.js +0 -267
- package/dist/providers/N1WalletProvider.js.map +0 -1
- package/dist/providers/ShadowRootWrapper.js.map +0 -1
- package/dist/providers/TurnkeyProviderBridge.d.ts +0 -7
- package/dist/providers/TurnkeyProviderBridge.js +0 -20
- package/dist/providers/TurnkeyProviderBridge.js.map +0 -1
- package/dist/providers/WalletErrorBoundary.js.map +0 -1
- package/dist/styles/embedded-main-css.d.ts +0 -2
- package/dist/styles/embedded-main-css.js +0 -3
- package/dist/styles/embedded-main-css.js.map +0 -1
- package/dist/turnkey/TurnkeyProvider.d.ts +0 -9
- package/dist/turnkey/TurnkeyProvider.js +0 -378
- package/dist/turnkey/TurnkeyProvider.js.map +0 -1
- package/dist/turnkey/createWalletProvider.d.ts +0 -3
- package/dist/turnkey/createWalletProvider.js +0 -180
- package/dist/turnkey/createWalletProvider.js.map +0 -1
- package/dist/turnkey/index.d.ts +0 -3
- package/dist/turnkey/index.js +0 -3
- package/dist/turnkey/index.js.map +0 -1
- package/dist/turnkey/types.js +0 -8
- package/dist/turnkey/types.js.map +0 -1
- package/dist/types/wallet.js.map +0 -1
- package/dist/utils/ed25519.js.map +0 -1
- package/dist/utils/getPseudoName.d.ts +0 -1
- package/dist/utils/getPseudoName.js +0 -5826
- package/dist/utils/getPseudoName.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -21
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/shortenString.d.ts +0 -2
- package/dist/utils/shortenString.js +0 -9
- package/dist/utils/shortenString.js.map +0 -1
- package/dist/utils/turnkeySessionStorage.d.ts +0 -3
- package/dist/utils/turnkeySessionStorage.js +0 -33
- package/dist/utils/turnkeySessionStorage.js.map +0 -1
- package/dist/utils/words.d.ts +0 -9
- package/dist/utils/words.js +0 -93572
- package/dist/utils/words.js.map +0 -1
- /package/dist/{animations → src/animations}/N1Loader.d.ts +0 -0
- /package/dist/{animations → src/animations}/N1Loader.js +0 -0
- /package/dist/{animations → src/animations}/Processing.d.ts +0 -0
- /package/dist/{animations → src/animations}/Processing.js +0 -0
- /package/dist/{components → src/components}/logos/ArbitrumLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/ArbitrumLogo.js +0 -0
- /package/dist/{components → src/components}/logos/BaseLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/BeraLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/BeraLogo.js +0 -0
- /package/dist/{components → src/components}/logos/BitcoinLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/BitcoinLogo.js +0 -0
- /package/dist/{components → src/components}/logos/EthereumLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/EthereumLogo.js +0 -0
- /package/dist/{components → src/components}/logos/HyperliquidLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/OptimismLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/OptimismLogo.js +0 -0
- /package/dist/{components → src/components}/logos/SolanaLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/SolanaLogo.js +0 -0
- /package/dist/{components → src/components}/logos/ZeroOneLogo.d.ts +0 -0
- /package/dist/{components → src/components}/logos/ZeroOneLogo.js +0 -0
- /package/dist/{components → src/components}/logos/index.d.ts +0 -0
- /package/dist/{components → src/components}/logos/index.js +0 -0
- /package/dist/{config → src/config}/dynamic.d.ts +0 -0
- /package/dist/{config → src/config}/solana.d.ts +0 -0
- /package/dist/{config → src/config}/solana.js +0 -0
- /package/dist/{context → src/context}/n1-wallet-context.d.ts +0 -0
- /package/dist/{context → src/context}/n1-wallet-context.js +0 -0
- /package/dist/{features → src/features}/onboarding-flow/N1WalletModal.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/components/ImageWithFallback.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/components/ImageWithFallback.js +0 -0
- /package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.js +0 -0
- /package/dist/{features → src/features}/onboarding-flow/components/index.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/components/index.js +0 -0
- /package/dist/{features → src/features}/onboarding-flow/index.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/index.js +0 -0
- /package/dist/{features → src/features}/onboarding-flow/providers/debug.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/providers/index.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/providers/index.js +0 -0
- /package/dist/{features → src/features}/onboarding-flow/screens/02-TurnkeyAuthScreen.d.ts +0 -0
- /package/dist/{features → src/features}/onboarding-flow/screens/03-TurnkeyPreparingScreen.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/index.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/index.js +0 -0
- /package/dist/{types → src/types}/wallet.js +0 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet adapter factory.
|
|
3
|
+
* Creates the appropriate adapter based on network type.
|
|
4
|
+
*/
|
|
5
|
+
import { SolanaAdapter } from './solana';
|
|
6
|
+
import { EVMAdapter } from './evm';
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Factory Function
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
/**
|
|
11
|
+
* Creates a wallet adapter for the given network and wallet.
|
|
12
|
+
*
|
|
13
|
+
* @param options - Options including network type and raw wallet object
|
|
14
|
+
* @returns The appropriate wallet adapter
|
|
15
|
+
* @throws Error if network type is unsupported
|
|
16
|
+
*/
|
|
17
|
+
export function createAdapter(options) {
|
|
18
|
+
var network = options.network, wallet = options.wallet;
|
|
19
|
+
switch (network) {
|
|
20
|
+
case 'solana':
|
|
21
|
+
return new SolanaAdapter(wallet);
|
|
22
|
+
case 'evm':
|
|
23
|
+
return new EVMAdapter(wallet);
|
|
24
|
+
default:
|
|
25
|
+
throw new Error("Unsupported network type: ".concat(network));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Creates a Solana wallet adapter.
|
|
30
|
+
*
|
|
31
|
+
* @param wallet - The raw wallet object from Dynamic SDK
|
|
32
|
+
* @returns Solana wallet adapter
|
|
33
|
+
*/
|
|
34
|
+
export function createSolanaAdapter(wallet) {
|
|
35
|
+
return new SolanaAdapter(wallet);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Creates an EVM wallet adapter.
|
|
39
|
+
*
|
|
40
|
+
* @param wallet - The raw wallet object from Dynamic SDK
|
|
41
|
+
* @returns EVM wallet adapter
|
|
42
|
+
*/
|
|
43
|
+
export function createEVMAdapter(wallet) {
|
|
44
|
+
return new EVMAdapter(wallet);
|
|
45
|
+
}
|
|
46
|
+
// ---------------------------------------------------------------------------
|
|
47
|
+
// Auto-Detection Factory
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
/**
|
|
50
|
+
* Attempts to detect the network type from a wallet object and create the appropriate adapter.
|
|
51
|
+
* Falls back to the provided default network if detection fails.
|
|
52
|
+
*
|
|
53
|
+
* @param wallet - The raw wallet object
|
|
54
|
+
* @param defaultNetwork - Network to use if detection fails (defaults to 'evm')
|
|
55
|
+
* @returns The appropriate wallet adapter
|
|
56
|
+
*/
|
|
57
|
+
export function createAdapterFromWallet(wallet, defaultNetwork) {
|
|
58
|
+
var _a, _b, _c, _d, _e;
|
|
59
|
+
if (defaultNetwork === void 0) { defaultNetwork = 'evm'; }
|
|
60
|
+
if (!wallet || typeof wallet !== 'object') {
|
|
61
|
+
throw new Error('Invalid wallet object');
|
|
62
|
+
}
|
|
63
|
+
var walletObj = wallet;
|
|
64
|
+
// Check for Solana-specific indicators
|
|
65
|
+
if (walletObj.chain === 'SOL' ||
|
|
66
|
+
(typeof walletObj.getSigner === 'function' && !((_a = walletObj.connector) === null || _a === void 0 ? void 0 : _a.getProvider))) {
|
|
67
|
+
return new SolanaAdapter(wallet);
|
|
68
|
+
}
|
|
69
|
+
// Check for EVM-specific indicators
|
|
70
|
+
if (((_b = walletObj.connector) === null || _b === void 0 ? void 0 : _b.getProvider) ||
|
|
71
|
+
((_c = walletObj.chain) === null || _c === void 0 ? void 0 : _c.startsWith('ETH')) ||
|
|
72
|
+
((_d = walletObj.chain) === null || _d === void 0 ? void 0 : _d.startsWith('ARB')) ||
|
|
73
|
+
((_e = walletObj.chain) === null || _e === void 0 ? void 0 : _e.startsWith('BASE'))) {
|
|
74
|
+
return new EVMAdapter(wallet);
|
|
75
|
+
}
|
|
76
|
+
// Use default
|
|
77
|
+
if (defaultNetwork === 'solana') {
|
|
78
|
+
return new SolanaAdapter(wallet);
|
|
79
|
+
}
|
|
80
|
+
return new EVMAdapter(wallet);
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -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,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified wallet adapter exports.
|
|
3
|
+
*
|
|
4
|
+
* Provides a consistent interface across Solana and EVM wallets.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { createAdapter, isSolanaAdapter, isEVMAdapter } from './adapters';
|
|
9
|
+
*
|
|
10
|
+
* // Create an adapter
|
|
11
|
+
* const adapter = createAdapter({ network: 'solana', wallet: dynamicSolanaWallet });
|
|
12
|
+
*
|
|
13
|
+
* // Use common interface
|
|
14
|
+
* const address = adapter.address;
|
|
15
|
+
* const signature = await adapter.signMessage('Hello');
|
|
16
|
+
*
|
|
17
|
+
* // Type-specific operations
|
|
18
|
+
* if (isSolanaAdapter(adapter)) {
|
|
19
|
+
* const pubkey = adapter.getPublicKey();
|
|
20
|
+
* const isLedger = await adapter.isLedger();
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* if (isEVMAdapter(adapter)) {
|
|
24
|
+
* const provider = await adapter.getProvider();
|
|
25
|
+
* await adapter.switchChain(1);
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export type { WalletAdapter, SolanaWalletAdapter, EVMWalletAdapter, EIP1193Provider, WalletAdapterState, WalletAdapterError, CreateAdapterOptions, WalletAdapterFactory, } from './types';
|
|
30
|
+
export { isSolanaAdapter, isEVMAdapter } from './types';
|
|
31
|
+
export { createAdapter, createSolanaAdapter, createEVMAdapter, createAdapterFromWallet, } from './factory';
|
|
32
|
+
export { SolanaAdapter } from './solana';
|
|
33
|
+
export { EVMAdapter } from './evm';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified wallet adapter exports.
|
|
3
|
+
*
|
|
4
|
+
* Provides a consistent interface across Solana and EVM wallets.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { createAdapter, isSolanaAdapter, isEVMAdapter } from './adapters';
|
|
9
|
+
*
|
|
10
|
+
* // Create an adapter
|
|
11
|
+
* const adapter = createAdapter({ network: 'solana', wallet: dynamicSolanaWallet });
|
|
12
|
+
*
|
|
13
|
+
* // Use common interface
|
|
14
|
+
* const address = adapter.address;
|
|
15
|
+
* const signature = await adapter.signMessage('Hello');
|
|
16
|
+
*
|
|
17
|
+
* // Type-specific operations
|
|
18
|
+
* if (isSolanaAdapter(adapter)) {
|
|
19
|
+
* const pubkey = adapter.getPublicKey();
|
|
20
|
+
* const isLedger = await adapter.isLedger();
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* if (isEVMAdapter(adapter)) {
|
|
24
|
+
* const provider = await adapter.getProvider();
|
|
25
|
+
* await adapter.switchChain(1);
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
// Type guards
|
|
30
|
+
export { isSolanaAdapter, isEVMAdapter } from './types';
|
|
31
|
+
// Factory functions
|
|
32
|
+
export { createAdapter, createSolanaAdapter, createEVMAdapter, createAdapterFromWallet, } from './factory';
|
|
33
|
+
// Adapter classes (for instanceof checks or extension)
|
|
34
|
+
export { SolanaAdapter } from './solana';
|
|
35
|
+
export { EVMAdapter } from './evm';
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -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,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Solana wallet adapter implementation.
|
|
3
|
+
* Wraps Dynamic SDK Solana wallets in a unified interface.
|
|
4
|
+
*/
|
|
5
|
+
import { PublicKey, Transaction, VersionedTransaction } from '@solana/web3.js';
|
|
6
|
+
import type { SolanaWalletAdapter, WalletAdapterState } from './types';
|
|
7
|
+
import type { ChainInfo } from '../utils/chain';
|
|
8
|
+
export declare class SolanaAdapter implements SolanaWalletAdapter {
|
|
9
|
+
readonly network: "solana";
|
|
10
|
+
private _wallet;
|
|
11
|
+
private _signer;
|
|
12
|
+
private _isLedger;
|
|
13
|
+
constructor(wallet: unknown);
|
|
14
|
+
get address(): string | null;
|
|
15
|
+
get isConnected(): boolean;
|
|
16
|
+
get state(): WalletAdapterState;
|
|
17
|
+
get chain(): ChainInfo | null;
|
|
18
|
+
get walletName(): string | null;
|
|
19
|
+
private ensureSigner;
|
|
20
|
+
getPublicKey(): PublicKey | null;
|
|
21
|
+
signMessage(message: string | Uint8Array): Promise<Uint8Array>;
|
|
22
|
+
signTransaction<T extends Transaction | VersionedTransaction>(transaction: T): Promise<T>;
|
|
23
|
+
signAllTransactions<T extends Transaction | VersionedTransaction>(transactions: T[]): Promise<T[]>;
|
|
24
|
+
isLedger(): Promise<boolean>;
|
|
25
|
+
getSigner(): Promise<{
|
|
26
|
+
publicKey: PublicKey;
|
|
27
|
+
signTransaction: <T extends Transaction | VersionedTransaction>(tx: T) => Promise<T>;
|
|
28
|
+
signAllTransactions: <T extends Transaction | VersionedTransaction>(txs: T[]) => Promise<T[]>;
|
|
29
|
+
signMessage: (message: Uint8Array) => Promise<Uint8Array>;
|
|
30
|
+
}>;
|
|
31
|
+
disconnect(): Promise<void>;
|
|
32
|
+
getRawWallet(): unknown;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Creates a Solana wallet adapter from a Dynamic SDK wallet.
|
|
36
|
+
*/
|
|
37
|
+
export declare function createSolanaAdapter(wallet: unknown): SolanaWalletAdapter;
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Solana wallet adapter implementation.
|
|
3
|
+
* Wraps Dynamic SDK Solana wallets in a unified interface.
|
|
4
|
+
*/
|
|
5
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
15
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
16
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
17
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
18
|
+
function step(op) {
|
|
19
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
20
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
21
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
22
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
23
|
+
switch (op[0]) {
|
|
24
|
+
case 0: case 1: t = op; break;
|
|
25
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
26
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
27
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
28
|
+
default:
|
|
29
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
30
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
31
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
32
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
33
|
+
if (t[2]) _.ops.pop();
|
|
34
|
+
_.trys.pop(); continue;
|
|
35
|
+
}
|
|
36
|
+
op = body.call(thisArg, _);
|
|
37
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
38
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
import { PublicKey } from '@solana/web3.js';
|
|
42
|
+
import { isValidSolanaAddress } from '../utils/address';
|
|
43
|
+
import { logger } from '../utils/logger';
|
|
44
|
+
// ---------------------------------------------------------------------------
|
|
45
|
+
// Helper Functions
|
|
46
|
+
// ---------------------------------------------------------------------------
|
|
47
|
+
/**
|
|
48
|
+
* Detects if a wallet is likely backed by a Ledger hardware wallet.
|
|
49
|
+
* Probes signMessage: failure with non-rejection error indicates Ledger.
|
|
50
|
+
*/
|
|
51
|
+
function detectLedger(signer) {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
53
|
+
var msg, error_1, anyErr, message, cancelled;
|
|
54
|
+
var _a;
|
|
55
|
+
return __generator(this, function (_b) {
|
|
56
|
+
switch (_b.label) {
|
|
57
|
+
case 0:
|
|
58
|
+
_b.trys.push([0, 2, , 3]);
|
|
59
|
+
msg = new TextEncoder().encode('n1-ledger-probe');
|
|
60
|
+
return [4 /*yield*/, signer.signMessage(msg)];
|
|
61
|
+
case 1:
|
|
62
|
+
_b.sent();
|
|
63
|
+
return [2 /*return*/, false];
|
|
64
|
+
case 2:
|
|
65
|
+
error_1 = _b.sent();
|
|
66
|
+
anyErr = error_1;
|
|
67
|
+
if ((anyErr === null || anyErr === void 0 ? void 0 : anyErr.code) === 4001)
|
|
68
|
+
return [2 /*return*/, false]; // User rejection, not Ledger
|
|
69
|
+
message = ((_a = anyErr === null || anyErr === void 0 ? void 0 : anyErr.message) !== null && _a !== void 0 ? _a : '').toLowerCase();
|
|
70
|
+
if (message.includes('reject') || message.includes('denied') || message.includes('cancel')) {
|
|
71
|
+
cancelled = new Error('Signature request was cancelled');
|
|
72
|
+
cancelled.code = 'N1_SIGNATURE_CANCELLED';
|
|
73
|
+
throw cancelled;
|
|
74
|
+
}
|
|
75
|
+
// Other failure - likely Ledger
|
|
76
|
+
logger.debug('[SolanaAdapter] signMessage probe failed, treating as Ledger', {
|
|
77
|
+
error: message,
|
|
78
|
+
});
|
|
79
|
+
return [2 /*return*/, true];
|
|
80
|
+
case 3: return [2 /*return*/];
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
// ---------------------------------------------------------------------------
|
|
86
|
+
// Solana Wallet Adapter Implementation
|
|
87
|
+
// ---------------------------------------------------------------------------
|
|
88
|
+
var SolanaAdapter = /** @class */ (function () {
|
|
89
|
+
function SolanaAdapter(wallet) {
|
|
90
|
+
this.network = 'solana';
|
|
91
|
+
this._signer = null;
|
|
92
|
+
this._isLedger = null;
|
|
93
|
+
this._wallet = wallet;
|
|
94
|
+
}
|
|
95
|
+
Object.defineProperty(SolanaAdapter.prototype, "address", {
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
// State Properties
|
|
98
|
+
// ---------------------------------------------------------------------------
|
|
99
|
+
get: function () {
|
|
100
|
+
var addr = this._wallet.address;
|
|
101
|
+
return addr && isValidSolanaAddress(addr) ? addr : null;
|
|
102
|
+
},
|
|
103
|
+
enumerable: false,
|
|
104
|
+
configurable: true
|
|
105
|
+
});
|
|
106
|
+
Object.defineProperty(SolanaAdapter.prototype, "isConnected", {
|
|
107
|
+
get: function () {
|
|
108
|
+
var _a;
|
|
109
|
+
return Boolean((_a = this._wallet.connected) !== null && _a !== void 0 ? _a : this.address);
|
|
110
|
+
},
|
|
111
|
+
enumerable: false,
|
|
112
|
+
configurable: true
|
|
113
|
+
});
|
|
114
|
+
Object.defineProperty(SolanaAdapter.prototype, "state", {
|
|
115
|
+
get: function () {
|
|
116
|
+
if (this.isConnected)
|
|
117
|
+
return 'connected';
|
|
118
|
+
return 'disconnected';
|
|
119
|
+
},
|
|
120
|
+
enumerable: false,
|
|
121
|
+
configurable: true
|
|
122
|
+
});
|
|
123
|
+
Object.defineProperty(SolanaAdapter.prototype, "chain", {
|
|
124
|
+
get: function () {
|
|
125
|
+
if (!this.isConnected)
|
|
126
|
+
return null;
|
|
127
|
+
return {
|
|
128
|
+
id: 'solana',
|
|
129
|
+
name: 'Solana',
|
|
130
|
+
network: 'solana',
|
|
131
|
+
};
|
|
132
|
+
},
|
|
133
|
+
enumerable: false,
|
|
134
|
+
configurable: true
|
|
135
|
+
});
|
|
136
|
+
Object.defineProperty(SolanaAdapter.prototype, "walletName", {
|
|
137
|
+
get: function () {
|
|
138
|
+
var _a, _b;
|
|
139
|
+
return (_b = (_a = this._wallet.connector) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : null;
|
|
140
|
+
},
|
|
141
|
+
enumerable: false,
|
|
142
|
+
configurable: true
|
|
143
|
+
});
|
|
144
|
+
// ---------------------------------------------------------------------------
|
|
145
|
+
// Signer Access
|
|
146
|
+
// ---------------------------------------------------------------------------
|
|
147
|
+
SolanaAdapter.prototype.ensureSigner = function () {
|
|
148
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
149
|
+
var _a, _b;
|
|
150
|
+
return __generator(this, function (_c) {
|
|
151
|
+
switch (_c.label) {
|
|
152
|
+
case 0:
|
|
153
|
+
if (this._signer)
|
|
154
|
+
return [2 /*return*/, this._signer];
|
|
155
|
+
if (!(typeof this._wallet.getSigner === 'function')) return [3 /*break*/, 2];
|
|
156
|
+
_a = this;
|
|
157
|
+
return [4 /*yield*/, this._wallet.getSigner()];
|
|
158
|
+
case 1:
|
|
159
|
+
_a._signer = _c.sent();
|
|
160
|
+
return [3 /*break*/, 5];
|
|
161
|
+
case 2:
|
|
162
|
+
if (!(this._wallet.connector && typeof this._wallet.connector.getSigner === 'function')) return [3 /*break*/, 4];
|
|
163
|
+
_b = this;
|
|
164
|
+
return [4 /*yield*/, this._wallet.connector.getSigner()];
|
|
165
|
+
case 3:
|
|
166
|
+
_b._signer = _c.sent();
|
|
167
|
+
return [3 /*break*/, 5];
|
|
168
|
+
case 4: throw new Error('Wallet does not support getSigner');
|
|
169
|
+
case 5: return [2 /*return*/, this._signer];
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
};
|
|
174
|
+
// ---------------------------------------------------------------------------
|
|
175
|
+
// SolanaWalletAdapter Methods
|
|
176
|
+
// ---------------------------------------------------------------------------
|
|
177
|
+
SolanaAdapter.prototype.getPublicKey = function () {
|
|
178
|
+
var addr = this.address;
|
|
179
|
+
if (!addr)
|
|
180
|
+
return null;
|
|
181
|
+
try {
|
|
182
|
+
return new PublicKey(addr);
|
|
183
|
+
}
|
|
184
|
+
catch (_a) {
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
SolanaAdapter.prototype.signMessage = function (message) {
|
|
189
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
190
|
+
var signer, messageBytes;
|
|
191
|
+
return __generator(this, function (_a) {
|
|
192
|
+
switch (_a.label) {
|
|
193
|
+
case 0: return [4 /*yield*/, this.ensureSigner()];
|
|
194
|
+
case 1:
|
|
195
|
+
signer = _a.sent();
|
|
196
|
+
if (typeof message === 'string') {
|
|
197
|
+
messageBytes = new TextEncoder().encode(message);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
messageBytes = message;
|
|
201
|
+
}
|
|
202
|
+
return [2 /*return*/, signer.signMessage(messageBytes)];
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
};
|
|
207
|
+
SolanaAdapter.prototype.signTransaction = function (transaction) {
|
|
208
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
209
|
+
var signer;
|
|
210
|
+
return __generator(this, function (_a) {
|
|
211
|
+
switch (_a.label) {
|
|
212
|
+
case 0: return [4 /*yield*/, this.ensureSigner()];
|
|
213
|
+
case 1:
|
|
214
|
+
signer = _a.sent();
|
|
215
|
+
return [2 /*return*/, signer.signTransaction(transaction)];
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
};
|
|
220
|
+
SolanaAdapter.prototype.signAllTransactions = function (transactions) {
|
|
221
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
222
|
+
var signer, signed, _i, transactions_1, tx, _a, _b;
|
|
223
|
+
return __generator(this, function (_c) {
|
|
224
|
+
switch (_c.label) {
|
|
225
|
+
case 0: return [4 /*yield*/, this.ensureSigner()];
|
|
226
|
+
case 1:
|
|
227
|
+
signer = _c.sent();
|
|
228
|
+
if (typeof signer.signAllTransactions === 'function') {
|
|
229
|
+
return [2 /*return*/, signer.signAllTransactions(transactions)];
|
|
230
|
+
}
|
|
231
|
+
signed = [];
|
|
232
|
+
_i = 0, transactions_1 = transactions;
|
|
233
|
+
_c.label = 2;
|
|
234
|
+
case 2:
|
|
235
|
+
if (!(_i < transactions_1.length)) return [3 /*break*/, 5];
|
|
236
|
+
tx = transactions_1[_i];
|
|
237
|
+
_b = (_a = signed).push;
|
|
238
|
+
return [4 /*yield*/, signer.signTransaction(tx)];
|
|
239
|
+
case 3:
|
|
240
|
+
_b.apply(_a, [_c.sent()]);
|
|
241
|
+
_c.label = 4;
|
|
242
|
+
case 4:
|
|
243
|
+
_i++;
|
|
244
|
+
return [3 /*break*/, 2];
|
|
245
|
+
case 5: return [2 /*return*/, signed];
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
};
|
|
250
|
+
SolanaAdapter.prototype.isLedger = function () {
|
|
251
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
252
|
+
var signer, _a, error_2;
|
|
253
|
+
return __generator(this, function (_b) {
|
|
254
|
+
switch (_b.label) {
|
|
255
|
+
case 0:
|
|
256
|
+
if (this._isLedger !== null)
|
|
257
|
+
return [2 /*return*/, this._isLedger];
|
|
258
|
+
_b.label = 1;
|
|
259
|
+
case 1:
|
|
260
|
+
_b.trys.push([1, 4, , 5]);
|
|
261
|
+
return [4 /*yield*/, this.ensureSigner()];
|
|
262
|
+
case 2:
|
|
263
|
+
signer = _b.sent();
|
|
264
|
+
_a = this;
|
|
265
|
+
return [4 /*yield*/, detectLedger(signer)];
|
|
266
|
+
case 3:
|
|
267
|
+
_a._isLedger = _b.sent();
|
|
268
|
+
return [2 /*return*/, this._isLedger];
|
|
269
|
+
case 4:
|
|
270
|
+
error_2 = _b.sent();
|
|
271
|
+
// Propagate user cancellation
|
|
272
|
+
if ((error_2 === null || error_2 === void 0 ? void 0 : error_2.code) === 'N1_SIGNATURE_CANCELLED') {
|
|
273
|
+
throw error_2;
|
|
274
|
+
}
|
|
275
|
+
// Default to false on other errors
|
|
276
|
+
return [2 /*return*/, false];
|
|
277
|
+
case 5: return [2 /*return*/];
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
});
|
|
281
|
+
};
|
|
282
|
+
SolanaAdapter.prototype.getSigner = function () {
|
|
283
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
284
|
+
var signer;
|
|
285
|
+
var _this = this;
|
|
286
|
+
return __generator(this, function (_a) {
|
|
287
|
+
switch (_a.label) {
|
|
288
|
+
case 0: return [4 /*yield*/, this.ensureSigner()];
|
|
289
|
+
case 1:
|
|
290
|
+
signer = _a.sent();
|
|
291
|
+
return [2 /*return*/, {
|
|
292
|
+
publicKey: signer.publicKey,
|
|
293
|
+
signTransaction: function (tx) { return signer.signTransaction(tx); },
|
|
294
|
+
signAllTransactions: function (txs) { return __awaiter(_this, void 0, void 0, function () {
|
|
295
|
+
var signed, _i, txs_1, tx, _a, _b;
|
|
296
|
+
return __generator(this, function (_c) {
|
|
297
|
+
switch (_c.label) {
|
|
298
|
+
case 0:
|
|
299
|
+
if (typeof signer.signAllTransactions === 'function') {
|
|
300
|
+
return [2 /*return*/, signer.signAllTransactions(txs)];
|
|
301
|
+
}
|
|
302
|
+
signed = [];
|
|
303
|
+
_i = 0, txs_1 = txs;
|
|
304
|
+
_c.label = 1;
|
|
305
|
+
case 1:
|
|
306
|
+
if (!(_i < txs_1.length)) return [3 /*break*/, 4];
|
|
307
|
+
tx = txs_1[_i];
|
|
308
|
+
_b = (_a = signed).push;
|
|
309
|
+
return [4 /*yield*/, signer.signTransaction(tx)];
|
|
310
|
+
case 2:
|
|
311
|
+
_b.apply(_a, [_c.sent()]);
|
|
312
|
+
_c.label = 3;
|
|
313
|
+
case 3:
|
|
314
|
+
_i++;
|
|
315
|
+
return [3 /*break*/, 1];
|
|
316
|
+
case 4: return [2 /*return*/, signed];
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
}); },
|
|
320
|
+
signMessage: function (msg) { return signer.signMessage(msg); },
|
|
321
|
+
}];
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
});
|
|
325
|
+
};
|
|
326
|
+
SolanaAdapter.prototype.disconnect = function () {
|
|
327
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
328
|
+
return __generator(this, function (_a) {
|
|
329
|
+
switch (_a.label) {
|
|
330
|
+
case 0:
|
|
331
|
+
if (!(typeof this._wallet.disconnect === 'function')) return [3 /*break*/, 2];
|
|
332
|
+
return [4 /*yield*/, this._wallet.disconnect()];
|
|
333
|
+
case 1:
|
|
334
|
+
_a.sent();
|
|
335
|
+
_a.label = 2;
|
|
336
|
+
case 2:
|
|
337
|
+
this._signer = null;
|
|
338
|
+
this._isLedger = null;
|
|
339
|
+
return [2 /*return*/];
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
});
|
|
343
|
+
};
|
|
344
|
+
SolanaAdapter.prototype.getRawWallet = function () {
|
|
345
|
+
return this._wallet;
|
|
346
|
+
};
|
|
347
|
+
return SolanaAdapter;
|
|
348
|
+
}());
|
|
349
|
+
export { SolanaAdapter };
|
|
350
|
+
// ---------------------------------------------------------------------------
|
|
351
|
+
// Factory Function
|
|
352
|
+
// ---------------------------------------------------------------------------
|
|
353
|
+
/**
|
|
354
|
+
* Creates a Solana wallet adapter from a Dynamic SDK wallet.
|
|
355
|
+
*/
|
|
356
|
+
export function createSolanaAdapter(wallet) {
|
|
357
|
+
return new SolanaAdapter(wallet);
|
|
358
|
+
}
|
|
359
|
+
//# sourceMappingURL=solana.js.map
|
|
@@ -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\n// ---------------------------------------------------------------------------\n// Factory Function\n// ---------------------------------------------------------------------------\n\n/**\n * Creates a Solana wallet adapter from a Dynamic SDK wallet.\n */\nexport function createSolanaAdapter(wallet: unknown): SolanaWalletAdapter {\n return new SolanaAdapter(wallet);\n}\n"]}
|