@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.
Files changed (574) hide show
  1. package/dist/bridge-assist/cctp-solana.d.ts +33 -0
  2. package/dist/bridge-assist/cctp-solana.js +392 -0
  3. package/dist/bridge-assist/cctp-solana.js.map +1 -0
  4. package/dist/main.css +1 -2
  5. package/dist/src/adapters/evm.d.ts +39 -0
  6. package/dist/src/adapters/evm.js +338 -0
  7. package/dist/src/adapters/evm.js.map +1 -0
  8. package/dist/src/adapters/factory.d.ts +37 -0
  9. package/dist/src/adapters/factory.js +82 -0
  10. package/dist/src/adapters/factory.js.map +1 -0
  11. package/dist/src/adapters/index.d.ts +33 -0
  12. package/dist/src/adapters/index.js +36 -0
  13. package/dist/src/adapters/index.js.map +1 -0
  14. package/dist/src/adapters/solana.d.ts +37 -0
  15. package/dist/src/adapters/solana.js +359 -0
  16. package/dist/src/adapters/solana.js.map +1 -0
  17. package/dist/src/adapters/types.d.ts +160 -0
  18. package/dist/src/adapters/types.js +20 -0
  19. package/dist/src/adapters/types.js.map +1 -0
  20. package/dist/src/animations/N1Loader.js.map +1 -0
  21. package/dist/src/animations/N1Loader.json +1 -0
  22. package/dist/src/animations/Processing.js.map +1 -0
  23. package/dist/src/animations/Processing.json +1 -0
  24. package/dist/{components → src/components}/LoadingFallback.d.ts +3 -0
  25. package/dist/{components → src/components}/LoadingFallback.js +3 -0
  26. package/dist/src/components/LoadingFallback.js.map +1 -0
  27. package/dist/{components → src/components}/Logo.d.ts +4 -0
  28. package/dist/{components → src/components}/Logo.js +4 -0
  29. package/dist/src/components/Logo.js.map +1 -0
  30. package/dist/src/components/N1ConnectButton.d.ts +13 -0
  31. package/dist/src/components/N1ConnectButton.js +66 -0
  32. package/dist/src/components/N1ConnectButton.js.map +1 -0
  33. package/dist/src/components/logos/ArbitrumLogo.js.map +1 -0
  34. package/dist/src/components/logos/BaseLogo.js +6 -0
  35. package/dist/src/components/logos/BaseLogo.js.map +1 -0
  36. package/dist/src/components/logos/BeraLogo.js.map +1 -0
  37. package/dist/src/components/logos/BitcoinLogo.js.map +1 -0
  38. package/dist/src/components/logos/EthereumLogo.js.map +1 -0
  39. package/dist/{components → src/components}/logos/HyperliquidLogo.js +1 -1
  40. package/dist/src/components/logos/HyperliquidLogo.js.map +1 -0
  41. package/dist/src/components/logos/OptimismLogo.js.map +1 -0
  42. package/dist/src/components/logos/SolanaLogo.js.map +1 -0
  43. package/dist/src/components/logos/ZeroOneLogo.js.map +1 -0
  44. package/dist/src/components/logos/index.js.map +1 -0
  45. package/dist/src/config/chains.d.ts +18 -0
  46. package/dist/src/config/chains.js +58 -0
  47. package/dist/src/config/chains.js.map +1 -0
  48. package/dist/src/config/dynamic.d.ts +1 -0
  49. package/dist/src/config/dynamic.js +18 -0
  50. package/dist/src/config/dynamic.js.map +1 -0
  51. package/dist/src/config/solana.js.map +1 -0
  52. package/dist/src/config/turnkey.d.ts +2 -0
  53. package/dist/src/config/turnkey.js +32 -0
  54. package/dist/src/config/turnkey.js.map +1 -0
  55. package/dist/src/context/n1-wallet-context.js.map +1 -0
  56. package/dist/src/errors/types.d.ts +72 -0
  57. package/dist/src/errors/types.js +140 -0
  58. package/dist/src/errors/types.js.map +1 -0
  59. package/dist/{features → src/features}/onboarding-flow/N1WalletModal.js +44 -29
  60. package/dist/src/features/onboarding-flow/N1WalletModal.js.map +1 -0
  61. package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.d.ts +2 -1
  62. package/dist/{features → src/features}/onboarding-flow/OnboardingFlow.js +54 -8
  63. package/dist/src/features/onboarding-flow/OnboardingFlow.js.map +1 -0
  64. package/dist/src/features/onboarding-flow/bridge-assist/client.d.ts +42 -0
  65. package/dist/src/features/onboarding-flow/bridge-assist/client.js +268 -0
  66. package/dist/src/features/onboarding-flow/bridge-assist/client.js.map +1 -0
  67. package/dist/src/features/onboarding-flow/bridge-assist/config.d.ts +4 -0
  68. package/dist/src/features/onboarding-flow/bridge-assist/config.js +11 -0
  69. package/dist/src/features/onboarding-flow/bridge-assist/config.js.map +1 -0
  70. package/dist/src/features/onboarding-flow/bridge-assist/index.d.ts +1 -0
  71. package/dist/src/features/onboarding-flow/bridge-assist/index.js +2 -0
  72. package/dist/src/features/onboarding-flow/bridge-assist/index.js.map +1 -0
  73. package/dist/src/features/onboarding-flow/bridge-assist/types.d.ts +5 -0
  74. package/dist/src/features/onboarding-flow/bridge-assist/types.js +28 -0
  75. package/dist/src/features/onboarding-flow/bridge-assist/types.js.map +1 -0
  76. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.d.ts +35 -0
  77. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js +391 -0
  78. package/dist/src/features/onboarding-flow/cctp/bridgeKitClient.js.map +1 -0
  79. package/dist/src/features/onboarding-flow/cctp/clientFactory.d.ts +6 -0
  80. package/dist/src/features/onboarding-flow/cctp/clientFactory.js +9 -0
  81. package/dist/src/features/onboarding-flow/cctp/clientFactory.js.map +1 -0
  82. package/dist/src/features/onboarding-flow/cctp/config.d.ts +16 -0
  83. package/dist/src/features/onboarding-flow/cctp/config.js +55 -0
  84. package/dist/src/features/onboarding-flow/cctp/config.js.map +1 -0
  85. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.d.ts +11 -0
  86. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js +85 -0
  87. package/dist/src/features/onboarding-flow/cctp/mockCctpClient.js.map +1 -0
  88. package/dist/src/features/onboarding-flow/cctp/solanaClaim.d.ts +1 -0
  89. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js +2 -0
  90. package/dist/src/features/onboarding-flow/cctp/solanaClaim.js.map +1 -0
  91. package/dist/src/features/onboarding-flow/cctp/types.d.ts +50 -0
  92. package/dist/src/features/onboarding-flow/cctp/types.js +2 -0
  93. package/dist/src/features/onboarding-flow/cctp/types.js.map +1 -0
  94. package/dist/{features → src/features}/onboarding-flow/components/ChainButton.d.ts +5 -2
  95. package/dist/src/features/onboarding-flow/components/ChainButton.js +14 -0
  96. package/dist/src/features/onboarding-flow/components/ChainButton.js.map +1 -0
  97. package/dist/{features → src/features}/onboarding-flow/components/Header.d.ts +2 -2
  98. package/dist/src/features/onboarding-flow/components/Header.js +69 -0
  99. package/dist/src/features/onboarding-flow/components/Header.js.map +1 -0
  100. package/dist/{features → src/features}/onboarding-flow/components/ImageWithFallback.d.ts +2 -5
  101. package/dist/src/features/onboarding-flow/components/ImageWithFallback.js +33 -0
  102. package/dist/src/features/onboarding-flow/components/ImageWithFallback.js.map +1 -0
  103. package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.d.ts +5 -0
  104. package/dist/{features → src/features}/onboarding-flow/components/TransactionTable.js +8 -3
  105. package/dist/src/features/onboarding-flow/components/TransactionTable.js.map +1 -0
  106. package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.d.ts +4 -0
  107. package/dist/src/features/onboarding-flow/components/WaitingMessage.js.map +1 -0
  108. package/dist/src/features/onboarding-flow/components/index.js.map +1 -0
  109. package/dist/src/features/onboarding-flow/errors/depositError.d.ts +36 -0
  110. package/dist/src/features/onboarding-flow/errors/depositError.js +134 -0
  111. package/dist/src/features/onboarding-flow/errors/depositError.js.map +1 -0
  112. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.d.ts +35 -0
  113. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js +585 -0
  114. package/dist/src/features/onboarding-flow/hooks/useBridgeDeposit.js.map +1 -0
  115. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.d.ts +6 -0
  116. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js +141 -0
  117. package/dist/src/features/onboarding-flow/hooks/useDepositAuth.js.map +1 -0
  118. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.d.ts +15 -0
  119. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js +83 -0
  120. package/dist/src/features/onboarding-flow/hooks/useDepositHydration.js.map +1 -0
  121. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.d.ts +6 -0
  122. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js +45 -0
  123. package/dist/src/features/onboarding-flow/hooks/usePendingDepositState.js.map +1 -0
  124. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.d.ts +13 -0
  125. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js +161 -0
  126. package/dist/src/features/onboarding-flow/hooks/useSolanaDeposit.js.map +1 -0
  127. package/dist/src/features/onboarding-flow/index.js.map +1 -0
  128. package/dist/{features → src/features}/onboarding-flow/providers/DepositFlowProvider.d.ts +10 -3
  129. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js +762 -0
  130. package/dist/src/features/onboarding-flow/providers/DepositFlowProvider.js.map +1 -0
  131. package/dist/{features → src/features}/onboarding-flow/providers/OnboardingStateProvider.d.ts +5 -0
  132. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js +399 -0
  133. package/dist/src/features/onboarding-flow/providers/OnboardingStateProvider.js.map +1 -0
  134. package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.d.ts +2 -2
  135. package/dist/{features → src/features}/onboarding-flow/providers/StateProvider.js +2 -2
  136. package/dist/src/features/onboarding-flow/providers/StateProvider.js.map +1 -0
  137. package/dist/{features → src/features}/onboarding-flow/providers/WalletConnectionProvider.d.ts +8 -0
  138. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js +938 -0
  139. package/dist/src/features/onboarding-flow/providers/WalletConnectionProvider.js.map +1 -0
  140. package/dist/{features → src/features}/onboarding-flow/providers/debug.js +5 -1
  141. package/dist/src/features/onboarding-flow/providers/debug.js.map +1 -0
  142. package/dist/src/features/onboarding-flow/providers/index.js.map +1 -0
  143. package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.d.ts +28 -1
  144. package/dist/{features → src/features}/onboarding-flow/providers/onboardingStateMachine.js +38 -4
  145. package/dist/src/features/onboarding-flow/providers/onboardingStateMachine.js.map +1 -0
  146. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.d.ts +4 -0
  147. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js +32 -0
  148. package/dist/src/features/onboarding-flow/screens/00-EntrySelectionScreen.js.map +1 -0
  149. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +5 -0
  150. package/dist/{features → src/features}/onboarding-flow/screens/01-ConnectWalletScreen.js +5 -0
  151. package/dist/src/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +1 -0
  152. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.d.ts +1 -0
  153. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js +25 -0
  154. package/dist/src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +1 -0
  155. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.d.ts +1 -0
  156. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +25 -0
  157. package/dist/src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +1 -0
  158. package/dist/{features/onboarding-flow/screens/02-ChainSelectionScreen.d.ts → src/features/onboarding-flow/screens/04-ChainSelectionScreen.d.ts} +11 -11
  159. package/dist/{features/onboarding-flow/screens/02-ChainSelectionScreen.js → src/features/onboarding-flow/screens/04-ChainSelectionScreen.js} +60 -30
  160. package/dist/src/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +1 -0
  161. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +11 -0
  162. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js +585 -0
  163. package/dist/src/features/onboarding-flow/screens/05-AmountInputScreen.js.map +1 -0
  164. package/dist/{features/onboarding-flow/screens/04-DepositProgressScreen.d.ts → src/features/onboarding-flow/screens/06-DepositProgressScreen.d.ts} +5 -0
  165. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js +367 -0
  166. package/dist/src/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +1 -0
  167. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +6 -0
  168. package/dist/{features/onboarding-flow/screens/05-DepositSuccessScreen.js → src/features/onboarding-flow/screens/07-DepositSuccessScreen.js} +12 -6
  169. package/dist/src/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +1 -0
  170. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +5 -0
  171. package/dist/{features/onboarding-flow/screens/06-AuthLoadingScreen.js → src/features/onboarding-flow/screens/08-AuthLoadingScreen.js} +6 -2
  172. package/dist/src/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +1 -0
  173. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.d.ts +5 -0
  174. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js +43 -0
  175. package/dist/src/features/onboarding-flow/screens/09-ErrorScreen.js.map +1 -0
  176. package/dist/src/features/onboarding-flow/screens/index.d.ts +10 -0
  177. package/dist/src/features/onboarding-flow/screens/index.js +11 -0
  178. package/dist/src/features/onboarding-flow/screens/index.js.map +1 -0
  179. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.d.ts +1 -0
  180. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js +2 -0
  181. package/dist/src/features/onboarding-flow/turnkey/turnkeySessionMachine.js.map +1 -0
  182. package/dist/{features → src/features}/onboarding-flow/types.d.ts +38 -11
  183. package/dist/{features → src/features}/onboarding-flow/types.js +5 -0
  184. package/dist/src/features/onboarding-flow/types.js.map +1 -0
  185. package/dist/src/features/onboarding-flow/utils/bridgeUtils.d.ts +6 -0
  186. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js +34 -0
  187. package/dist/src/features/onboarding-flow/utils/bridgeUtils.js.map +1 -0
  188. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.d.ts +29 -0
  189. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js +82 -0
  190. package/dist/src/features/onboarding-flow/utils/deposit/attestationUtils.js.map +1 -0
  191. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.d.ts +5 -0
  192. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js +10 -0
  193. package/dist/src/features/onboarding-flow/utils/deposit/bridgeUtils.js.map +1 -0
  194. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.d.ts +14 -0
  195. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js +94 -0
  196. package/dist/src/features/onboarding-flow/utils/deposit/claimConfirmation.js.map +1 -0
  197. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.d.ts +25 -0
  198. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js +212 -0
  199. package/dist/src/features/onboarding-flow/utils/deposit/claimSubmission.js.map +1 -0
  200. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.d.ts +37 -0
  201. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js +199 -0
  202. package/dist/src/features/onboarding-flow/utils/deposit/depositPolling.js.map +1 -0
  203. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.d.ts +27 -0
  204. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js +149 -0
  205. package/dist/src/features/onboarding-flow/utils/deposit/evmTxInterceptor.js.map +1 -0
  206. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.d.ts +5 -0
  207. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js +121 -0
  208. package/dist/src/features/onboarding-flow/utils/deposit/nonceUtils.js.map +1 -0
  209. package/dist/{features/onboarding-flow/utils/transaction.d.ts → src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.d.ts} +3 -3
  210. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js +8 -0
  211. package/dist/src/features/onboarding-flow/utils/deposit/solanaDepositTransaction.js.map +1 -0
  212. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.d.ts +12 -0
  213. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js +150 -0
  214. package/dist/src/features/onboarding-flow/utils/deposit/solanaUtils.js.map +1 -0
  215. package/dist/src/features/onboarding-flow/utils/deposit/storage.d.ts +52 -0
  216. package/dist/src/features/onboarding-flow/utils/deposit/storage.js +243 -0
  217. package/dist/src/features/onboarding-flow/utils/deposit/storage.js.map +1 -0
  218. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.d.ts +36 -0
  219. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js +304 -0
  220. package/dist/src/features/onboarding-flow/utils/deposit/walletUtils.js.map +1 -0
  221. package/dist/src/features/onboarding-flow/utils/depositPolling.d.ts +1 -0
  222. package/dist/src/features/onboarding-flow/utils/depositPolling.js +3 -0
  223. package/dist/src/features/onboarding-flow/utils/depositPolling.js.map +1 -0
  224. package/dist/src/features/onboarding-flow/utils/explorerUrl.d.ts +14 -0
  225. package/dist/src/features/onboarding-flow/utils/explorerUrl.js +44 -0
  226. package/dist/src/features/onboarding-flow/utils/explorerUrl.js.map +1 -0
  227. package/dist/src/features/onboarding-flow/utils/nordUtils.d.ts +8 -0
  228. package/dist/{features/onboarding-flow/utils/nordUser.js → src/features/onboarding-flow/utils/nordUtils.js} +14 -1
  229. package/dist/src/features/onboarding-flow/utils/nordUtils.js.map +1 -0
  230. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.d.ts +13 -0
  231. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js +15 -0
  232. package/dist/src/features/onboarding-flow/utils/pendingDepositCookie.js.map +1 -0
  233. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.d.ts +15 -0
  234. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js +94 -0
  235. package/dist/src/features/onboarding-flow/utils/pendingDepositStorage.js.map +1 -0
  236. package/dist/{features → src/features}/onboarding-flow/utils/utils.d.ts +9 -2
  237. package/dist/{features → src/features}/onboarding-flow/utils/utils.js +9 -4
  238. package/dist/src/features/onboarding-flow/utils/utils.js.map +1 -0
  239. package/dist/src/features/onboarding-flow/utils/withImageFallback.d.ts +6 -0
  240. package/dist/{features → src/features}/onboarding-flow/utils/withImageFallback.js +2 -3
  241. package/dist/src/features/onboarding-flow/utils/withImageFallback.js.map +1 -0
  242. package/dist/src/hooks/index.js.map +1 -0
  243. package/dist/src/hooks/useN1Wallet.d.ts +12 -0
  244. package/dist/{hooks → src/hooks}/useN1Wallet.js +10 -0
  245. package/dist/src/hooks/useN1Wallet.js.map +1 -0
  246. package/dist/src/hooks/useNordUserInitialization.d.ts +12 -0
  247. package/dist/{hooks → src/hooks}/useNordUserInitialization.js +74 -33
  248. package/dist/src/hooks/useNordUserInitialization.js.map +1 -0
  249. package/dist/src/index.d.ts +9 -0
  250. package/dist/src/index.js +16 -0
  251. package/dist/src/index.js.map +1 -0
  252. package/dist/src/providers/LazyWalletProvider.d.ts +4 -0
  253. package/dist/src/providers/LazyWalletProvider.js +404 -0
  254. package/dist/src/providers/LazyWalletProvider.js.map +1 -0
  255. package/dist/src/providers/N1WalletProvider/ContextBridge.d.ts +28 -0
  256. package/dist/src/providers/N1WalletProvider/ContextBridge.js +273 -0
  257. package/dist/src/providers/N1WalletProvider/ContextBridge.js.map +1 -0
  258. package/dist/src/providers/N1WalletProvider/ModalProvider.d.ts +113 -0
  259. package/dist/src/providers/N1WalletProvider/ModalProvider.js +319 -0
  260. package/dist/src/providers/N1WalletProvider/ModalProvider.js.map +1 -0
  261. package/dist/src/providers/N1WalletProvider/NetworkProvider.d.ts +88 -0
  262. package/dist/src/providers/N1WalletProvider/NetworkProvider.js +252 -0
  263. package/dist/src/providers/N1WalletProvider/NetworkProvider.js.map +1 -0
  264. package/dist/src/providers/N1WalletProvider/SessionProvider.d.ts +71 -0
  265. package/dist/src/providers/N1WalletProvider/SessionProvider.js +187 -0
  266. package/dist/src/providers/N1WalletProvider/SessionProvider.js.map +1 -0
  267. package/dist/src/providers/N1WalletProvider/SigningProvider.d.ts +58 -0
  268. package/dist/src/providers/N1WalletProvider/SigningProvider.js +134 -0
  269. package/dist/src/providers/N1WalletProvider/SigningProvider.js.map +1 -0
  270. package/dist/src/providers/N1WalletProvider/ThemingProvider.d.ts +50 -0
  271. package/dist/src/providers/N1WalletProvider/ThemingProvider.js +102 -0
  272. package/dist/src/providers/N1WalletProvider/ThemingProvider.js.map +1 -0
  273. package/dist/src/providers/N1WalletProvider/index.d.ts +21 -0
  274. package/dist/src/providers/N1WalletProvider/index.js +27 -0
  275. package/dist/src/providers/N1WalletProvider/index.js.map +1 -0
  276. package/dist/src/providers/N1WalletProvider.d.ts +17 -0
  277. package/dist/src/providers/N1WalletProvider.js +102 -0
  278. package/dist/src/providers/N1WalletProvider.js.map +1 -0
  279. package/dist/{providers → src/providers}/ShadowRootWrapper.d.ts +4 -0
  280. package/dist/{providers → src/providers}/ShadowRootWrapper.js +4 -5
  281. package/dist/src/providers/ShadowRootWrapper.js.map +1 -0
  282. package/dist/{providers → src/providers}/WalletErrorBoundary.d.ts +7 -2
  283. package/dist/{providers → src/providers}/WalletErrorBoundary.js +5 -1
  284. package/dist/src/providers/WalletErrorBoundary.js.map +1 -0
  285. package/dist/src/services/bootstrap/DepositRecoveryService.d.ts +64 -0
  286. package/dist/src/services/bootstrap/DepositRecoveryService.js +245 -0
  287. package/dist/src/services/bootstrap/DepositRecoveryService.js.map +1 -0
  288. package/dist/src/services/bootstrap/DynamicSdkService.d.ts +62 -0
  289. package/dist/src/services/bootstrap/DynamicSdkService.js +335 -0
  290. package/dist/src/services/bootstrap/DynamicSdkService.js.map +1 -0
  291. package/dist/src/services/bootstrap/SessionBootstrapService.d.ts +78 -0
  292. package/dist/src/services/bootstrap/SessionBootstrapService.js +280 -0
  293. package/dist/src/services/bootstrap/SessionBootstrapService.js.map +1 -0
  294. package/dist/src/services/bootstrap/TurnkeyBootstrapService.d.ts +92 -0
  295. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js +253 -0
  296. package/dist/src/services/bootstrap/TurnkeyBootstrapService.js.map +1 -0
  297. package/dist/src/services/bootstrap/index.d.ts +13 -0
  298. package/dist/src/services/bootstrap/index.js +16 -0
  299. package/dist/src/services/bootstrap/index.js.map +1 -0
  300. package/dist/src/services/bootstrap/types.d.ts +92 -0
  301. package/dist/src/services/bootstrap/types.js +7 -0
  302. package/dist/src/services/bootstrap/types.js.map +1 -0
  303. package/dist/src/services/storage/StorageService.d.ts +98 -0
  304. package/dist/src/services/storage/StorageService.js +360 -0
  305. package/dist/src/services/storage/StorageService.js.map +1 -0
  306. package/dist/src/services/storage/index.d.ts +9 -0
  307. package/dist/src/services/storage/index.js +10 -0
  308. package/dist/src/services/storage/index.js.map +1 -0
  309. package/dist/src/services/storage/keys.d.ts +28 -0
  310. package/dist/src/services/storage/keys.js +45 -0
  311. package/dist/src/services/storage/keys.js.map +1 -0
  312. package/dist/src/services/storage/types.d.ts +73 -0
  313. package/dist/src/services/storage/types.js +23 -0
  314. package/dist/src/services/storage/types.js.map +1 -0
  315. package/dist/src/store/index.d.ts +8 -0
  316. package/dist/src/store/index.js +24 -0
  317. package/dist/src/store/index.js.map +1 -0
  318. package/dist/src/store/selectors.d.ts +105 -0
  319. package/dist/src/store/selectors.js +183 -0
  320. package/dist/src/store/selectors.js.map +1 -0
  321. package/dist/src/store/slices/bootstrapSlice.d.ts +64 -0
  322. package/dist/src/store/slices/bootstrapSlice.js +78 -0
  323. package/dist/src/store/slices/bootstrapSlice.js.map +1 -0
  324. package/dist/src/store/slices/configSlice.d.ts +7 -0
  325. package/dist/src/store/slices/configSlice.js +14 -0
  326. package/dist/src/store/slices/configSlice.js.map +1 -0
  327. package/dist/src/store/slices/index.d.ts +10 -0
  328. package/dist/src/store/slices/index.js +10 -0
  329. package/dist/src/store/slices/index.js.map +1 -0
  330. package/dist/src/store/slices/sessionSlice.d.ts +7 -0
  331. package/dist/src/store/slices/sessionSlice.js +17 -0
  332. package/dist/src/store/slices/sessionSlice.js.map +1 -0
  333. package/dist/src/store/slices/signingSlice.d.ts +7 -0
  334. package/dist/src/store/slices/signingSlice.js +14 -0
  335. package/dist/src/store/slices/signingSlice.js.map +1 -0
  336. package/dist/src/store/slices/uiSlice.d.ts +9 -0
  337. package/dist/src/store/slices/uiSlice.js +25 -0
  338. package/dist/src/store/slices/uiSlice.js.map +1 -0
  339. package/dist/src/store/slices/walletSlice.d.ts +7 -0
  340. package/dist/src/store/slices/walletSlice.js +21 -0
  341. package/dist/src/store/slices/walletSlice.js.map +1 -0
  342. package/dist/src/store/store.d.ts +50 -0
  343. package/dist/src/store/store.js +259 -0
  344. package/dist/src/store/store.js.map +1 -0
  345. package/dist/src/store/subscriptions/depositPersistence.d.ts +32 -0
  346. package/dist/src/store/subscriptions/depositPersistence.js +106 -0
  347. package/dist/src/store/subscriptions/depositPersistence.js.map +1 -0
  348. package/dist/src/store/subscriptions/index.d.ts +34 -0
  349. package/dist/src/store/subscriptions/index.js +73 -0
  350. package/dist/src/store/subscriptions/index.js.map +1 -0
  351. package/dist/src/store/subscriptions/turnkeyPersistence.d.ts +42 -0
  352. package/dist/src/store/subscriptions/turnkeyPersistence.js +127 -0
  353. package/dist/src/store/subscriptions/turnkeyPersistence.js.map +1 -0
  354. package/dist/src/store/types.d.ts +166 -0
  355. package/dist/src/store/types.js +7 -0
  356. package/dist/src/store/types.js.map +1 -0
  357. package/dist/src/styles/cdn-fonts.d.ts +12 -0
  358. package/dist/{styles → src/styles}/cdn-fonts.js +20 -2
  359. package/dist/src/styles/cdn-fonts.js.map +1 -0
  360. package/dist/src/styles/embedded-main-css.d.ts +2 -0
  361. package/dist/src/styles/embedded-main-css.js +3 -0
  362. package/dist/src/styles/embedded-main-css.js.map +1 -0
  363. package/dist/src/turnkey/TurnkeyProvider.d.ts +21 -0
  364. package/dist/src/turnkey/TurnkeyProvider.js +695 -0
  365. package/dist/src/turnkey/TurnkeyProvider.js.map +1 -0
  366. package/dist/src/turnkey/createTurnkeyWallet.d.ts +39 -0
  367. package/dist/src/turnkey/createTurnkeyWallet.js +319 -0
  368. package/dist/src/turnkey/createTurnkeyWallet.js.map +1 -0
  369. package/dist/src/turnkey/createWalletProvider.d.ts +8 -0
  370. package/dist/src/turnkey/createWalletProvider.js +286 -0
  371. package/dist/src/turnkey/createWalletProvider.js.map +1 -0
  372. package/dist/src/turnkey/index.d.ts +3 -0
  373. package/dist/src/turnkey/index.js +3 -0
  374. package/dist/src/turnkey/index.js.map +1 -0
  375. package/dist/src/turnkey/turnkeySessionMachine.d.ts +39 -0
  376. package/dist/src/turnkey/turnkeySessionMachine.js +77 -0
  377. package/dist/src/turnkey/turnkeySessionMachine.js.map +1 -0
  378. package/dist/src/turnkey/turnkeySessionStorage.d.ts +48 -0
  379. package/dist/src/turnkey/turnkeySessionStorage.js +183 -0
  380. package/dist/src/turnkey/turnkeySessionStorage.js.map +1 -0
  381. package/dist/src/turnkey/types.d.ts +61 -0
  382. package/dist/src/turnkey/types.js +12 -0
  383. package/dist/src/turnkey/types.js.map +1 -0
  384. package/dist/{types → src/types}/wallet.d.ts +39 -13
  385. package/dist/src/types/wallet.js.map +1 -0
  386. package/dist/src/utils/address.d.ts +130 -0
  387. package/dist/src/utils/address.js +274 -0
  388. package/dist/src/utils/address.js.map +1 -0
  389. package/dist/src/utils/chain.d.ts +89 -0
  390. package/dist/src/utils/chain.js +282 -0
  391. package/dist/src/utils/chain.js.map +1 -0
  392. package/dist/{utils → src/utils}/ed25519.d.ts +0 -2
  393. package/dist/{utils → src/utils}/ed25519.js +5 -20
  394. package/dist/src/utils/ed25519.js.map +1 -0
  395. package/dist/src/utils/errors.d.ts +68 -0
  396. package/dist/src/utils/errors.js +190 -0
  397. package/dist/src/utils/errors.js.map +1 -0
  398. package/dist/src/utils/events.d.ts +124 -0
  399. package/dist/src/utils/events.js +155 -0
  400. package/dist/src/utils/events.js.map +1 -0
  401. package/dist/src/utils/formatAmount.d.ts +4 -0
  402. package/dist/src/utils/formatAmount.js +9 -0
  403. package/dist/src/utils/formatAmount.js.map +1 -0
  404. package/dist/src/utils/logger.d.ts +45 -0
  405. package/dist/{utils → src/utils}/logger.js +68 -2
  406. package/dist/src/utils/logger.js.map +1 -0
  407. package/dist/src/utils/shortenString.d.ts +5 -0
  408. package/dist/src/utils/shortenString.js +16 -0
  409. package/dist/src/utils/shortenString.js.map +1 -0
  410. package/package.json +45 -29
  411. package/dist/animations/N1Loader.js.map +0 -1
  412. package/dist/animations/Processing.js.map +0 -1
  413. package/dist/components/LoadingFallback.js.map +0 -1
  414. package/dist/components/Logo.js.map +0 -1
  415. package/dist/components/N1ConnectButton.d.ts +0 -5
  416. package/dist/components/N1ConnectButton.js +0 -49
  417. package/dist/components/N1ConnectButton.js.map +0 -1
  418. package/dist/components/logos/ArbitrumLogo.js.map +0 -1
  419. package/dist/components/logos/BaseLogo.js +0 -6
  420. package/dist/components/logos/BaseLogo.js.map +0 -1
  421. package/dist/components/logos/BeraLogo.js.map +0 -1
  422. package/dist/components/logos/BitcoinLogo.js.map +0 -1
  423. package/dist/components/logos/EthereumLogo.js.map +0 -1
  424. package/dist/components/logos/HyperliquidLogo.js.map +0 -1
  425. package/dist/components/logos/OptimismLogo.js.map +0 -1
  426. package/dist/components/logos/SolanaLogo.js.map +0 -1
  427. package/dist/components/logos/ZeroOneLogo.js.map +0 -1
  428. package/dist/components/logos/index.js.map +0 -1
  429. package/dist/config/chains.d.ts +0 -0
  430. package/dist/config/chains.js +0 -2
  431. package/dist/config/chains.js.map +0 -1
  432. package/dist/config/solana.js.map +0 -1
  433. package/dist/config.d.ts +0 -2
  434. package/dist/config.js +0 -3
  435. package/dist/config.js.map +0 -1
  436. package/dist/context/n1-wallet-context.js.map +0 -1
  437. package/dist/errors/types.d.ts +0 -25
  438. package/dist/errors/types.js +0 -77
  439. package/dist/errors/types.js.map +0 -1
  440. package/dist/features/onboarding-flow/N1WalletModal.js.map +0 -1
  441. package/dist/features/onboarding-flow/OnboardingFlow.js.map +0 -1
  442. package/dist/features/onboarding-flow/components/ChainButton.js +0 -21
  443. package/dist/features/onboarding-flow/components/ChainButton.js.map +0 -1
  444. package/dist/features/onboarding-flow/components/Header.js +0 -45
  445. package/dist/features/onboarding-flow/components/Header.js.map +0 -1
  446. package/dist/features/onboarding-flow/components/ImageWithFallback.js +0 -63
  447. package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +0 -1
  448. package/dist/features/onboarding-flow/components/TransactionTable.js.map +0 -1
  449. package/dist/features/onboarding-flow/components/WaitingMessage.js.map +0 -1
  450. package/dist/features/onboarding-flow/components/index.js.map +0 -1
  451. package/dist/features/onboarding-flow/index.js.map +0 -1
  452. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js +0 -525
  453. package/dist/features/onboarding-flow/providers/DepositFlowProvider.js.map +0 -1
  454. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js +0 -185
  455. package/dist/features/onboarding-flow/providers/OnboardingStateProvider.js.map +0 -1
  456. package/dist/features/onboarding-flow/providers/StateProvider.js.map +0 -1
  457. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js +0 -394
  458. package/dist/features/onboarding-flow/providers/WalletConnectionProvider.js.map +0 -1
  459. package/dist/features/onboarding-flow/providers/debug.js.map +0 -1
  460. package/dist/features/onboarding-flow/providers/index.js.map +0 -1
  461. package/dist/features/onboarding-flow/providers/onboardingStateMachine.js.map +0 -1
  462. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.d.ts +0 -1
  463. package/dist/features/onboarding-flow/screens/01-ConnectWalletScreen.js.map +0 -1
  464. package/dist/features/onboarding-flow/screens/02-ChainSelectionScreen.js.map +0 -1
  465. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.d.ts +0 -6
  466. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js +0 -360
  467. package/dist/features/onboarding-flow/screens/03-AmountInputScreen.js.map +0 -1
  468. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js +0 -31
  469. package/dist/features/onboarding-flow/screens/04-DepositProgressScreen.js.map +0 -1
  470. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.d.ts +0 -1
  471. package/dist/features/onboarding-flow/screens/05-DepositSuccessScreen.js.map +0 -1
  472. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.d.ts +0 -1
  473. package/dist/features/onboarding-flow/screens/06-AuthLoadingScreen.js.map +0 -1
  474. package/dist/features/onboarding-flow/screens/07-ErrorScreen.d.ts +0 -1
  475. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js +0 -14
  476. package/dist/features/onboarding-flow/screens/07-ErrorScreen.js.map +0 -1
  477. package/dist/features/onboarding-flow/screens/index.d.ts +0 -7
  478. package/dist/features/onboarding-flow/screens/index.js +0 -8
  479. package/dist/features/onboarding-flow/screens/index.js.map +0 -1
  480. package/dist/features/onboarding-flow/types.js.map +0 -1
  481. package/dist/features/onboarding-flow/utils/depositStorage.d.ts +0 -4
  482. package/dist/features/onboarding-flow/utils/depositStorage.js +0 -48
  483. package/dist/features/onboarding-flow/utils/depositStorage.js.map +0 -1
  484. package/dist/features/onboarding-flow/utils/imageUtils.d.ts +0 -21
  485. package/dist/features/onboarding-flow/utils/imageUtils.js +0 -110
  486. package/dist/features/onboarding-flow/utils/imageUtils.js.map +0 -1
  487. package/dist/features/onboarding-flow/utils/nordUser.d.ts +0 -1
  488. package/dist/features/onboarding-flow/utils/nordUser.js.map +0 -1
  489. package/dist/features/onboarding-flow/utils/nordUtils.d.ts +0 -40
  490. package/dist/features/onboarding-flow/utils/nordUtils.js +0 -64
  491. package/dist/features/onboarding-flow/utils/nordUtils.js.map +0 -1
  492. package/dist/features/onboarding-flow/utils/session.d.ts +0 -17
  493. package/dist/features/onboarding-flow/utils/session.js +0 -69
  494. package/dist/features/onboarding-flow/utils/session.js.map +0 -1
  495. package/dist/features/onboarding-flow/utils/transaction.js +0 -8
  496. package/dist/features/onboarding-flow/utils/transaction.js.map +0 -1
  497. package/dist/features/onboarding-flow/utils/utils.js.map +0 -1
  498. package/dist/features/onboarding-flow/utils/withImageFallback.d.ts +0 -7
  499. package/dist/features/onboarding-flow/utils/withImageFallback.js.map +0 -1
  500. package/dist/hooks/index.js.map +0 -1
  501. package/dist/hooks/useN1Wallet.d.ts +0 -2
  502. package/dist/hooks/useN1Wallet.js.map +0 -1
  503. package/dist/hooks/useNordUserInitialization.d.ts +0 -1
  504. package/dist/hooks/useNordUserInitialization.js.map +0 -1
  505. package/dist/index.d.ts +0 -7
  506. package/dist/index.js +0 -8
  507. package/dist/index.js.map +0 -1
  508. package/dist/polyfills/windowEthereumGuard.d.ts +0 -6
  509. package/dist/polyfills/windowEthereumGuard.js +0 -28
  510. package/dist/polyfills/windowEthereumGuard.js.map +0 -1
  511. package/dist/providers/LazyWalletProvider.d.ts +0 -1
  512. package/dist/providers/LazyWalletProvider.js +0 -230
  513. package/dist/providers/LazyWalletProvider.js.map +0 -1
  514. package/dist/providers/N1WalletProvider.d.ts +0 -3
  515. package/dist/providers/N1WalletProvider.js +0 -271
  516. package/dist/providers/N1WalletProvider.js.map +0 -1
  517. package/dist/providers/ShadowRootWrapper.js.map +0 -1
  518. package/dist/providers/WalletErrorBoundary.js.map +0 -1
  519. package/dist/styles/cdn-fonts.d.ts +0 -1
  520. package/dist/styles/cdn-fonts.js.map +0 -1
  521. package/dist/styles/embedded-main-css.d.ts +0 -2
  522. package/dist/styles/embedded-main-css.js +0 -3
  523. package/dist/styles/embedded-main-css.js.map +0 -1
  524. package/dist/types/wallet.js.map +0 -1
  525. package/dist/utils/ed25519.js.map +0 -1
  526. package/dist/utils/getPseudoName.d.ts +0 -1
  527. package/dist/utils/getPseudoName.js +0 -5826
  528. package/dist/utils/getPseudoName.js.map +0 -1
  529. package/dist/utils/logger.d.ts +0 -21
  530. package/dist/utils/logger.js.map +0 -1
  531. package/dist/utils/shortenString.d.ts +0 -2
  532. package/dist/utils/shortenString.js +0 -9
  533. package/dist/utils/shortenString.js.map +0 -1
  534. package/dist/utils/words.d.ts +0 -9
  535. package/dist/utils/words.js +0 -93572
  536. package/dist/utils/words.js.map +0 -1
  537. /package/dist/{animations → src/animations}/N1Loader.d.ts +0 -0
  538. /package/dist/{animations → src/animations}/N1Loader.js +0 -0
  539. /package/dist/{animations → src/animations}/Processing.d.ts +0 -0
  540. /package/dist/{animations → src/animations}/Processing.js +0 -0
  541. /package/dist/{components → src/components}/logos/ArbitrumLogo.d.ts +0 -0
  542. /package/dist/{components → src/components}/logos/ArbitrumLogo.js +0 -0
  543. /package/dist/{components → src/components}/logos/BaseLogo.d.ts +0 -0
  544. /package/dist/{components → src/components}/logos/BeraLogo.d.ts +0 -0
  545. /package/dist/{components → src/components}/logos/BeraLogo.js +0 -0
  546. /package/dist/{components → src/components}/logos/BitcoinLogo.d.ts +0 -0
  547. /package/dist/{components → src/components}/logos/BitcoinLogo.js +0 -0
  548. /package/dist/{components → src/components}/logos/EthereumLogo.d.ts +0 -0
  549. /package/dist/{components → src/components}/logos/EthereumLogo.js +0 -0
  550. /package/dist/{components → src/components}/logos/HyperliquidLogo.d.ts +0 -0
  551. /package/dist/{components → src/components}/logos/OptimismLogo.d.ts +0 -0
  552. /package/dist/{components → src/components}/logos/OptimismLogo.js +0 -0
  553. /package/dist/{components → src/components}/logos/SolanaLogo.d.ts +0 -0
  554. /package/dist/{components → src/components}/logos/SolanaLogo.js +0 -0
  555. /package/dist/{components → src/components}/logos/ZeroOneLogo.d.ts +0 -0
  556. /package/dist/{components → src/components}/logos/ZeroOneLogo.js +0 -0
  557. /package/dist/{components → src/components}/logos/index.d.ts +0 -0
  558. /package/dist/{components → src/components}/logos/index.js +0 -0
  559. /package/dist/{config → src/config}/solana.d.ts +0 -0
  560. /package/dist/{config → src/config}/solana.js +0 -0
  561. /package/dist/{context → src/context}/n1-wallet-context.d.ts +0 -0
  562. /package/dist/{context → src/context}/n1-wallet-context.js +0 -0
  563. /package/dist/{features → src/features}/onboarding-flow/N1WalletModal.d.ts +0 -0
  564. /package/dist/{features → src/features}/onboarding-flow/components/WaitingMessage.js +0 -0
  565. /package/dist/{features → src/features}/onboarding-flow/components/index.d.ts +0 -0
  566. /package/dist/{features → src/features}/onboarding-flow/components/index.js +0 -0
  567. /package/dist/{features → src/features}/onboarding-flow/index.d.ts +0 -0
  568. /package/dist/{features → src/features}/onboarding-flow/index.js +0 -0
  569. /package/dist/{features → src/features}/onboarding-flow/providers/debug.d.ts +0 -0
  570. /package/dist/{features → src/features}/onboarding-flow/providers/index.d.ts +0 -0
  571. /package/dist/{features → src/features}/onboarding-flow/providers/index.js +0 -0
  572. /package/dist/{hooks → src/hooks}/index.d.ts +0 -0
  573. /package/dist/{hooks → src/hooks}/index.js +0 -0
  574. /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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC5G,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,uCAAuC,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AACtI,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAE,oBAAoB,EAA6B,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACpL,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,6CAA6C;AAC7C,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,KAAa;IAC/C,IAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,eAAe,CAAC;IACpE,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC;IAC5C,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC;IACzC,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,eAAe,CAAC;IACpE,MAAM,IAAI,KAAK,CAAC,8BAAsB,KAAK,OAAG,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,qCAAqC;AACrC,IAAM,gBAAgB,GAAG,UAAC,eAAuB;IAC/C,IAAM,SAAS,GAAG,IAAI,SAAS,CAAC,eAAe,CAAC,CAAC;IACjD,OAAO;QACL,SAAS,WAAA;QACT,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE;;iBAAe;QACxB,UAAU,EAAE;;iBAAe;QAC3B,eAAe,EAAE,UAAO,EAAwB;YAAK,sBAAA,EAAE,EAAA;iBAAA;QACvD,mBAAmB,EAAE,UAAO,GAA2B;YAAK,sBAAA,GAAG,EAAA;iBAAA;QAC/D,WAAW,EAAE,UAAO,GAAe;YAAK,sBAAA,GAAG,EAAA;iBAAA;KAC5C,CAAC;AACJ,CAAC,CAAC;AAEF,wCAAwC;AACxC,IAAM,YAAY,GAAG,UAAC,OAAe;IACnC,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1D,IAAI,CAAC;QACH,IAAM,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO,QAAQ,CAAC;IACvD,CAAC;IAAC,WAAM,CAAC,CAAC,CAAC;IACX,MAAM,IAAI,KAAK,CAAC,sCAA+B,OAAO,CAAE,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,IAAM,SAAS,GAAG,UAAC,OAAe;IAChC,IAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAClC,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAClE,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;QACrC,CAAC;QACD,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC;QACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAM,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,IAAM,eAAe,GAAG,UAAC,OAAe;IACtC,IAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC3D,CAAC,CAAC;AAEF,IAAM,cAAc,GAAG,UAAC,OAAe,EAAE,YAA0C;IACjF,IAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO,OAAO,CAAC;IAC7C,IAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;QACpC,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,OAAO,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qCAA8B,YAAY,CAAE,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,4CAA4C;AAC5C,IAAM,UAAU,GAAG,UACjB,WAAgB,EAChB,gBAAqB,EACrB,2BAAsC,EACtC,uBAAkC;IAElC,IAAM,aAAa,GAAG,IAAI,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvF,IAAM,mBAAmB,GAAG,IAAI,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEjE,IAAA,iBAAiB,GAAI,SAAS,CAAC,sBAAsB,CAC1D,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAChC,uBAAuB,CACxB,GAHuB,CAGtB;IACK,IAAA,qBAAqB,GAAI,SAAS,CAAC,sBAAsB,CAC9D,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,EACpC,2BAA2B,CAC5B,GAH2B,CAG1B;IACK,IAAA,cAAc,GAAI,SAAS,CAAC,sBAAsB,CACvD,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAC7B,uBAAuB,CACxB,GAHoB,CAGnB;IACK,IAAA,aAAa,GAAI,SAAS,CAAC,sBAAsB,CACtD,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,EAC5D,uBAAuB,CACxB,GAHmB,CAGlB;IACF,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;IACpE,IAAA,uBAAuB,GAAI,SAAS,CAAC,sBAAsB,CAChE,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,UAAU,CAAC,EACnD,uBAAuB,CACxB,GAH6B,CAG5B;IACK,IAAA,YAAY,GAAI,SAAS,CAAC,sBAAsB,CACrD,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,EACjE,uBAAuB,CACxB,GAHkB,CAGjB;IACK,IAAA,UAAU,GAAI,SAAS,CAAC,sBAAsB,CACnD,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,EACxD,uBAAuB,CACxB,GAHgB,CAGf;IACK,IAAA,8BAA8B,GAAI,SAAS,CAAC,sBAAsB,CACvE,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,EAClF,2BAA2B,CAC5B,GAHoC,CAGnC;IAEF,OAAO;QACL,iBAAiB,mBAAA;QACjB,qBAAqB,uBAAA;QACrB,cAAc,gBAAA;QACd,aAAa,eAAA;QACb,uBAAuB,yBAAA;QACvB,YAAY,cAAA;QACZ,UAAU,YAAA;QACV,8BAA8B,gCAAA;QAC9B,aAAa,eAAA;KACd,CAAC;AACJ,CAAC,CAAC;AAEF,mCAAmC;AACnC,IAAM,8BAA8B,GAAG,UACrC,MAMC,EACD,QAGC,EACD,IAAmC,EACnC,eAA0B,EAC1B,UAAkB;;;;oBAED,qBAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,EAAA;;gBAA5E,QAAQ,GAAG,SAAiE;gBAC5E,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBACjC,QAAQ,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAGrD,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,6BAAsB,UAAU,CAAE,CAAC,CAAC;gBACtD,CAAC;gBACK,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACvC,YAAY,GAAI,SAAS,CAAC,sBAAsB,CACrD,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,EACrC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CACtC,GAHkB,CAGjB;gBAGI,kBAAkB,GAAG,MAAM,CAAC,kBAAkB;oBAClD,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC;oBAC1C,CAAC,CAAC,IAAI,CAAC;gBAGH,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC;oBACvD,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,kBAAkB;iBAC1B,CAAC,CAAC;gBAEH,IAAI,CAAC,CAAC,gBAAgB,IAAI,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/D,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACrD,CAAC;gBAGmB,qBAAM,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;wBAC9E,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC;wBAC9D,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC;qBACvE,CAAC;yBACC,QAAQ,CAAC;wBACR,KAAK,EAAE,IAAI;wBACX,MAAM,EAAE,IAAI;wBACZ,YAAY,EAAE,IAAI,CAAC,8BAA8B;wBACjD,kBAAkB,EAAE,IAAI,CAAC,qBAAqB;wBAC9C,SAAS,EAAE,YAAY;wBACvB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS;wBAC3C,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS;qBACnD,CAAC;yBACD,iBAAiB,CAAC;wBACjB,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;wBACtE,EAAE,MAAM,EAAE,IAAI,CAAC,uBAAuB,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;wBAC5E,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;wBAClE,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;wBACjE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;wBACjE,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;wBAC9D,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;wBAC1D,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;wBAC9D;4BACE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB;4BAC3C,QAAQ,EAAE,KAAK;4BACf,UAAU,EAAE,KAAK;yBAClB;wBACD;4BACE,MAAM,EAAE,SAAS,CAAC,sBAAsB,CACtC,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAClC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAClC,CAAC,CAAC,CAAC;4BACJ,QAAQ,EAAE,KAAK;4BACf,UAAU,EAAE,KAAK;yBAClB;wBACD;4BACE,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS;4BACzC,QAAQ,EAAE,KAAK;4BACf,UAAU,EAAE,KAAK;yBAClB;qBACF,CAAC;yBACD,WAAW,EAAE,EAAA;;gBAzCV,WAAW,GAAG,SAyCJ;gBAEhB,sBAAO,EAAE,WAAW,aAAA,EAAE,WAAW,aAAA,EAAE,kBAAkB,oBAAA,EAAE,EAAC;;;KACzD,CAAC;AAEF,MAAM,CAAC,IAAM,wBAAwB,GAAG,UAAC,EAAwB;IAC/D,IAAM,UAAU,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;IAClC,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC;AA4BF,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAClC,MAAkC;;;;;;gBAE5B,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,+BAA+B,CAAC;gBAC1D,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;gBAEpC,cAAc,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAChD,UAAU,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC/C,SAAS,GACb,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;oBACpC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC;oBACzC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;gBACnB,OAAO,GAAG,YAAY,CAAC;gBAGvB,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACrC,qBAAM,yBAAyB,CAAC;wBAC9C,UAAU,EAAE,UAAiB;wBAC7B,QAAQ,EAAE,UAAiB;qBAC5B,CAAC,EAAA;;gBAHI,OAAO,GAAG,SAGd;gBAEI,OAAO,GAAG;oBACd,KAAK,EAAE,OAAO;oBACd,OAAO,EAAE,MAAM,CAAC,QAAQ;iBACzB,CAAC;gBAEe,qBAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAA;;gBAAnD,QAAQ,GAAG,SAAwC;gBAEnD,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;gBACnG,CAAC;gBACK,MAAM,GAAG,QAAQ,CAAC;gBAEmC,qBAAM,OAAO,CAAC,GAAG,CAAC;wBAC3E,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC;wBACjE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC;qBACtE,CAAC,EAAA;;gBAHI,KAAqD,SAGzD,EAHK,qBAAqB,QAAA,EAAE,yBAAyB,QAAA;gBAKjD,IAAI,GAAG,UAAU,CACrB,SAAS,EACT,OAAO,EACP,yBAAyB,CAAC,SAAS,EACnC,qBAAqB,CAAC,SAAS,CAChC,CAAC;gBAEF,IAAI,CAAC,CAAC,gBAAgB,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACtD,CAAC;gBAC2B,qBAAO,qBAAqB,CAAC,OAAe,CAAC,cAAc,CAAC,KAAK,CAC3F,IAAI,CAAC,iBAAiB,CACvB,EAAA;;gBAFK,mBAAmB,GAAG,SAE3B;gBACK,QAAQ,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC9C,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC;oBAC3D,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAG,mBAA2B,CAAC,cAAc,CAAC;iBACpD,CAAC,CAAC;gBAGC,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,MAAA,MAAM,CAAC,cAAc,0CAAE,KAAK,EAAE,CAAC;oBACjC,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;wBACvD,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK;wBAC7B,CAAC,CAAC,YAAK,MAAM,CAAC,cAAc,CAAC,KAAK,CAAE,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;oBAC1F,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;wBACxB,UAAU,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;gBAEwD,qBAAM,8BAA8B,CAC3F;wBACE,OAAO,SAAA;wBACP,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;wBAC7C,OAAO,SAAA;qBACR,EACD;wBACE,cAAc,EAAE,qBAAqB;wBACrC,kBAAkB,EAAE,yBAAyB;qBAC9C,EACD,IAAI,EACJ,eAAe,EACf,UAAU,CACX,EAAA;;gBAfK,KAAmD,SAexD,EAfO,WAAW,iBAAA,EAAE,WAAW,iBAAA,EAAE,kBAAkB,wBAAA;gBAiB9C,YAAY,GAAyC,EAAE,CAAC;gBAE9D,uEAAuE;gBACvE,YAAY,CAAC,IAAI,CACf,oBAAoB,CAAC,mBAAmB,CAAC;oBACvC,aAAa,EAAE,MAAO;iBACvB,CAAC,EACF,oBAAoB,CAAC,mBAAmB,CAAC;oBACvC,KAAK,EAAE,MAAO;iBACf,CAAC,CACH,CAAC;gBAEI,WAAW,GAAG,6BAA6B,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBAErD,qBAAM,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,EAAA;;gBAA7D,cAAc,GAAG,SAA4C;gBACnE,IAAI,CAAC,cAAc,EAAE,CAAC;oBACd,cAAc,GAAG,uCAAuC,CAC5D,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,QAAQ,CACT,CAAC;oBACF,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpC,CAAC;gBAEuB,qBAAM,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,EAAA;;gBAA9D,eAAe,GAAG,SAA4C;gBACpE,IAAI,CAAC,eAAe,EAAE,CAAC;oBACf,aAAa,GAAG,uCAAuC,CAC3D,cAAc,EACd,WAAW,EACX,cAAc,EACd,QAAQ,CACT,CAAC;oBACF,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACnC,CAAC;gBAED,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAEzB,SAAS,GAAG,MAAM,CAAC;gBACnB,UAAU,GAAG,yBAAyB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;gBAC9F,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAGxB,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC;gBAC/D,YAAY,CAAC,IAAI,CACf,aAAa,CAAC,QAAQ,CAAC;oBACrB,UAAU,EAAE,cAAc;oBAC1B,QAAQ,EAAE,UAAU;oBACpB,QAAQ,EAAE,iBAAiB;iBAC5B,CAAC,CACH,CAAC;gBAGI,oBAAoB,GAAG,YAAY,CAAC,GAAG,CAAC,UAAC,EAAO;oBACpD,IAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,IAAS;;wBACpC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;4BACvC,6BAAY,IAAI,KAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,IAAG;wBAC1E,CAAC;wBACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;4BACnC,6BAAY,IAAI,KAAE,QAAQ,EAAE,IAAI,IAAG;wBACrC,CAAC;wBACD,6BAAY,IAAI,KAAE,QAAQ,EAAE,KAAK,IAAG;oBACtC,CAAC,CAAC,CAAC;oBACH,6BAAY,EAAE,KAAE,IAAI,EAAE,OAAO,IAAG;gBAClC,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBAC1E,CAAC;gBACK,kBAAkB,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBAC5C,qBAAM,UAAU,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,EAAA;;gBAA5E,eAAe,GAAG,SAA0D;gBAClF,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,uBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAY,CAAC,CAAC;gBAC7E,CAAC;gBACK,kBAAkB,GAAG,eAAe,CAAC,KAAK,CAAC;gBAE7C,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC7B,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;qBACnD,CAAC,SAAS,EAAV,yBAAU;gBACG,qBAAM,UAAU,CAAC,kBAAkB,EAAE,EAAA;;gBAA9C,MAAM,GAAG,SAAqC;gBACpD,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC7B,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;;;gBAG/C,SAAS,GAAG,IAAI,kBAAkB,CAAC;oBACvC,QAAQ,EAAE,cAAc;oBACxB,eAAe,EAAE,SAAS;oBAC1B,YAAY,EAAE,oBAAoB;iBACnC,CAAC,CAAC,kBAAkB,CAAC,CAAC,kBAA+C,CAAC,CAAC,CAAC;gBAEnE,WAAW,GAAG,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;gBAExD,sBAAO,EAAE,EAAE,EAAE,WAAkB,EAAE,SAAS,EAAE,SAAU,EAAE,oBAAoB,EAAE,oBAAqB,EAAE,EAAC;;;KACvG,CAAC","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"]}