@n1xyz/wallet-widget 0.0.35-alpha.0 → 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.d.ts +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/src/config/turnkey.js +32 -0
- 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/{features → src/features}/onboarding-flow/components/ImageWithFallback.d.ts +2 -5
- package/dist/src/features/onboarding-flow/components/ImageWithFallback.js +33 -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/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.d.ts +1 -0
- package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js +25 -0
- package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +1 -0
- package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.d.ts +1 -0
- package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +25 -0
- package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +1 -0
- package/dist/{features/onboarding-flow/screens/02-ChainSelectionScreen.d.ts → src/features/onboarding-flow/screens/04-ChainSelectionScreen.d.ts} +11 -11
- package/dist/{features/onboarding-flow/screens/02-ChainSelectionScreen.js → src/features/onboarding-flow/screens/04-ChainSelectionScreen.js} +60 -30
- 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/onboarding-flow/screens/04-DepositProgressScreen.d.ts → 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/onboarding-flow/screens/05-DepositSuccessScreen.js → src/features/onboarding-flow/screens/07-DepositSuccessScreen.js} +12 -6
- 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/onboarding-flow/screens/06-AuthLoadingScreen.js → src/features/onboarding-flow/screens/08-AuthLoadingScreen.js} +6 -2
- 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 -5
- 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/{styles → src/styles}/cdn-fonts.js +20 -2
- 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/src/turnkey/types.d.ts +61 -0
- 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 +5 -20
- 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 +45 -29
- 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/solana.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 +0 -63
- 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.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/04-DepositProgressScreen.js +0 -31
- package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.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.map +0 -1
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.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/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/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 -271
- package/dist/providers/N1WalletProvider.js.map +0 -1
- package/dist/providers/ShadowRootWrapper.js.map +0 -1
- package/dist/providers/WalletErrorBoundary.js.map +0 -1
- package/dist/styles/cdn-fonts.d.ts +0 -1
- package/dist/styles/cdn-fonts.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/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/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}/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/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/{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,33 @@
|
|
|
1
|
+
import { VersionedTransaction } from '@solana/web3.js';
|
|
2
|
+
export declare const mapChainToBridgeKit: (chain: string) => any;
|
|
3
|
+
export declare const hashVersionedTransaction: (tx: VersionedTransaction) => string;
|
|
4
|
+
export type ConstructCctpClaimTxParams = {
|
|
5
|
+
message: string;
|
|
6
|
+
attestation: string;
|
|
7
|
+
sourceChain: string | any;
|
|
8
|
+
destinationAddress: string;
|
|
9
|
+
feePayer: string;
|
|
10
|
+
userAddress: string;
|
|
11
|
+
lookupTableAddress: string;
|
|
12
|
+
rpcUrl?: string;
|
|
13
|
+
blockhash?: string;
|
|
14
|
+
lastValidBlockHeight?: number;
|
|
15
|
+
decodedMessage?: {
|
|
16
|
+
sourceDomain: string;
|
|
17
|
+
destinationDomain: string;
|
|
18
|
+
nonce: string;
|
|
19
|
+
sender: string;
|
|
20
|
+
recipient: string;
|
|
21
|
+
decodedMessageBody?: {
|
|
22
|
+
mintRecipient?: string;
|
|
23
|
+
amount?: string;
|
|
24
|
+
burnToken?: string;
|
|
25
|
+
messageSender?: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export declare const constructCctpClaimTx: (params: ConstructCctpClaimTxParams) => Promise<{
|
|
30
|
+
tx: VersionedTransaction;
|
|
31
|
+
blockhash: string;
|
|
32
|
+
lastValidBlockHeight: number;
|
|
33
|
+
}>;
|
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
+
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);
|
|
23
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
|
+
function step(op) {
|
|
26
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
28
|
+
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;
|
|
29
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
|
+
switch (op[0]) {
|
|
31
|
+
case 0: case 1: t = op; break;
|
|
32
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
33
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
34
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
35
|
+
default:
|
|
36
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
37
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
38
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
39
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
40
|
+
if (t[2]) _.ops.pop();
|
|
41
|
+
_.trys.pop(); continue;
|
|
42
|
+
}
|
|
43
|
+
op = body.call(thisArg, _);
|
|
44
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
45
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
import { createAdapterFromProvider } from '@circle-fin/adapter-solana';
|
|
49
|
+
import { ArbitrumSepolia, BaseSepolia, EthereumSepolia, SolanaDevnet } from '@circle-fin/bridge-kit/chains';
|
|
50
|
+
import * as anchor from '@coral-xyz/anchor';
|
|
51
|
+
import { createAssociatedTokenAccountInstruction, createTransferInstruction, getAssociatedTokenAddressSync } from '@solana/spl-token';
|
|
52
|
+
import { Connection, PublicKey, TransactionMessage, VersionedTransaction, LAMPORTS_PER_SOL, SystemProgram, ComputeBudgetProgram } from '@solana/web3.js';
|
|
53
|
+
import { sha256 } from '@noble/hashes/sha2';
|
|
54
|
+
import { bytesToHex } from '@noble/hashes/utils';
|
|
55
|
+
// Map chain string to BridgeKit chain object
|
|
56
|
+
export var mapChainToBridgeKit = function (chain) {
|
|
57
|
+
var lower = chain.toLowerCase().trim();
|
|
58
|
+
if (lower === 'arbitrum' || lower === 'arb')
|
|
59
|
+
return ArbitrumSepolia;
|
|
60
|
+
if (lower === 'solana')
|
|
61
|
+
return SolanaDevnet;
|
|
62
|
+
if (lower === 'base')
|
|
63
|
+
return BaseSepolia;
|
|
64
|
+
if (lower === 'ethereum' || lower === 'evm')
|
|
65
|
+
return EthereumSepolia;
|
|
66
|
+
throw new Error("Unsupported chain \"".concat(chain, "\""));
|
|
67
|
+
};
|
|
68
|
+
// Mock signer to trick SolanaAdapter
|
|
69
|
+
var createMockSigner = function (publicKeyString) {
|
|
70
|
+
var publicKey = new PublicKey(publicKeyString);
|
|
71
|
+
return {
|
|
72
|
+
publicKey: publicKey,
|
|
73
|
+
isConnected: true,
|
|
74
|
+
connect: function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
75
|
+
return [2 /*return*/];
|
|
76
|
+
}); }); },
|
|
77
|
+
disconnect: function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
78
|
+
return [2 /*return*/];
|
|
79
|
+
}); }); },
|
|
80
|
+
signTransaction: function (tx) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
81
|
+
return [2 /*return*/, tx];
|
|
82
|
+
}); }); },
|
|
83
|
+
signAllTransactions: function (txs) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
84
|
+
return [2 /*return*/, txs];
|
|
85
|
+
}); }); },
|
|
86
|
+
signMessage: function (msg) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
87
|
+
return [2 /*return*/, msg];
|
|
88
|
+
}); }); },
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
// Helper functions to convert addresses
|
|
92
|
+
var detectFormat = function (address) {
|
|
93
|
+
if (/^0x[0-9a-fA-F]{40}$/.test(address))
|
|
94
|
+
return 'evm';
|
|
95
|
+
if (/^0x[0-9a-fA-F]{64}$/.test(address))
|
|
96
|
+
return 'bytes32';
|
|
97
|
+
try {
|
|
98
|
+
var pubkey = new PublicKey(address);
|
|
99
|
+
if (pubkey.toBuffer().length === 32)
|
|
100
|
+
return 'solana';
|
|
101
|
+
}
|
|
102
|
+
catch (_a) { }
|
|
103
|
+
throw new Error("Unsupported address format: ".concat(address));
|
|
104
|
+
};
|
|
105
|
+
var toBytes32 = function (address) {
|
|
106
|
+
var fmt = detectFormat(address);
|
|
107
|
+
switch (fmt) {
|
|
108
|
+
case 'evm': {
|
|
109
|
+
var hex = address.startsWith('0x') ? address.slice(2) : address;
|
|
110
|
+
return '0x' + '0'.repeat(24) + hex;
|
|
111
|
+
}
|
|
112
|
+
case 'bytes32':
|
|
113
|
+
return address;
|
|
114
|
+
case 'solana': {
|
|
115
|
+
var pubkey = new PublicKey(address);
|
|
116
|
+
return '0x' + Buffer.from(pubkey.toBuffer()).toString('hex');
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
var bytes32ToSolana = function (bytes32) {
|
|
121
|
+
var hex = bytes32.startsWith('0x') ? bytes32.slice(2) : bytes32;
|
|
122
|
+
return new PublicKey(Buffer.from(hex, 'hex')).toBase58();
|
|
123
|
+
};
|
|
124
|
+
var convertAddress = function (address, targetFormat) {
|
|
125
|
+
var current = detectFormat(address);
|
|
126
|
+
if (current === targetFormat)
|
|
127
|
+
return address;
|
|
128
|
+
var asBytes32 = toBytes32(address);
|
|
129
|
+
switch (targetFormat) {
|
|
130
|
+
case 'bytes32':
|
|
131
|
+
return asBytes32;
|
|
132
|
+
case 'solana':
|
|
133
|
+
return bytes32ToSolana(asBytes32);
|
|
134
|
+
case 'evm': {
|
|
135
|
+
var hex = asBytes32.startsWith('0x') ? asBytes32.slice(2) : asBytes32;
|
|
136
|
+
return '0x' + hex.slice(-40);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
throw new Error("Unsupported target format: ".concat(targetFormat));
|
|
140
|
+
};
|
|
141
|
+
// Derive all PDAs needed for receiveMessage
|
|
142
|
+
var derivePdas = function (sourceChain, destinationChain, messageTransmitterProgramId, tokenMessengerProgramId) {
|
|
143
|
+
var remoteMintKey = new PublicKey(convertAddress(sourceChain.usdcAddress, 'solana'));
|
|
144
|
+
var destinationUsdcMint = new PublicKey(destinationChain.usdcAddress);
|
|
145
|
+
var tokenMessengerPda = PublicKey.findProgramAddressSync([Buffer.from('token_messenger')], tokenMessengerProgramId)[0];
|
|
146
|
+
var messageTransmitterPda = PublicKey.findProgramAddressSync([Buffer.from('message_transmitter')], messageTransmitterProgramId)[0];
|
|
147
|
+
var tokenMinterPda = PublicKey.findProgramAddressSync([Buffer.from('token_minter')], tokenMessengerProgramId)[0];
|
|
148
|
+
var localTokenPda = PublicKey.findProgramAddressSync([Buffer.from('local_token'), destinationUsdcMint.toBuffer()], tokenMessengerProgramId)[0];
|
|
149
|
+
var domainSeed = Buffer.from(sourceChain.cctp.domain.toString(), 'utf8');
|
|
150
|
+
var remoteTokenMessengerPda = PublicKey.findProgramAddressSync([Buffer.from('remote_token_messenger'), domainSeed], tokenMessengerProgramId)[0];
|
|
151
|
+
var tokenPairPda = PublicKey.findProgramAddressSync([Buffer.from('token_pair'), domainSeed, remoteMintKey.toBuffer()], tokenMessengerProgramId)[0];
|
|
152
|
+
var custodyPda = PublicKey.findProgramAddressSync([Buffer.from('custody'), destinationUsdcMint.toBuffer()], tokenMessengerProgramId)[0];
|
|
153
|
+
var messageTransmitterAuthorityPda = PublicKey.findProgramAddressSync([Buffer.from('message_transmitter_authority'), tokenMessengerProgramId.toBuffer()], messageTransmitterProgramId)[0];
|
|
154
|
+
return {
|
|
155
|
+
tokenMessengerPda: tokenMessengerPda,
|
|
156
|
+
messageTransmitterPda: messageTransmitterPda,
|
|
157
|
+
tokenMinterPda: tokenMinterPda,
|
|
158
|
+
localTokenPda: localTokenPda,
|
|
159
|
+
remoteTokenMessengerPda: remoteTokenMessengerPda,
|
|
160
|
+
tokenPairPda: tokenPairPda,
|
|
161
|
+
custodyPda: custodyPda,
|
|
162
|
+
messageTransmitterAuthorityPda: messageTransmitterAuthorityPda,
|
|
163
|
+
remoteMintKey: remoteMintKey,
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
// Build receiveMessage instruction
|
|
167
|
+
var buildReceiveMessageInstruction = function (params, programs, pdas, feeRecipientAta, eventNonce) { return __awaiter(void 0, void 0, void 0, function () {
|
|
168
|
+
var provider, user, usdcMint, nonceHex, nonceBuf, usedNoncePda, mintRecipientOwner, userUsdcAta, instruction;
|
|
169
|
+
return __generator(this, function (_a) {
|
|
170
|
+
switch (_a.label) {
|
|
171
|
+
case 0: return [4 /*yield*/, params.adapter.getAnchorProvider({ chain: params.toChain })];
|
|
172
|
+
case 1:
|
|
173
|
+
provider = _a.sent();
|
|
174
|
+
user = provider.wallet.publicKey;
|
|
175
|
+
usdcMint = new PublicKey(params.toChain.usdcAddress);
|
|
176
|
+
nonceHex = eventNonce.replace(/^0x/, '');
|
|
177
|
+
if (nonceHex.length !== 64) {
|
|
178
|
+
throw new Error("Invalid eventNonce ".concat(eventNonce));
|
|
179
|
+
}
|
|
180
|
+
nonceBuf = Buffer.from(nonceHex, 'hex');
|
|
181
|
+
usedNoncePda = PublicKey.findProgramAddressSync([Buffer.from('used_nonce'), nonceBuf], programs.messageTransmitter.programId)[0];
|
|
182
|
+
mintRecipientOwner = params.destinationAddress
|
|
183
|
+
? new PublicKey(params.destinationAddress)
|
|
184
|
+
: user;
|
|
185
|
+
userUsdcAta = anchor.utils.token.associatedAddress({
|
|
186
|
+
mint: usdcMint,
|
|
187
|
+
owner: mintRecipientOwner,
|
|
188
|
+
});
|
|
189
|
+
if (!('receiveMessage' in programs.messageTransmitter.methods)) {
|
|
190
|
+
throw new Error('receiveMessage method not found');
|
|
191
|
+
}
|
|
192
|
+
return [4 /*yield*/, programs.messageTransmitter.methods['receiveMessage']({
|
|
193
|
+
message: Buffer.from(params.message.replace(/^0x/, ''), 'hex'),
|
|
194
|
+
attestation: Buffer.from(params.attestation.replace(/^0x/, ''), 'hex'),
|
|
195
|
+
})
|
|
196
|
+
.accounts({
|
|
197
|
+
payer: user,
|
|
198
|
+
caller: user,
|
|
199
|
+
authorityPda: pdas.messageTransmitterAuthorityPda,
|
|
200
|
+
messageTransmitter: pdas.messageTransmitterPda,
|
|
201
|
+
usedNonce: usedNoncePda,
|
|
202
|
+
receiver: programs.tokenMessenger.programId,
|
|
203
|
+
systemProgram: anchor.web3.SystemProgram.programId,
|
|
204
|
+
})
|
|
205
|
+
.remainingAccounts([
|
|
206
|
+
{ pubkey: pdas.tokenMessengerPda, isSigner: false, isWritable: false },
|
|
207
|
+
{ pubkey: pdas.remoteTokenMessengerPda, isSigner: false, isWritable: false },
|
|
208
|
+
{ pubkey: pdas.tokenMinterPda, isSigner: false, isWritable: true },
|
|
209
|
+
{ pubkey: pdas.localTokenPda, isSigner: false, isWritable: true },
|
|
210
|
+
{ pubkey: pdas.tokenPairPda, isSigner: false, isWritable: false },
|
|
211
|
+
{ pubkey: feeRecipientAta, isSigner: false, isWritable: true },
|
|
212
|
+
{ pubkey: userUsdcAta, isSigner: false, isWritable: true },
|
|
213
|
+
{ pubkey: pdas.custodyPda, isSigner: false, isWritable: true },
|
|
214
|
+
{
|
|
215
|
+
pubkey: anchor.utils.token.TOKEN_PROGRAM_ID,
|
|
216
|
+
isSigner: false,
|
|
217
|
+
isWritable: false,
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
pubkey: PublicKey.findProgramAddressSync([Buffer.from('__event_authority')], programs.tokenMessenger.programId)[0],
|
|
221
|
+
isSigner: false,
|
|
222
|
+
isWritable: false,
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
pubkey: programs.tokenMessenger.programId,
|
|
226
|
+
isSigner: false,
|
|
227
|
+
isWritable: false,
|
|
228
|
+
},
|
|
229
|
+
])
|
|
230
|
+
.instruction()];
|
|
231
|
+
case 2:
|
|
232
|
+
instruction = _a.sent();
|
|
233
|
+
return [2 /*return*/, { instruction: instruction, userUsdcAta: userUsdcAta, mintRecipientOwner: mintRecipientOwner }];
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
}); };
|
|
237
|
+
export var hashVersionedTransaction = function (tx) {
|
|
238
|
+
var serialized = tx.serialize();
|
|
239
|
+
return bytesToHex(sha256(serialized));
|
|
240
|
+
};
|
|
241
|
+
export var constructCctpClaimTx = function (params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
242
|
+
var rpcUrl, connection, feePayerPubkey, userPubkey, fromChain, toChain, mockSigner, adapter, context, provider, v2config, config, _a, tokenMessengerProgram, messageTransmitterProgram, pdas, tokenMessengerState, usdcMint, feeRecipientAta, eventNonce, msgHex, _b, instruction, userUsdcAta, mintRecipientOwner, instructions, feePayerAta, ataAccountInfo, ataInstruction, feePayerAtaInfo, feePayerAtaIx, feeAmount, transferIx, solRebateLamports, modifiedInstructions, lookupTableAddress, lookupTableInfo, lookupTableAccount, blockhash, lastValidBlockHeight, latest, messageV0, versionedTx;
|
|
243
|
+
var _c, _d;
|
|
244
|
+
return __generator(this, function (_e) {
|
|
245
|
+
switch (_e.label) {
|
|
246
|
+
case 0:
|
|
247
|
+
rpcUrl = (_c = params.rpcUrl) !== null && _c !== void 0 ? _c : 'https://api.devnet.solana.com';
|
|
248
|
+
connection = new Connection(rpcUrl);
|
|
249
|
+
feePayerPubkey = new PublicKey(params.feePayer);
|
|
250
|
+
userPubkey = new PublicKey(params.userAddress);
|
|
251
|
+
fromChain = typeof params.sourceChain === 'string'
|
|
252
|
+
? mapChainToBridgeKit(params.sourceChain)
|
|
253
|
+
: params.sourceChain;
|
|
254
|
+
toChain = SolanaDevnet;
|
|
255
|
+
mockSigner = createMockSigner(params.feePayer);
|
|
256
|
+
return [4 /*yield*/, createAdapterFromProvider({
|
|
257
|
+
connection: connection,
|
|
258
|
+
provider: mockSigner,
|
|
259
|
+
})];
|
|
260
|
+
case 1:
|
|
261
|
+
adapter = _e.sent();
|
|
262
|
+
context = {
|
|
263
|
+
chain: toChain,
|
|
264
|
+
address: params.feePayer,
|
|
265
|
+
};
|
|
266
|
+
return [4 /*yield*/, adapter.getAnchorProvider(context)];
|
|
267
|
+
case 2:
|
|
268
|
+
provider = _e.sent();
|
|
269
|
+
v2config = toChain.cctp.contracts.v2;
|
|
270
|
+
if (!v2config || v2config.type !== 'split') {
|
|
271
|
+
throw new Error('Unsupported CCTP v2 contract configuration for Solana. Expected "split" type.');
|
|
272
|
+
}
|
|
273
|
+
config = v2config;
|
|
274
|
+
return [4 /*yield*/, Promise.all([
|
|
275
|
+
anchor.Program.at(new PublicKey(config.tokenMessenger), provider),
|
|
276
|
+
anchor.Program.at(new PublicKey(config.messageTransmitter), provider),
|
|
277
|
+
])];
|
|
278
|
+
case 3:
|
|
279
|
+
_a = _e.sent(), tokenMessengerProgram = _a[0], messageTransmitterProgram = _a[1];
|
|
280
|
+
pdas = derivePdas(fromChain, toChain, messageTransmitterProgram.programId, tokenMessengerProgram.programId);
|
|
281
|
+
if (!('tokenMessenger' in tokenMessengerProgram.account)) {
|
|
282
|
+
throw new Error('TokenMessenger account not found');
|
|
283
|
+
}
|
|
284
|
+
return [4 /*yield*/, tokenMessengerProgram.account.tokenMessenger.fetch(pdas.tokenMessengerPda)];
|
|
285
|
+
case 4:
|
|
286
|
+
tokenMessengerState = _e.sent();
|
|
287
|
+
usdcMint = new PublicKey(toChain.usdcAddress);
|
|
288
|
+
feeRecipientAta = anchor.utils.token.associatedAddress({
|
|
289
|
+
mint: usdcMint,
|
|
290
|
+
owner: tokenMessengerState['feeRecipient'],
|
|
291
|
+
});
|
|
292
|
+
eventNonce = '0x0';
|
|
293
|
+
if ((_d = params.decodedMessage) === null || _d === void 0 ? void 0 : _d.nonce) {
|
|
294
|
+
eventNonce = params.decodedMessage.nonce.startsWith('0x')
|
|
295
|
+
? params.decodedMessage.nonce
|
|
296
|
+
: "0x".concat(params.decodedMessage.nonce);
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
msgHex = params.message.startsWith('0x') ? params.message.slice(2) : params.message;
|
|
300
|
+
if (msgHex.length >= 88) {
|
|
301
|
+
eventNonce = '0x' + msgHex.slice(24, 88);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return [4 /*yield*/, buildReceiveMessageInstruction({
|
|
305
|
+
adapter: adapter,
|
|
306
|
+
message: params.message,
|
|
307
|
+
attestation: params.attestation,
|
|
308
|
+
destinationAddress: params.destinationAddress,
|
|
309
|
+
toChain: toChain,
|
|
310
|
+
}, {
|
|
311
|
+
tokenMessenger: tokenMessengerProgram,
|
|
312
|
+
messageTransmitter: messageTransmitterProgram,
|
|
313
|
+
}, pdas, feeRecipientAta, eventNonce)];
|
|
314
|
+
case 5:
|
|
315
|
+
_b = _e.sent(), instruction = _b.instruction, userUsdcAta = _b.userUsdcAta, mintRecipientOwner = _b.mintRecipientOwner;
|
|
316
|
+
instructions = [];
|
|
317
|
+
// Set compute unit limits to help with the transaction being confirmed
|
|
318
|
+
instructions.push(ComputeBudgetProgram.setComputeUnitPrice({
|
|
319
|
+
microLamports: 200000,
|
|
320
|
+
}), ComputeBudgetProgram.setComputeUnitLimit({
|
|
321
|
+
units: 400000,
|
|
322
|
+
}));
|
|
323
|
+
feePayerAta = getAssociatedTokenAddressSync(usdcMint, feePayerPubkey);
|
|
324
|
+
return [4 /*yield*/, connection.getAccountInfo(userUsdcAta)];
|
|
325
|
+
case 6:
|
|
326
|
+
ataAccountInfo = _e.sent();
|
|
327
|
+
if (!ataAccountInfo) {
|
|
328
|
+
ataInstruction = createAssociatedTokenAccountInstruction(feePayerPubkey, userUsdcAta, mintRecipientOwner, usdcMint);
|
|
329
|
+
instructions.push(ataInstruction);
|
|
330
|
+
}
|
|
331
|
+
return [4 /*yield*/, connection.getAccountInfo(feePayerAta)];
|
|
332
|
+
case 7:
|
|
333
|
+
feePayerAtaInfo = _e.sent();
|
|
334
|
+
if (!feePayerAtaInfo) {
|
|
335
|
+
feePayerAtaIx = createAssociatedTokenAccountInstruction(feePayerPubkey, feePayerAta, feePayerPubkey, usdcMint);
|
|
336
|
+
instructions.push(feePayerAtaIx);
|
|
337
|
+
}
|
|
338
|
+
instructions.push(instruction);
|
|
339
|
+
feeAmount = 500000;
|
|
340
|
+
transferIx = createTransferInstruction(userUsdcAta, feePayerAta, userPubkey, feeAmount);
|
|
341
|
+
instructions.push(transferIx);
|
|
342
|
+
solRebateLamports = Math.round(0.003 * LAMPORTS_PER_SOL);
|
|
343
|
+
instructions.push(SystemProgram.transfer({
|
|
344
|
+
fromPubkey: feePayerPubkey,
|
|
345
|
+
toPubkey: userPubkey,
|
|
346
|
+
lamports: solRebateLamports,
|
|
347
|
+
}));
|
|
348
|
+
modifiedInstructions = instructions.map(function (ix) {
|
|
349
|
+
var newKeys = ix.keys.map(function (meta) {
|
|
350
|
+
var _a;
|
|
351
|
+
if (meta.pubkey.equals(feePayerPubkey)) {
|
|
352
|
+
return __assign(__assign({}, meta), { isSigner: true, isWritable: (_a = meta.isWritable) !== null && _a !== void 0 ? _a : true });
|
|
353
|
+
}
|
|
354
|
+
if (meta.pubkey.equals(userPubkey)) {
|
|
355
|
+
return __assign(__assign({}, meta), { isSigner: true });
|
|
356
|
+
}
|
|
357
|
+
return __assign(__assign({}, meta), { isSigner: false });
|
|
358
|
+
});
|
|
359
|
+
return __assign(__assign({}, ix), { keys: newKeys });
|
|
360
|
+
});
|
|
361
|
+
if (!params.lookupTableAddress) {
|
|
362
|
+
throw new Error('lookupTableAddress is required for claim transaction');
|
|
363
|
+
}
|
|
364
|
+
lookupTableAddress = new PublicKey(params.lookupTableAddress);
|
|
365
|
+
return [4 /*yield*/, connection.getAddressLookupTable(lookupTableAddress)];
|
|
366
|
+
case 8:
|
|
367
|
+
lookupTableInfo = _e.sent();
|
|
368
|
+
if (!lookupTableInfo.value) {
|
|
369
|
+
throw new Error("Lookup table ".concat(lookupTableAddress.toBase58(), " not found"));
|
|
370
|
+
}
|
|
371
|
+
lookupTableAccount = lookupTableInfo.value;
|
|
372
|
+
blockhash = params.blockhash;
|
|
373
|
+
lastValidBlockHeight = params.lastValidBlockHeight;
|
|
374
|
+
if (!!blockhash) return [3 /*break*/, 10];
|
|
375
|
+
return [4 /*yield*/, connection.getLatestBlockhash()];
|
|
376
|
+
case 9:
|
|
377
|
+
latest = _e.sent();
|
|
378
|
+
blockhash = latest.blockhash;
|
|
379
|
+
lastValidBlockHeight = latest.lastValidBlockHeight;
|
|
380
|
+
_e.label = 10;
|
|
381
|
+
case 10:
|
|
382
|
+
messageV0 = new TransactionMessage({
|
|
383
|
+
payerKey: feePayerPubkey,
|
|
384
|
+
recentBlockhash: blockhash,
|
|
385
|
+
instructions: modifiedInstructions,
|
|
386
|
+
}).compileToV0Message([lookupTableAccount]);
|
|
387
|
+
versionedTx = new VersionedTransaction(messageV0);
|
|
388
|
+
return [2 /*return*/, { tx: versionedTx, blockhash: blockhash, lastValidBlockHeight: lastValidBlockHeight }];
|
|
389
|
+
}
|
|
390
|
+
});
|
|
391
|
+
}); };
|
|
392
|
+
//# sourceMappingURL=cctp-solana.js.map
|
|
@@ -0,0 +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"]}
|